Java期末考試題及答案_第1頁(yè)
Java期末考試題及答案_第2頁(yè)
Java期末考試題及答案_第3頁(yè)
Java期末考試題及答案_第4頁(yè)
Java期末考試題及答案_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余10頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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+畸言的一個(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ū)ο蟮奶匦浴?/p>

2、Java語(yǔ)言的設(shè)計(jì)是完全面向?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+4最頭疼的內(nèi)存泄漏問(wèn)題。(4)安全的Java的安全性可從兩個(gè)方面得到保證。一方面,在 Java語(yǔ)言里,刪除了指 針和釋放內(nèi)存等C+剛能,避免了非法內(nèi)存操作。另一方面,通過(guò)Java的安全體系架構(gòu)來(lái)確保Java代碼的 xx。從一開(kāi)始,Java就被設(shè)計(jì)成能夠防范各種襲擊,包括:禁止運(yùn)行時(shí)堆棧溢 出

3、。例如,蠕蟲(chóng)等病毒常用的襲擊手段;禁止在自己的處理空間之外破壞內(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é)碼格式,1在Java虛擬機(jī)上運(yùn)行。(7)多線(xiàn)程的Java語(yǔ)言的一個(gè)重要特性就是

4、在語(yǔ)言級(jí)支持多線(xiàn)程的程序設(shè)計(jì)。多線(xiàn)程就好像我們做一張桌子,如果你一個(gè)人完成這張桌子就好像單線(xiàn)程,那么你需要先做桌面,做完桌面后,再做4 個(gè)桌子腿,如果現(xiàn)在有5 個(gè)人來(lái)做桌子在程序中開(kāi)辟5 個(gè)線(xiàn)程,其中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í)例變量和成員

5、函數(shù)的引用編譯為數(shù)值引用,而是將符號(hào)引用信息在字節(jié)碼中保存下來(lái),傳遞給解釋器,再由解釋器在完成動(dòng)態(tài)連接類(lèi)后,將符號(hào)引用信息轉(zhuǎn)換為數(shù)值偏移量。)一個(gè)在存儲(chǔ)器中生成的對(duì)象不在編譯過(guò)程中決定,而是延遲到運(yùn)行時(shí)由解釋器確定。這b樣,對(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è)

6、升級(jí)的或全新協(xié)議的方法。如果你的系統(tǒng)運(yùn)行Java程序時(shí)遇到了不知怎樣處理的程序,Java能自動(dòng)下載你所需要的功能程序。2.什么是java虛擬機(jī),Java虛擬機(jī)JVMJava 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ī)的功能:2(1)通過(guò)ClassLoade尋找和裝載 Class文件(2)解釋字節(jié)

7、碼成為指令并執(zhí)行,提供 Class文件的運(yùn)行環(huán)境(3)進(jìn)行運(yùn)行期間垃圾回收(4)提供與硬件交互的平臺(tái)正是因?yàn)橛刑摂M機(jī)這中間層,JAVA才能夠?qū)崿F(xiàn)與平JAVA虛擬機(jī)是JAVA平 臺(tái)無(wú)關(guān)的保障。臺(tái)無(wú)關(guān)。虛擬機(jī)就好比是一個(gè)JAVA運(yùn)行的基本平臺(tái),所有的JAVA程序都運(yùn)行在虛擬機(jī)上。所有與平臺(tái)有關(guān)的東西都是由虛擬機(jī)去處理。3 .什么是方法重載(Overloading)W方法覆蓋(Overriding),(1)方法重載(Overloading):方法重載是指同名的方法在不同的地方具有多種含義。方法重載使得在類(lèi)中可以存在方法名相同的多個(gè)方法,但方法的原型不能完全相同,由方法的參數(shù)不同來(lái)決定所使用的是哪個(gè)方

8、法。方法的原型包括方法名和方法參數(shù)類(lèi)型。(2)方法覆蓋(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使用 “ = =比較基本類(lèi)型字段,使用 ”equals 方法比較對(duì)象字段。= =操作比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量在堆中存儲(chǔ)的地址是否相同,即棧中的內(nèi)容是否相同;equals操

9、作表示的兩個(gè)變量是否是對(duì)同一個(gè)對(duì)象的引用,即堆中的內(nèi)容是否相同。二=比較的是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)要與接口一致一3個(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 .異常的

10、分類(lèi),它們的區(qū)別是什么,Error:稱(chēng)為錯(cuò)誤,由Java虛擬機(jī)生成并拋出,包括動(dòng)態(tài)連接失敗、虛擬機(jī)錯(cuò) 誤等,程序?qū)ζ洳蛔魈幚?。Exception:所以異常類(lèi)的父類(lèi),其子類(lèi)對(duì)應(yīng)了各種各樣可能出現(xiàn)的異常事 件,一般需要用戶(hù)顯式的聲明或捕獲。Runtime Exception:一類(lèi)特殊的異常,如被0除、數(shù)組下標(biāo)超范圍等,其產(chǎn) 生比較頻繁,處理麻煩,如果顯式的聲明或捕獲將會(huì)對(duì)程序的可讀性和運(yùn)行效率影響很大。因此由系統(tǒng)自動(dòng)檢測(cè)并將它們交給缺省的異常處理程序(用戶(hù)可不必對(duì)其處理)。8 .什么是流,流(stream)是輸入和輸出設(shè)備的一種抽象表示,這些設(shè)備是數(shù)據(jù)源或數(shù)據(jù)終點(diǎn)??梢韵罅髦袑?xiě)入數(shù)據(jù),也可以從流中

11、讀出數(shù)據(jù)??梢园蚜飨胂鬄榱魅胱约撼绦蚧驈淖约撼绦蛑辛鞒龅淖止?jié)序列。當(dāng)把數(shù)據(jù)寫(xiě)入流時(shí),該流稱(chēng)為輸出流。輸出流可以通往任何可以傳輸字節(jié)序列的設(shè)備,例如硬盤(pán)上的文件,或連接用戶(hù)系統(tǒng)至遠(yuǎn)程系統(tǒng)的電話(huà)線(xiàn)路。輸出流也可以通向顯示器,但這會(huì)大大限制其真正的功能。二、程序設(shè)計(jì)題(共 4 個(gè)題,每題15 分,共 60 分 )1 、輸出1 到 100 以?xún)?nèi)的前10 個(gè)質(zhì)數(shù)。public class Zhishu public static void main(String args)System.out.println("1 到 100 以?xún)?nèi)的前10 個(gè)質(zhì)數(shù) :");int s,i,j=0;f

12、or(s=2;s<=100;s+)4for(i=2;i<=s/2;i+)if(s%i=0)break;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

13、<=20;n+)t=t*n;s=s+t;System.out.println("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

14、=length;this.width=width; / 帶參數(shù)的構(gòu)造方法public void setLength(double lLength)5length=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 permcte

15、r (double i, double j)/ 計(jì)算周長(zhǎng)return (length+width)*2);public static void main(String args)System.out.println(" 長(zhǎng)為5,寬為4 的長(zhǎng)方形的周長(zhǎng)與面積:");RectangleRectangle =new Rectangle (5,4);System.out.println(" 周長(zhǎng) (5,4)="+Rectangle.permcter(5,4);System.out.println( 面積 (5,4)="+Rectangle.area(5

16、,4);10 / 154、定義一個(gè)父類(lèi) Parents和兩個(gè)子類(lèi)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增加了一個(gè)屬性:頭發(fā)的顏色,并重寫(xiě)了父類(lèi) Parents中的 print()方法,輸出 我是母親,我的名字是,我的年齡是歲,我頭發(fā)的顏 色是?!弊?/p>

17、后定義一個(gè)測(cè)試類(lèi)Test,要求顯示如下信息:5、我是家長(zhǎng),我的名字是王瑞,我的年齡是36 歲6、我是父親,我的名字是張峰,我的年齡是45 歲,我的愛(ài)好是打保齡球7、我是母親,我的名字是孫娟,我的年齡是36 歲,我的頭發(fā)顏色是棕色Parents:public abstract class Parents 6private String name;姓名private int age;/ 年齡public Parents()public Parents(String name,int age)this.setName(name);this.setAge(age);public void setNam

18、e(String name) = 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 St

19、ring favor;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()7System.out.println("我是父親,"+"我的名字是"+this.getName()+”,我的年齡 this.getAge()+”歲,我的愛(ài)好是"+this.getFavor();Mother:public class

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論