




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java期末考試題一、簡(jiǎn)答題(共8個(gè)題,每題5分,共40分)1. java語(yǔ)言有哪些特點(diǎn)?(1)簡(jiǎn)單的a) Java最初是為對(duì)家用電器進(jìn)行集成控制而設(shè)計(jì)的一種語(yǔ)言,因此它必須簡(jiǎn)單明了。b) Java的風(fēng)格類(lèi)似于C+,因而C+程序員初次接觸Java語(yǔ)言,就會(huì)感到很熟悉。從某種意義上講,Java語(yǔ)言是C及C+語(yǔ)言的一個(gè)變種。c) Java摒棄了C+中容易引發(fā)程序錯(cuò)誤的一些特性,如指針、結(jié)構(gòu)、枚舉以及內(nèi)存管理等。d) Java提供了豐富的類(lèi)庫(kù),可以幫助我們很方便的開(kāi)發(fā)Java程序。(2)面向?qū)ο蟮拿嫦驅(qū)ο罂梢哉f(shuō)是Java最重要的特性,所以它支持繼承、重載、多態(tài)等面向?qū)ο蟮奶匦?。Java語(yǔ)言的設(shè)計(jì)是完
2、全面向?qū)ο蟮?它不支持類(lèi)似C語(yǔ)言那樣的面向過(guò)程的程序設(shè)計(jì)技術(shù)。(3)健壯的Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤。Java也是一種強(qiáng)類(lèi)型的語(yǔ)言,其類(lèi)型檢查比C+還要嚴(yán)格。類(lèi)型檢查幫助我們檢查出許多開(kāi)發(fā)早期出現(xiàn)的錯(cuò)誤。Java自己負(fù)責(zé)內(nèi)存管理,提供了垃圾內(nèi)存回收機(jī)制,有效的避免了C+中最頭疼的內(nèi)存泄漏問(wèn)題。(4)安全的Java的安全性可從兩個(gè)方面得到保證。一方 面,在Java語(yǔ)言里,刪除了指針和釋放內(nèi)存等C+功能,避免了非法內(nèi)存操作。另一方面,通過(guò)Java的安全體系架構(gòu)來(lái)確保Java代碼的安全性。從一開(kāi)始,Java就被設(shè)計(jì)成能夠防范各種襲擊,包括:禁止運(yùn)行時(shí)堆棧溢出。例如,蠕蟲(chóng)等病毒常用的襲
3、擊手段;禁止在自己的處理空間之外破壞內(nèi)存;未經(jīng)授權(quán)禁止讀寫(xiě)文件;許多安全特性相繼不斷的被加入Java中。(5)解釋的Java代碼是解釋執(zhí)行的,我們使用Java編譯器將Java代碼編譯成字節(jié)碼,這是一種中間代碼,然后由Java解釋器解釋執(zhí)行。而C+程序是編譯執(zhí)行的,C+程序代碼被編譯為本地機(jī)器指令,然后執(zhí)行。(6)與平臺(tái)無(wú)關(guān)的Java作為一種網(wǎng)絡(luò)語(yǔ)言,其源代碼被編譯成一種結(jié)構(gòu)中立的中間文件格式。只要有Java運(yùn)行系統(tǒng)的機(jī)器都能執(zhí)行這種中間代碼。Java源程序被編譯成一種與機(jī)器無(wú)關(guān)的字節(jié)碼格式,在Java虛擬機(jī)上運(yùn)行。(7)多線程的Java語(yǔ)言的一個(gè)重要特性就是在語(yǔ)言級(jí)支持多線程的程序設(shè)計(jì)。多線程
4、就好像我們做一張桌子,如果你一個(gè)人完成這張桌子就好像單線程,那么你需要先做桌面,做完桌面后,再做4個(gè)桌子腿,如果現(xiàn)在有5個(gè)人來(lái)做桌子在程序中開(kāi)辟5個(gè)線程,其中1個(gè)人做桌面,另外4個(gè)人分別做4個(gè)桌子腿,那么這兩種方式效率的高低,相信大家都能區(qū)分出來(lái)。(8)動(dòng)態(tài)的Java的動(dòng)態(tài)特性是其面向?qū)ο笤O(shè)計(jì)方法的擴(kuò)展。它允許程序動(dòng)態(tài)地裝入運(yùn)行過(guò)程中所需要的類(lèi)。在C+程序設(shè)計(jì)過(guò)程中,每當(dāng)在類(lèi)中增加一個(gè)實(shí)例變量或一個(gè)成員函數(shù)后, 引用該類(lèi)的所有子類(lèi)都必須重新編譯,否則將導(dǎo)致程序崩潰。Java從以下幾個(gè)方面采取措施來(lái)解決這個(gè)問(wèn)題。a)Java編譯器不是將對(duì)實(shí)例變量和成員函數(shù)的引用編譯為數(shù)值引用,而是將符號(hào)引用信息
5、在字節(jié)碼中保存下來(lái),傳遞給解釋器,再由解釋器在完成動(dòng)態(tài)連接類(lèi)后,將符號(hào)引用信息轉(zhuǎn)換為數(shù)值偏移量。b)一個(gè)在存儲(chǔ)器中生成的對(duì)象不在編譯過(guò)程中決定,而是延遲到運(yùn)行時(shí)由解釋器確定。這樣,對(duì)類(lèi)中的變量和方法進(jìn)行更新時(shí)就不至于影響現(xiàn)存的代碼。 c)解釋執(zhí)行字節(jié)碼時(shí),這種符號(hào)信息的查找和轉(zhuǎn)換過(guò)程僅在一個(gè)新的名字出現(xiàn)時(shí)才進(jìn)行一次,隨后代碼便可以全速執(zhí)行。在運(yùn)行時(shí)確定引用的好處是可以使用已被更新的類(lèi),而不必?fù)?dān)心會(huì)影響原有的代碼。如果程序連接了網(wǎng)絡(luò)中另一系統(tǒng)中的某一類(lèi),該類(lèi)的所有者也可以自由地對(duì)該類(lèi)進(jìn)行更新,而不會(huì)使任何引用該類(lèi)的程序崩潰。d)Java還簡(jiǎn)化了使用一個(gè)升級(jí)的或全新協(xié)議的方法。如果你的系統(tǒng)運(yùn)行Ja
6、va程序時(shí)遇到了不知怎樣處理的程序,Java能自動(dòng)下載你所需要的功能程序。2. 什么是java虛擬機(jī)? Java虛擬機(jī)JVM(Java Virtual Machine)在JAVA編程里面具有非常重要的地位。約相當(dāng)于JAVA運(yùn)行環(huán)境JRE。JAVA虛擬機(jī)是在真實(shí)機(jī)器中用軟件模擬實(shí)現(xiàn)的一種想象機(jī)器,它為不同的硬件平臺(tái)提供了一種編譯JAVA技術(shù)代碼的規(guī)范,該規(guī)范使JAVA軟件獨(dú)立于平臺(tái)。JVM對(duì)下列各項(xiàng)做出了定義:指令集,寄存器,類(lèi)文件格式,棧,垃圾收集堆,存儲(chǔ)區(qū)。Java虛擬機(jī)的功能:(1)通過(guò)ClassLoader尋找和裝載Class文件(2)解釋字節(jié)碼成為指令并執(zhí)行,提供Class文件的運(yùn)行環(huán)
7、境(3)進(jìn)行運(yùn)行期間垃圾回收(4)提供與硬件交互的平臺(tái)JAVA虛擬機(jī)是JAVA平臺(tái)無(wú)關(guān)的保障。正是因?yàn)橛刑摂M機(jī)這中間層,JAVA才能夠?qū)崿F(xiàn)與平臺(tái)無(wú)關(guān)。虛擬機(jī)就好比是一個(gè)JAVA運(yùn)行的基本平臺(tái),所有的JAVA程序都運(yùn)行在虛擬機(jī)上。所有與平臺(tái)有關(guān)的東西都是由虛擬機(jī)去處理 。3. 什么是方法重載(Overloading)與方法覆蓋(Overriding)?(1) 方法重載(Overloading):方法重載是指同名的方法在不同的地方具有多種含義。方法重載使得在類(lèi)中可以存在方法名相同的多個(gè)方法,但方法的原型不能完全相同,由方法的參數(shù)不同來(lái)決定所使用的是哪個(gè)方法。方法的原型包括方法名和方法參數(shù)類(lèi)型。(2
8、) 方法覆蓋(overriding)方法覆蓋也叫方法重寫(xiě),是指方法的含義被重新編寫(xiě)后的方法所替代。對(duì)于方法覆蓋,子類(lèi)可以重新實(shí)現(xiàn)父類(lèi)的某些方法,并具有自己的特征。這樣,覆蓋隱藏了父類(lèi)的方法,使子類(lèi)可以具有自己的實(shí)現(xiàn)方法。子類(lèi)覆蓋父類(lèi)的方法時(shí),子類(lèi)中方法的訪問(wèn)權(quán)限不能低于父類(lèi)中該方法的訪問(wèn)權(quán)限4. java中equals和“= =”的區(qū)別?使用“= =”比較基本類(lèi)型字段,使用equals 方法比較對(duì)象字段。= =操作比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量在堆中存儲(chǔ)的地址是否相同,即棧中的內(nèi)容是否相同;equals操作表示的兩個(gè)變量是否是對(duì)同一個(gè)對(duì)象的引用,即堆中的內(nèi)容是否相
9、同。 =比較的是2個(gè)對(duì)象的地址,而equals比較的是2個(gè)對(duì)象的內(nèi)容。顯然,當(dāng)equals為true時(shí),= =不一定為true。5. 什么是抽象類(lèi)?什么是接口?一般稱(chēng)含有抽象方法的類(lèi)稱(chēng)為抽象類(lèi)。抽象類(lèi)是不能被實(shí)例化的類(lèi),用abstract修飾。接口是一種與類(lèi)相似的結(jié)構(gòu),但接口不是類(lèi),而是一組對(duì)類(lèi)的要求,這些類(lèi)要與接口一致一個(gè)類(lèi)可以實(shí)現(xiàn)一個(gè)或多個(gè)接口,并在需要接口的地方,隨時(shí)使用實(shí)現(xiàn)了相應(yīng)接口的對(duì)象。6. 什么是多態(tài)?一個(gè)對(duì)象變量可以指向多種實(shí)際類(lèi)型對(duì)象的現(xiàn)象被稱(chēng)為“多態(tài)”(polymorphism)。7. 異常的分類(lèi)?它們的區(qū)別是什么? Error:稱(chēng)為錯(cuò)誤,由Java虛擬機(jī)生成并拋出,包括動(dòng)
10、態(tài)連接失敗、虛擬機(jī)錯(cuò)誤等,程序?qū)ζ洳蛔魈幚?。Exception:所以異常類(lèi)的父類(lèi),其子類(lèi)對(duì)應(yīng)了各種各樣可能出現(xiàn)的異常事件,一般需要用戶顯式的聲明或捕獲。Runtime Exception:一類(lèi)特殊的異常,如被0除、數(shù)組下標(biāo)超范圍等,其產(chǎn)生比較頻繁,處理麻煩,如果顯式的聲明或捕獲將會(huì)對(duì)程序的可讀性和運(yùn)行效率影響很大。因此由系統(tǒng)自動(dòng)檢測(cè)并將它們交給缺省的異常處理程序(用戶可不必對(duì)其處理)。8. 什么是流?流(stream)是輸入和輸出設(shè)備的一種抽象表示,這些設(shè)備是數(shù)據(jù)源或數(shù)據(jù)終點(diǎn)。可以象流中寫(xiě)入數(shù)據(jù),也可以從流中讀出數(shù)據(jù)。可以把流想象為流入自己程序或從自己程序中流出的字節(jié)序列。當(dāng)把數(shù)據(jù)寫(xiě)入流時(shí),該
11、流稱(chēng)為輸出流。輸出流可以通往任何可以傳輸字節(jié)序列的設(shè)備,例如硬盤(pán)上的文件,或連接用戶系統(tǒng)至遠(yuǎn)程系統(tǒng)的電話線路。輸出流也可以通向顯示器,但這會(huì)大大限制其真正的功能。二、程序設(shè)計(jì)題(共4個(gè)題,每題15分,共60分)1、 輸出1到100以內(nèi)的前10個(gè)質(zhì)數(shù)。 public class Zhishu public static void main(String args) System.out.println("1到100以內(nèi)的前10個(gè)質(zhì)數(shù):"); int s,i,j=0; for(s=2;s<=100;s+) for(i=2;i<=s/2;i+) if(s%i=0) b
12、reak; if(i>s/2) j+; if(j<=10) System.out.println("第"+j+"個(gè):"+s); 2、 計(jì)算并輸出result=1!+2!+3!+ +10!的結(jié)果。 public class Sum public static void main(String args)System.out.println("result=1!+2!+3!+ +10!");int s=0,t=1;int n;for(n=1;n<=20;n+)t=t*n;s=s+t;System.out.println(
13、"result=" + s); 3、 定義一個(gè)長(zhǎng)方形類(lèi),該類(lèi)具有長(zhǎng)和寬兩種屬性,并具有相應(yīng)的構(gòu)造方法、屬性訪問(wèn)方法和計(jì)算周長(zhǎng)和面積的方法,要求輸出長(zhǎng)是5寬是4的長(zhǎng)方形的面積和周長(zhǎng)。public class Rectangle private double length;/長(zhǎng) private double width;/寬public Rectangle ()/ 無(wú)參數(shù)的構(gòu)造方法public Rectangle (double length, double width)this.length=length; this.width=width; /帶參數(shù)的構(gòu)造方法 public
14、 void setLength(double lLength) length=lLength; public void setWidth(double wWidth) width=wWidth; public double getLength() return length; public double getWidth() return width; public double area(double i, double j) /計(jì)算面積 return (length*width); public double permcter (double i, double j) /計(jì)算周長(zhǎng) retu
15、rn (length+width)*2); public static void main(String args) System.out.println("長(zhǎng)為5,寬為4的長(zhǎng)方形的周長(zhǎng)與面積:"); Rectangle Rectangle =new Rectangle (5,4); System.out.println("周長(zhǎng)(5,4)="+Rectangle.permcter(5,4); System.out.println("面積(5,4)="+Rectangle.area(5,4); 4、 定義一個(gè)父類(lèi)Parents和兩個(gè)子類(lèi)
16、Father類(lèi)和Mother類(lèi):Parents類(lèi)具有兩個(gè)屬性:姓名和年齡,該類(lèi)所包含的方法除了構(gòu)造方法和相應(yīng)的get和set方法,還有一個(gè)print()用來(lái)打印對(duì)象的具體的信息,例如,輸出“我是家長(zhǎng),我的名字是.,我的年齡是.歲";Father類(lèi)增加了一個(gè)屬性:愛(ài)好,并重寫(xiě)了父類(lèi)Parents中的print()方法,輸出“我是父親,我的名字是.,我的年齡是.歲,我的愛(ài)好是.”;Mother類(lèi)增加了一個(gè)屬性:頭發(fā)的顏色,并重寫(xiě)了父類(lèi)Parents中的print()方法,輸出“我是母親,我的名字是.,我的年齡是.歲,我頭發(fā)的顏色是.”。最后定義一個(gè)測(cè)試類(lèi)Test,要求顯示如下信息:5、
17、我是家長(zhǎng),我的名字是王瑞,我的年齡是36歲6、 我是父親,我的名字是張峰,我的年齡是45歲,我的愛(ài)好是打保齡球7、 我是母親,我的名字是孫娟,我的年齡是36歲,我的頭發(fā)顏色是棕色Parents:public abstract class Parents private String name;/姓名private int age;/年齡public Parents()public Parents(String name,int age)this.setName(name);this.setAge(age);public void setName(String name) =
18、name;public String getName() return name;public void setAge(int age)this.age = age;public int getAge()return age;void Sys()System.out.println("我是家長(zhǎng),"+"我的名字是"+this.getName()+",我的年齡是"+this.getAge()+"歲");Father:public class Father extends Parentsprivate String fa
19、vor;public Father(String name,int age, String favor)super(name,age);this.favor=favor;public void setFavor(String favor) this.favor = favor;public String getFavor() return favor;void Sys() System.out.println("我是父親,"+"我的名字是"+this.getName()+",我的年齡是"+this.getAge()+"歲,我的愛(ài)好是"+this.getFavor();Mother:public class Mother e
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶樓承包合同
- 土石方工程開(kāi)挖施工合同
- 企業(yè)人力資源數(shù)字化轉(zhuǎn)型戰(zhàn)略規(guī)劃設(shè)計(jì)
- 2025年銀川貨運(yùn)車(chē)從業(yè)資格證考試內(nèi)容
- 《Scratch初體驗(yàn)》導(dǎo)學(xué)案
- 109-指揮調(diào)度系統(tǒng)
- 節(jié)溫器戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 修路材料采購(gòu)合同范例
- 個(gè)人理財(cái)心得體會(huì)
- 單位施工合同范本
- 中醫(yī)館裝修合同范本
- 椎管打骨水泥后的護(hù)理
- 學(xué)習(xí)與科技的融合主題班會(huì)
- 《直播銷(xiāo)售》課件-項(xiàng)目一 認(rèn)識(shí)直播與直播銷(xiāo)售
- 2025年南京科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025-2030年中國(guó)航空配餐行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資前景規(guī)劃研究報(bào)告
- 新課標(biāo)背景下的跨學(xué)科學(xué)習(xí)內(nèi)涵、設(shè)置邏輯與實(shí)踐原則
- 母嬰分離產(chǎn)婦的護(hù)理
- 2025教科版一年級(jí)科學(xué)下冊(cè)教學(xué)計(jì)劃
- 人教版高一上學(xué)期數(shù)學(xué)(必修一)期末考試卷(附答案)
- DBJT14-100-2013 外墻外保溫應(yīng)用技術(shù)規(guī)程(改性酚醛泡沫板薄抹灰外墻外保溫系統(tǒng))
評(píng)論
0/150
提交評(píng)論