最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

大數(shù)據(jù)基礎(chǔ)面試題(二)

2020-06-11 16:07 作者:自學(xué)Python的小姐姐呀  | 我要投稿

67.下列說法正確的有()(多選)

A環(huán)境變量可在編譯source code時指定

B.在編譯程序時,所指定的環(huán)境變置不包括class path

C.javac —次可同時編譯數(shù)個Java 源文件

D.javac.exe能指定編譯結(jié)果要置于哪個目錄(directory)

答案:BCD

分析:

環(huán)境變量一般都是先配置好再編譯源文件。


68.下列標識符不合法的有()(多選)

A.new

B.$Usdollars

C.1234

D.car.taxi

答案:ACD

分析:

new是Java的關(guān)鍵字;

C. 數(shù)字不能開頭;

D. 不能有“.”。


69.下列說法錯誤的有()(多選)

A.數(shù)組是—種對象

B.數(shù)組屬于一種原生類

C.int number[]=(31,23,33,43,35,63)

D.數(shù)組的大小可以任意改變

答案:BCD

分析:

B. Java中的原生類(即基本數(shù)據(jù)類型)有8種,但不包括數(shù)組;

C. 語法錯誤,應(yīng)該“{···}”,而不是“(···)”;

D. 數(shù)組的長度一旦確定就不能修改。


70.不能用來修飾interface的有()(多選)

A.private

B.public

C.protected

D.static

答案:ACD

分析:

能夠修飾interface的只有public、abstract以及默認的三種修飾符。


71.下列正確的有()(多選)

A.call by value不會改變實際參數(shù)的數(shù)值

B.call by reference能改變實際參數(shù)的參考地址

C.call by reference 不能改變實際參數(shù)的參考地址

D.call by reference 能改變實際參數(shù)的內(nèi)容

答案:ACD

分析:

Java中參數(shù)的傳遞有兩種,一種是按值傳遞(call by value:傳遞的是具體的值,如基礎(chǔ)數(shù)據(jù)類型),另一種是按引用傳遞(call by reference:傳遞的是對象的引用,即對象的存儲地址)。前者不能改變實參的數(shù)值,后者雖然不能改變實參的參考地址,但可以通過該地址訪問地址中的內(nèi)容從而實現(xiàn)內(nèi)容的改變。


72.下列說法錯誤的有()(多選)

A.在類方法中可用this來調(diào)用本類的類辦法

B.在類方法中調(diào)用本類的類方法時可以直接調(diào)用

C.在類方法中只能調(diào)用本類中的類方法

D.在類方法中絕對不能調(diào)用實例方法

答案:ACD

分析:

類方法是在類加載時被加載到方法區(qū)存儲的,此時還沒有創(chuàng)建對象,所以不能使用this或者super關(guān)鍵字;

C. 在類方法中還可以調(diào)用其他類的類方法;

D. 在類方法可以通過創(chuàng)建對象來調(diào)用實例方法。


73.下列說法錯誤的有()(多選)

A.Java面向?qū)ο笳Z言容許單獨的過棧與函數(shù)存在

B.Java面向?qū)ο笳Z言容許單獨的方法存在

C.Java語言中的方法屬于類中的成員(member)

D.Java語言中的方法必定隸屬于某一類(對象),調(diào)用方法與過程或函數(shù)相同

答案:ABC

分析:

B. Java不允許單獨的方法,過程或函數(shù)存在,需要隸屬于某一類中;

C. 靜態(tài)方法屬于類的成員,非靜態(tài)方法屬于對象的成員。


74.下列說法錯誤的有()(多選)

A.能被java.exe成功運行的java class文件必須有main()方法

B.J2SDK就是Java API

C.Appletviewer.exe可利用jar選項運行.jar文件

D.能被Appletviewer成功運行的java class文件必須有main()方法

答案:BCD

分析:

B. J2SDK是sun公司編程工具,API是指的應(yīng)用程序編程接口;

C. Appletviewer.exe就是用來解釋執(zhí)行java applet應(yīng)用程序的,一種執(zhí)行HTML文件上的Java小程序類的Java瀏覽器;

D. 能被Appletviewer成功運行的java class文件可以沒有main()方法。


75.請問0.3332的數(shù)據(jù)類型是()

A.float

B.double

C.Float

D.Double

答案:B

分析:

小數(shù)默認是雙精度浮點型即double類型的。


76.Java接口的修飾符可以為()

A.private

B.protected

C.final

D.abstract

答案:D

分析:

能夠修飾interface的只有public、abstract以及默認的三種修飾符。


77.不通過構(gòu)造函數(shù)也能創(chuàng)建對象么()

A是

B.否

答案:A

分析:

Java創(chuàng)建對象的幾種方式:

(1) 用new語句創(chuàng)建對象,這是最常見的創(chuàng)建對象的方法。

(2) 運用反射手段,調(diào)用java.lang.Class或者

java.lang.reflect.Constructor類的newInstance()實例方法。

(3) 調(diào)用對象的clone()方法。

(4) 運用反序列化手段,調(diào)用java.io.ObjectInputStream對象的readObject()方法。

(1)和(2)都會明確的顯式的調(diào)用構(gòu)造函數(shù);(3)是在內(nèi)存上對已有對象的影印,所以不會調(diào)用構(gòu)造函數(shù);(4)是從文件中還原類的對象,也不會調(diào)用構(gòu)造函數(shù)。


78.存在使i+1< i的數(shù)么?

不存在bai使i + 1 < i的數(shù)

因為兩邊

i-i+1<0

1<0不成立。


79.接口可否繼承接口?抽象類是否可實現(xiàn)接口?抽象類是否可繼承實體類?

接口可以繼承接口,抽象類可以實現(xiàn)接口,抽象類可以繼承實體類。


80.int與Integer有什么區(qū)別?

int是java提供的8種原始數(shù)據(jù)類型之一。Java為每個原始類型提供了封裝類,Integer是java為int提供的封裝類。int的默認值為0,而Integer的默認值為null,即Integer可以區(qū)分出未賦值和值為0的區(qū)別,int則無法表達出未賦值的情況,例如,要想表達出沒有參加考試和考試成績?yōu)?的區(qū)別,則只能使用Integer。在JSP開發(fā)中,Integer的默認為null,所以用el表達式在文本框中顯示時,值為空白字符串,而int默認的默認值為0,所以用el表達式在文本框中顯示時,結(jié)果為0,所以,int不適合作為web層的表單數(shù)據(jù)的類型。

在Hibernate中,如果將OID定義為Integer類型,那么Hibernate就可以根據(jù)其值是否為null而判斷一個對象是否是臨時的,如果將OID定義為了int類型,還需要在hbm映射文件中設(shè)置其unsaved-value屬性為0。另外,Integer提供了多個與整數(shù)相關(guān)的操作方法,例如,將一個字符串轉(zhuǎn)換成整數(shù),Integer中還定義了表示整數(shù)的最大值和最小值的常量。


81.可序列化對象為什么要定義serialversionUID值?

SerialVersionUid,簡言之,其目的是序列化對象版本控制,有關(guān)各版本反序列化時是否兼容。如果在新版本中這個值修改了,新版本就不兼容舊版本,反序列化時會拋出InvalidClassException異常。如果修改較小,比如僅僅是增加了一個屬性,我們希望向下兼容,老版本的數(shù)據(jù)都能保留,那就不用修改;如果我們刪除了一個屬性,或者更改了類的繼承關(guān)系,必然不兼容舊數(shù)據(jù),這時就應(yīng)該手動更新版本號,即SerialVersionUid。


82.寫一個Java正則,能過濾出html中的< a href=”url”>title< /a>形式中的鏈接地址和標題.

< a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)< /a>

< a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)< /a>


83.十進制數(shù)72轉(zhuǎn)換成八進制數(shù)是多少?

答: 110


84.Java程序中創(chuàng)建新的類對象,使用關(guān)鍵字new,回收無用的類對象使用關(guān)鍵字free正確么?

答:Java程序中創(chuàng)建新的類對象,使用關(guān)鍵字new是正確的; 回收無用的類對象使用關(guān)鍵字free是錯誤的.


85.Class類的getDeclaredFields()方法與getFields()的區(qū)別?

答:getDeclaredFields(): 可以獲取所有本類自己聲明的方法, 不能獲取繼承的方法

getFields(): 只能獲取所有public聲明的方法, 包括繼承的方法


86.在switch和if-else語句之間進行選取,當控制選擇的條件不僅僅依賴于一個x時,應(yīng)該使用switch結(jié)構(gòu);正確么?

答:不正確。

通常情況下,進行比較判斷的處理,switch 和if-else可以互相轉(zhuǎn)換來寫;if-else作用的范圍比switch-case作用范圍要大,但是當switch-case和if-else都可以用的情況下,通常推薦使用switch-case。

比如:

87.描述&和&&的區(qū)別。

&和&&的聯(lián)系(共同點):

&和&&都可以用作邏輯與運算符,但是要看使用時的具體條件來決定。

操作數(shù)1&操作數(shù)2,操作數(shù)1&&操作數(shù)2,

操作數(shù)1&操作數(shù)2,操作數(shù)1&&操作數(shù)2,

情況1:當上述的操作數(shù)是boolean類型變量時,&和&&都可以用作邏輯與運算符。

情況2:當上述的表達式結(jié)果是boolean類型變量時,&和&&都可以用作邏輯與運算符。

表示邏輯與(and),當運算符兩邊的表達式的結(jié)果或操作數(shù)都為true時,整個運算結(jié)果才為true,否則,只要有一方為false,結(jié)果都為false。

表示邏輯與(and),當運算符兩邊的表達式的結(jié)果或操作數(shù)都為true時,整個運算結(jié)果才為true,否則,只要有一方為false,結(jié)果都為false。

(1)、&邏輯運算符稱為邏輯與運算符,&&邏輯運算符稱為短路與運算符,也可叫邏輯與運算符。

對于&:無論任何情況,&兩邊的操作數(shù)或表達式都會參與計算。

對于&&:當&&左邊的操作數(shù)為false或左邊表達式結(jié)果為false時,&&右邊的操作數(shù)或表達式將不參與計算,此時最終結(jié)果都為false。

綜上所述,如果邏輯與運算的第一個操作數(shù)是false或第一個表達式的結(jié)果為false時,對于第二個操作數(shù)或表達式是否進行運算,對最終的結(jié)果沒有影響,結(jié)果肯定是false。推介平時多使用&&,因為它效率更高些。

(2)、&還可以用作位運算符。當&兩邊操作數(shù)或兩邊表達式的結(jié)果不是boolean類型時,&用于按位與運算符的操作。


88.使用final關(guān)鍵字修飾符一個變量時,是引用不能變,還是引用的對象不能變?

final修飾基本類型變量,其值不能改變。

但是final修飾引用類型變量,棧內(nèi)存中的引用不能改變,但是所指向的堆內(nèi)存中的對象的屬性值仍舊可以改變。

例如:


89.請解釋以下常用正則含義:\d,\D,\s,.,*,?,|,[0-9]{6},\d+

\d: 匹配一個數(shù)字字符。等價于[0-9]

\D: 匹配一個非數(shù)字字符。等價于[^0-9]

\s: 匹配任何空白字符,包括空格、制表符、換頁符等等。等價于 [ \f\n\r\t\v]

. :匹配除換行符 \n 之外的任何單字符。要匹配 . ,請使用 \. 。

*:匹配前面的子表達式零次或多次。要匹配 * 字符,請使用 \*。

+:匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 \+。

|:將兩個匹配條件進行邏輯“或”(Or)運算

[0-9]{6}:匹配連續(xù)6個0-9之間的數(shù)字

\d+:匹配至少一個0-9之間的數(shù)字


90.已知表達式int m[] = {0,1,2,3,4,5,6}; 下面那個表達式的值與數(shù)組的長度相等()

A.m.length()

B.m.length

C.m.length()+1

D.m.length+1

答案:B

分析:數(shù)組的長度是.length


91.下面那些聲明是合法的?()

A.long l = 4990

B.int i = 4L

C.float f = 1.1

D.double d = 34.4

答案:AD

分析:B int屬于整數(shù)型應(yīng)該是int=4 C應(yīng)該是float f=1.1f


92.以下選項中選擇正確的java表達式()

A.int k=new String(“aa”)

B.String str = String(“bb”)

C.char c=74;

D.long j=8888;

答案:CD

分析:A需要強制類型轉(zhuǎn)換 B String str =new String(“bb”)

93.下列代碼的輸出結(jié)果是


94.以下哪些運算符是含有短路運算機制的?請選擇:()

A.&

B.&&

C.|D.||

答案:BD

分析:A C是邏輯與計算


95.下面哪個函數(shù)是public void example(){....}的重載函數(shù)?()

A.private void example(int m){...}

B.public int example(){...}

C.public void example2(){...}

D.public int example(int m.float f){...}

答案:AD

分析:BC定義的是新函數(shù)


96.給定某java程序片段,該程序運行后,j的輸出結(jié)果為()

A.1

B.2

C.3

D.4

答案:B

分析: i++先引用后。++i 先增加后引用


97.在java中,無論測試條件是什么,下列()循環(huán)將至少執(zhí)行一次。

A.for

B.do...while

C.while

D.while...do

答案:B

分析: ACD都不一定進行循環(huán)


98.打印結(jié)果:

輸出結(jié)果:2

99.指出下列程序的運行結(jié)果


打印結(jié)果:

zero


100.解釋繼承、重載、覆蓋。

繼承(英語:inheritance)是面向?qū)ο筌浖夹g(shù)當中的一個概念。如果一個類別A“繼承自”另一個類別B,就把這個A稱為“B的子類別”,而把B稱為“A的父類別”也可以稱“B是A的超類”。繼承可以使得子類別具有父類別的各種屬性和方法,而不需要再次編寫相同的代碼。在令子類別繼承父類別的同時,可以重新定義某些屬性,并重寫某些方法,即覆蓋父類別的原有屬性和方法,使其獲得與父類別不同的功能。另外,為子類別追加新的屬性和方法也是常見的做法。 一般靜態(tài)的面向?qū)ο缶幊陶Z言,繼承屬于靜態(tài)的,意即在子類別的行為在編譯期就已經(jīng)決定,無法在執(zhí)行期擴充。

那么如何使用繼承呢?用extends關(guān)鍵字來繼承父類。

如上面A類與B類,當寫繼承語句時, class A類 extends B類{ } 其中A類是子類,B類是父類。

英文位置不同作用不同重載overload同一個類中

在一個類里面為一種行為提供多種實現(xiàn)方式并提高可讀性

現(xiàn)方式并提高可讀性

重寫override子類和父類間

父類方法無法滿足子類的要求,子類通

過方法重寫滿足要求


101.什么是編譯型語言,什么是解釋型語言?java可以歸類到那種?

計算機不能直接理解高級語言,只能理解和運行機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能運行高級語言所編寫的程序。翻譯的方式有兩種,一個是編譯,一個是解釋。

用編譯型語言寫的程序執(zhí)行之前,需要一個專門的編譯過程,通過編譯系統(tǒng)把高級語言翻譯成機器語言,把源高級程序編譯成為機器語言文件,比如windows下的exe文件。以后就可以直接運行而不需要編譯了,因為翻譯只做了一次,運行時不需要翻譯,所以一般而言,編譯型語言的程序執(zhí)行效率高。

解釋型語言在運行的時候才翻譯,比如VB語言,在執(zhí)行的時候,專門有一個解釋器能夠?qū)B語言翻譯成機器語言,每個語句都是執(zhí)行時才翻譯。這樣解釋型語言每執(zhí)行一次就要翻譯一次,效率比較低。

編譯型與解釋型,兩者各有利弊。前者由于程序執(zhí)行速度快,同等條件下對系統(tǒng)要求較低,因此像開發(fā)操作系統(tǒng)、大型應(yīng)用程序、數(shù)據(jù)庫系統(tǒng)等時都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言,而一些網(wǎng)頁腳本、服務(wù)器腳本及輔助開發(fā)接口這樣的對速度要求不高、對不同系統(tǒng)平臺間的兼容性有一定要求的程序則通常使用解釋性語言,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

JAVA語言是一種編譯型-解釋型語言,同時具備編譯特性和解釋特性(其實,確切的說java就是解釋型語言,其所謂的編譯過程只是將.java文件編程成平臺無關(guān)的字節(jié)碼.class文件,并不是向C一樣編譯成可執(zhí)行的機器語言,在此請讀者注意Java中所謂的“編譯”和傳統(tǒng)的“編譯”的區(qū)別)。作為編譯型語言,JAVA程序要被統(tǒng)一編譯成字節(jié)碼文件——文件后綴是class。此種文件在java中又稱為類文件。java類文件不能再計算機上直接執(zhí)行,它需要被java虛擬機翻譯成本地的機器碼后才能執(zhí)行,而java虛擬機的翻譯過程則是解釋性的。java字節(jié)碼文件首先被加載到計算機內(nèi)存中,然后讀出一條指令,翻譯一條指令,執(zhí)行一條指令,該過程被稱為java語言的解釋執(zhí)行,是由java虛擬機完成的。


102.簡述操作符(&,|)與操作符(&&,||)的區(qū)別&和&&的聯(lián)系(共同點)

&和&&都可以用作邏輯與運算符,但是要看使用時的具體條件來決定。

操作數(shù)1&操作數(shù)2操作數(shù)1&&操作數(shù)2表達式1&表達式2表達式1&&表達式2

情況1:當上述的操作數(shù)是boolean類型變量時,&和&&都可以用作邏輯與運算符。

情況2:當上述的表達式結(jié)果是boolean類型變量時,&和&&都可以用作邏輯與運算符。

表示邏輯與(and),當運算符兩邊的表達式的結(jié)果或操作數(shù)都為true時,整個運算結(jié)果才為true,否則,只要有一方為false,結(jié)果都為false。

&和&&的區(qū)別(不同點):

(1)、&邏輯運算符稱為邏輯與運算符,&&邏輯運算符稱為短路與運算符,也可叫邏輯與運算符。

對于&:無論任何情況,&兩邊的操作數(shù)或表達式都會參與計算。

對于&&:當&&左邊的操作數(shù)為false或左邊表達式結(jié)果為false時,&&右邊的操作數(shù)或表達式將不參與計算,此時最終結(jié)果都為false。

綜上所述,如果邏輯與運算的第一個操作數(shù)是false或第一個表達式的結(jié)果為false時,對于第二個操作數(shù)或表達式是否進行運算,對最終的結(jié)果沒有影響,結(jié)果肯定是false。推介平時多使用&&,因為它效率更高些。

(2)、&還可以用作位運算符。當&兩邊操作數(shù)或兩邊表達式的結(jié)果不是boolean類型時,&用于按位與運算符的操作。

|和||的區(qū)別和聯(lián)系與&和&&的區(qū)別和聯(lián)系類似


103.try{}里面有一個return語句,那么緊跟在這個try后的finally, 里面的語句在異常出現(xiàn)后,都會執(zhí)行么?為什么?

在異常處理時提供 finally 塊來執(zhí)行任何清除操作。

如果有finally的話,則不管是否發(fā)生異常,finally語句都會被執(zhí)行,包括遇到return語句。

finally中語句不執(zhí)行的唯一情況中執(zhí)行了System.exit(0)語句。


104.有一段java應(yīng)用程序,它的主類名是al,那么保存它的源文件可以是?()

A.al.java

B.al.class

C.al

D.都對

答案:A

分析:.class是java的解析文件


105.Java類可以作為()

A.類型定義機制

B.數(shù)據(jù)封裝機制
C.類型定義機制和數(shù)據(jù)封裝機制

D.上述都不對

答案:C


106.在調(diào)用方法時,若要使方法改變實參的值,可以?()

A.用基本數(shù)據(jù)類型作為參數(shù)

B.用對象作為參數(shù)

C.A和B都對

D.A和B都不對

答案:B

分析:基本數(shù)據(jù)類型不能改變實參的值


107.Java語言具有許多優(yōu)點和特點,哪個反映了java程序并行機制的()

A.安全性

B.多線性

C.跨平臺

D.可移植

可移植


108.下關(guān)于構(gòu)造函數(shù)的描述錯誤是()

A.構(gòu)造函數(shù)的返回類型只能是void型

B.構(gòu)造函數(shù)是類的一種特殊函數(shù),它的方法名必須與類名相同

C.構(gòu)造函數(shù)的主要作用是完成對類的對象的初始化工作

D.一般在創(chuàng)建新對象時,系統(tǒng)會自動調(diào)用構(gòu)造函數(shù)

答案:A

分析:構(gòu)造函數(shù)的名字與類的名字相同,并且不能指定返回類型。


109.若需要定義一個類域或類方法,應(yīng)使用哪種修飾符?()

A.static

B.package

C.private

D.public

答案:A

110.下面代碼執(zhí)行后的輸出是什么()

A.0 and 0

0 and 1

0 and 2

B. 1 and 0

1 and 1

1 and 2

C. 2 and 0

2 and 1

2 and 2

答案:A

111.給出如下代碼,如何使成員變量m被函數(shù)fun()直接訪問()

A.將private int m 改為 protected int?

B.將private int m 改為 public int m

C.將private int m 改為 static int m

D.將private int m 改為int m

答案:C


112.下面哪幾個函數(shù)是public void example(){….}的重載函數(shù)()


A.public void example(int m){…}

B.public int example(int m){…}

C.public void example2(){…}

D.public int example(int m,float f){…}

答案:ABD


113.請問以下代碼執(zhí)行會打印出什么?

執(zhí)行:C:\>java com.bjsxt.ChildClass

輸出結(jié)果:?

答:

FatherClassCreate

FatherClassCreate

ChildClass Create


114.如果有兩個類A、B(注意不是接口),你想同時使用這兩個類的功能,那么你會如何編寫這個C類呢?

答:因為類A、B不是接口,所以是不可以直接實現(xiàn)的,但可以將A、B類定義成父子類,那么C類就能實現(xiàn)A、B類的功能了。假如A為B的父類,B為C的父類,此時C就能使用A、B的功能。


115.一個類的構(gòu)造方法是否可以被重載(overloading),是否可以被子類重寫(overrding)?

答:構(gòu)造方法可以被重載,但是構(gòu)造方法不能被重寫,子類也不能繼承到父類的構(gòu)造方法


116.Java中byte表示的數(shù)值范圍是什么?

答:范圍是-128至127


117.如何將日期類型格式化為:2013-02-18 10:53:10?


?

118.不通過構(gòu)造函數(shù)也能創(chuàng)建對象嗎()

A.是

B.否

分析:答案:A

Java創(chuàng)建對象的幾種方式(重要):

(1) 用new語句創(chuàng)建對象,這是最常見的創(chuàng)建對象的方法。

(2) 運用反射手段,調(diào)用java.lang.Class或者

java.lang.reflect.Constructor類的newInstance()實例方法。

(3) 調(diào)用對象的clone()方法

(4) 運用反序列化手段,調(diào)用java.io.ObjectInputStream對象的 readObject()方法。

(1)和(2)都會明確的顯式的調(diào)用構(gòu)造函數(shù) ;(3)是在內(nèi)存上對已有對象的影印,所以不會調(diào)用構(gòu)造函數(shù) ;(4)是從文件中還原類的對象,也不會調(diào)用構(gòu)造函數(shù)。

(1)和(2)都會明確的顯式的調(diào)用構(gòu)造函數(shù) ;(3)是在內(nèi)存上對已有對象的影印,所以不會調(diào)用構(gòu)造函數(shù) ;(4)是從文件中還原類的對象,也不會調(diào)用構(gòu)造函數(shù)。

119.下面哪些是對稱加密算法()


A.DES

B.MD5

C.DSA

D.RSA

分析:答案:A

分析:常用的對稱加密算法有:DES、3DES、RC2、RC4、AES

常用的非對稱加密算法有:RSA、DSA、ECC

使用單向散列函數(shù)的加密算法:MD5、SHA

120.下面的代碼段,當輸入為2的時候返回值是()


A.0

B.2

C.4

D.10

答案:C

分析:result = 0 + 2 * 2;

121.以下Java代碼段會產(chǎn)生幾個對象

分析:答案: 一個對象,因為編譯期進行了優(yōu)化,3個字符串常量直接折疊為一個


122.Math.round(-11.2)的運行結(jié)果是。

答案: -11

分析:小數(shù)點后第一位=5

正數(shù):Math.round(11.5)=12

負數(shù):Math.round(-11.5)=-11

小數(shù)點后第一位<5

正數(shù):Math.round(11.46)=11

負數(shù):Math.round(-11.46)=-11

小數(shù)點后第一位>5

正數(shù):Math.round(11.68)=12

負數(shù):Math.round(-11.68)=-12

根據(jù)上面例子的運行結(jié)果,我們還可以按照如下方式總結(jié),或許更加容易記憶:

參數(shù)的小數(shù)點后第一位<5,運算結(jié)果為參數(shù)整數(shù)部分。

參數(shù)的小數(shù)點后第一位>5,運算結(jié)果為參數(shù)整數(shù)部分絕對值+1,符號(即正負)不變。

參數(shù)的小數(shù)點后第一位=5,正數(shù)運算結(jié)果為整數(shù)部分+1,負數(shù)運算結(jié)果為整數(shù)部分。

終結(jié):大于五全部加,等于五正數(shù)加,小于五全不加。


123.十進制數(shù)278的對應(yīng)十六進制數(shù)

分析:十進制數(shù)278的對應(yīng)十六進制數(shù)是116


124.Java中int.long占用的字節(jié)數(shù)分別是

分析:

1:“字節(jié)”是byte,“位”是bit ;

2: 1 byte = 8 bit ;

char 在Java中是2個字節(jié)。java采用unicode,2個字節(jié)(16位)來表示一個字符。

short 2個字節(jié)

int 4個字節(jié)

long 8個字節(jié)


125.System.out.println(‘a(chǎn)’+1);的結(jié)果是

分析:'a'是char型,1 是int行,int與char相加,char會被強轉(zhuǎn)為int行,char的ASCII碼對應(yīng)的值是97,所以加一起打印98


126.下列語句那一個正確()

A.java程序經(jīng)編譯后會產(chǎn)生machine code

B.java程序經(jīng)編譯后會產(chǎn)生 byte code

C.java程序經(jīng)編譯后會產(chǎn)生DLL

D.以上都不正確

答案:B

分析:java程序編譯后會生成字節(jié)碼文件,就是.class文件


127.下列說法正確的有()

A.class中的constructor不可省略

B.constructor必須與class同名,但方法不能與class同名

C.constructor在一個對象被new時執(zhí)行

D.一個class只能定義一個constructor

答案:C


128.執(zhí)行如下程序代碼()


A.0

B.1

C.-1

D.死循環(huán)

答案:C

do{...}while(...);語句至少執(zhí)行一次


129.下列哪一種敘述是正確的()

A.abstract修飾符可修飾字段、方法和類

B.抽象方法的body部分必須用一對大括號{}包住

C.聲明抽象方法,大括號可有可無

D.聲明抽象方法不可寫出大括號

答案:D

分析: abstract不能修飾字段。既然是抽象方法,當然是沒有實現(xiàn)的方法,根本就沒有body部分。


130.下列語句正確的是()

A.形式參數(shù)可被視為local variable

B.形式參數(shù)可被字段修飾符修飾

C.形式參數(shù)為方法被調(diào)用時,真正被傳遞的參數(shù)

D.形式參數(shù)不可以是對象

答案A:

分析:

A:形式參數(shù)可被視為local variable。形參和局部變量一樣都不能離開方法。都只有在方法內(nèi)才會發(fā)生作用,也只有在方法中使用,不會在方法外可見。

B:對于形式參數(shù)只能用final修飾符,其它任何修飾符都會引起編譯器錯誤。但是用這個修飾符也有一定的限制,就是在方法中不能對參數(shù)做任何修改。 不過一般情況下,一個方法的形參不用final修飾。只有在特殊情況下,那就是:方法內(nèi)部類。? 一個方法內(nèi)的內(nèi)部類如果使用了這個方法的參數(shù)或者局部變量的話,這個參數(shù)或局部變量應(yīng)該是final。?

C:形參的值在調(diào)用時根據(jù)調(diào)用者更改,實參則用自身的值更改形參的值(指針、引用皆在此列),也就是說真正被傳遞的是實參。

D:方法的參數(shù)列表指定要傳遞給方法什么樣的信息,采用的都是對象的形式。因此,在參數(shù)列表中必須指定每個所傳遞對象的類型及名字。想JAVA中任何傳遞對象的場合一樣,這里傳遞的實際上也是引用,并且引用的類型必須正確。--《Thinking in JAVA》


131.成員變量用static修飾和不用static修飾有什么區(qū)別?

1、兩個變量的生命周期不同。

成員變量隨著對象的創(chuàng)建而存在,隨著對象的被回收而釋放。

靜態(tài)變量隨著類的加載而存在,隨著類的消失而消失。

2、調(diào)用方式不同。

成員變量只能被對象調(diào)用。

成員變量只能被對象調(diào)用。

成員變量只能被對象調(diào)用。

類名調(diào)用 :Person.country

3、別名不同。

成員變量也稱為實例變量。

靜態(tài)變量稱為類變量。?

4、數(shù)據(jù)存儲位置不同。

成員變量數(shù)據(jù)存儲在堆內(nèi)存的對象中,所以也叫對象的特有數(shù)據(jù).

靜態(tài)變量數(shù)據(jù)存儲在方法區(qū)(共享數(shù)據(jù)區(qū))的靜態(tài)區(qū),所以也叫對象的共享數(shù)據(jù).


132.如果變量用final修飾,則怎樣?如果方法final修飾,則怎樣?

1、用final修飾的類不能被擴展,也就是說不可能有子類;

2、用final修飾的方法不能被替換或隱藏:

① 使用final修飾的實例方法在其所屬類的子類中不能被替換(overridden);

② 使用final修飾的靜態(tài)方法在其所屬類的子類中不能被重定義(redefined)而隱藏(hidden);

3、用final修飾的變量最多只能賦值一次,在賦值方式上不同類型的變量或稍有不同:

① 靜態(tài)變量必須明確賦值一次(不能只使用類型缺省值);作為類成員的靜態(tài)變量,賦值可以在其聲明中通過初始化表達式完成,也可以在靜態(tài)初始化塊中進行;作為接口成員的靜態(tài)變量,賦值只能在其聲明中通過初始化表達式完成;

② 實例變量同樣必須明確賦值一次(不能只使用類型缺省值);賦值可以在其聲明中通過初始化表達式完成,也可以在實例初始化塊或構(gòu)造器中進行;

③ 方法參數(shù)變量在方法被調(diào)用時創(chuàng)建,同時被初始化為對應(yīng)實參值,終止于方法體 (body)結(jié)束,在此期間其值不能改變;

④ 構(gòu)造器參數(shù)變量在構(gòu)造器被調(diào)用(通過實例創(chuàng)建表達式或顯示的構(gòu)造器調(diào)用)時創(chuàng)建,同時被初始化,為對應(yīng)實參值,終止于構(gòu)造器體結(jié)束,在此期間其值不能改變;

⑤ 異常處理器參數(shù)變量在有異常被try語句的catch子句捕捉到時創(chuàng)建,同時被初始化為實際的異常對象,終止于catch語句塊結(jié)束,在此期間其值不能改變;

⑥ 局部變量在其值被訪問之前必須被明確賦值;


133.在二進制數(shù)據(jù)中,小數(shù)點向右移一位,則數(shù)據(jù)()

A.除以10

B.除以2

C.乘以2

D.乘以10

分析:可以看個例子

101.1 對應(yīng)的十進制為 2^2*1 + 2^1*0 + 2^0*1 + 2^-1*1 = 5.5小數(shù)點右移一位

1011 對應(yīng)的十進制為 2^3*1 + 2^2*0 + 2^1*1 + 2^0*1 = 11所以是擴大到原來的2倍


134.面向?qū)ο蟮奶卣饔心男┓矫?

答:面向?qū)ο蟮奶卣髦饕幸韵聨讉€方面:

1、抽象:抽象是將一類對象的共同特征總結(jié)出來構(gòu)造類的過程,包括數(shù)據(jù)抽象和行為抽象兩方面。抽象只關(guān)注對象有哪些屬性和行為,并不關(guān)注這些行為的細節(jié)是什么。

2、繼承:繼承是從已有類得到繼承信息創(chuàng)建新類的過程。提供繼承信息的類被稱為父類(超類、基類);得到繼承信息的類被稱為子類(派生類)。繼承讓變化中的軟件系統(tǒng)有了一定的延續(xù)性,同時繼承也是封裝程序中可變因素的重要手段(如果不能理解請閱讀閻宏博士的《Java與模式》或《設(shè)計模式精解》中關(guān)于橋梁模式的部分)。

3、封裝:通常認為封裝是把數(shù)據(jù)和操作數(shù)據(jù)的方法綁定起來,對數(shù)據(jù)的訪問只能通過已定義的接口。面向?qū)ο蟮谋举|(zhì)就是將現(xiàn)實世界描繪成一系列完全自治、封閉的對象。我們在類中編寫的方法就是對實現(xiàn)細節(jié)的一種封裝;我們編寫一個類就是對數(shù)據(jù)和數(shù)據(jù)操作的封裝??梢哉f,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的編程接口(可以想想普通洗衣機和全自動洗衣機的差別,明顯全自動洗衣機封裝更好因此操作起來更簡單;我們現(xiàn)在使用的智能手機也是封裝得足夠好的,因為幾個按鍵就搞定了所有的事情)。

4、多態(tài)性:多態(tài)性是指允許不同子類型的對象對同一消息作出不同的響應(yīng)。簡單的說就是用同樣的對象引用調(diào)用同樣的方法但是做了不同的事情。多態(tài)性分為編譯時的多態(tài)性和運行時的多態(tài)性。如果將對象的方法視為對象向外界提供的服務(wù),那么運行時的多態(tài)性可以解釋為:當A系統(tǒng)訪問B系統(tǒng)提供的服務(wù)時,B系統(tǒng)有多種提供服務(wù)的方式,但一切對A系統(tǒng)來說都是透明的(就像電動剃須刀是A系統(tǒng),它的供電系統(tǒng)是B系統(tǒng),B系統(tǒng)可以使用電池供電或者用交流電,甚至還有可能是太陽能,A系統(tǒng)只會通過B類對象調(diào)用供電的方法,但并不知道供電系統(tǒng)的底層實現(xiàn)是什么,究竟通過何種方式獲得了動力)。方法重載(overload)實現(xiàn)的是編譯時的多態(tài)性(也稱為前綁定),而方法重寫(override)實現(xiàn)的是運行時的多態(tài)性(也稱為后綁定)。運行時的多態(tài)是面向?qū)ο笞罹璧臇|西,要實現(xiàn)多態(tài)需要做兩件事:1. 方法重寫(子類繼承父類并重寫父類中已有的或抽象的方法);2. 對象造型(用父類型引用引用子類型對象,這樣同樣的引用調(diào)用同樣的方法就會根據(jù)子類對象的不同而表現(xiàn)出不同的行為)。


135.float f=3.4;是否正確?

答:不正確。3.4是雙精度數(shù),將雙精度型(double)賦值給浮點型(float)屬于下轉(zhuǎn)型(down-casting,也稱為窄化)會造成精度損失,因此需要強制類型轉(zhuǎn)換float f =(float)3.4; 或者寫成float f =3.4F;。


136.short s1 = 1; s1 = s1 + 1;有錯嗎?short s1 = 1; s1 += 1;有錯嗎?

答:對于short s1 = 1; s1 = s1 + 1;由于1是int類型,因此s1+1運算結(jié)果也是int 型,需要強制轉(zhuǎn)換類型才能賦值給short型。而short s1 = 1; s1 += 1;可以正確編譯,因為s1+= 1;相當于s1 = (short)(s1 + 1);其中有隱含的強制類型轉(zhuǎn)換。


137.Java 有沒有g(shù)oto?

答: goto 是Java中的保留字,在目前版本的Java中沒有使用。(根據(jù)James Gosling(Java之父)編寫的《The Java Programming Language》一書的附錄中給出了一個Java關(guān)鍵字列表,其中有g(shù)oto和const,但是這兩個是目前無法使用的關(guān)鍵字,因此有些地方將其稱之為保留字,其實保留字這個詞應(yīng)該有更廣泛的意義,因為熟悉C語言的程序員都知道,在系統(tǒng)類庫中使用過的有特殊意義的單詞或單詞的組合都被視為保留字)


138.int 和Integer 有什么區(qū)別?

答:Java是一個近乎純潔的面向?qū)ο缶幊陶Z言,但是為了編程的方便還是引入不是對象的基本數(shù)據(jù)類型,但是為了能夠?qū)⑦@些基本數(shù)據(jù)類型當成對象操作,Java為每一個基本數(shù)據(jù)類型都引入了對應(yīng)的包裝類型(wrapper class),int的包裝類就是Integer,從JDK 1.5開始引入了自動裝箱/拆箱機制,使得二者可以相互轉(zhuǎn)換。

Java 為每個原始類型提供了包裝類型:

原始類型: boolean,char,byte,short,int,long,float,double

包裝類型:Boolean,Character,Byte,Short,Integer,Long,F(xiàn)loat,Double

簡單的說,如果字面量的值在-128到127之間,那么不會new新的Integer對象,而是直接引用常量池中的Integer對象,所以上面的面試題中f1==f2的結(jié)果是true,而f3==f4的結(jié)果是false。越是貌似簡單的面試題其中的玄機就越多,需要面試者有相當深厚的功力。


139.&和&&的區(qū)別?

答:&運算符有兩種用法:(1)按位與;(2)邏輯與。&&運算符是短路與運算。邏輯與跟短路與的差別是非常巨大的,雖然二者都要求運算符左右兩端的布爾值都是true整個表達式的值才是true。&&之所以稱為短路運算是因為,如果&&左邊的表達式的值是false,右邊的表達式會被直接短路掉,不會進行運算。很多時候我們可能都需要用&&而不是&,例如在驗證用戶登錄時判定用戶名不是null而且不是空字符串,應(yīng)當寫為:username != null &&!username.equals(“”),二者的順序不能交換,更不能用&運算符,因為第一個條件如果不成立,根本不能進行字符串的equals比較,否則會產(chǎn)生NullPointerException異常。注意:邏輯或運算符(|)和短路或運算符(||)的差別也是如此。

補充:如果你熟悉JavaScript,那你可能更能感受到短路運算的強大,想成為?JavaScript的高手就先從玩轉(zhuǎn)短路運算開始吧。


140.Math.round(11.5) 等于多少? Math.round(-11.5)等于多少?

答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在參數(shù)上加0.5然后進行下取整。


由于字數(shù)限制,后續(xù)內(nèi)容更加精彩,歡迎關(guān)注,整理不易,可否動動你的小手給小編來點更新的動力,希望對你們會有幫助!~

大數(shù)據(jù)基礎(chǔ)面試題(二)的評論 (共 條)

分享到微博請遵守國家法律
张北县| 五台县| 淮滨县| 汕尾市| 富川| 萨嘎县| 肥西县| 永丰县| 长垣县| 定陶县| 临海市| 石城县| 连城县| 南汇区| 北安市| 满城县| 五家渠市| 天全县| 开封市| 兴化市| 阿鲁科尔沁旗| 洛隆县| 江西省| 道孚县| 扬中市| 乌审旗| 永靖县| 龙南县| 中方县| 兴和县| 旬阳县| 定远县| 中西区| 诸暨市| 青海省| 昌邑市| 莎车县| 巴林左旗| 思南县| 应用必备| 兴山县|