- 相關(guān)推薦
精選Java筆試試題及解答
面試java類型的工作,首先就是要對(duì)java很熟悉,小編整理了關(guān)于java的試題及答案,希望能幫助到你!
1. 存在使i + 1 < i的數(shù)嗎()
答案:存在
解析:如果i為int型,那么當(dāng)i為int能表示的最大整數(shù)時(shí),i+1就溢出變成負(fù)數(shù)了,此時(shí)不就
擴(kuò)展:存在使i > j || i <= j不成立的數(shù)嗎()
答案:存在
解析:比如Double.NaN或Float.NaN,感謝網(wǎng)友指出。
2. 0.6332的數(shù)據(jù)類型是()
A float B double C Float D Double
答案:B
解析:默認(rèn)為double型,如果為float型需要加上f顯示說明,即0.6332f
3. 下面哪些是Thread類的方法()
A start() B run() C exit() D getPriority()
答案:ABD
解析:exit()是System類的方法,如System.exit(0)。
4. 下列說法正確的有()
A. class中的constructor不可省略
B. constructor必須與class同名,但方法不能與class同名
C. constructor在一個(gè)對(duì)象被new時(shí)執(zhí)行
D.一個(gè)class只能定義一個(gè)constructor
答案:C
解析:這里可能會(huì)有誤區(qū),其實(shí)普通的類方法是可以和類名同名的,和構(gòu)造方法唯一的區(qū)分就是,構(gòu)造方法沒有返回值。
5. 具體選項(xiàng)不記得,但用到的知識(shí)如下:
String []a = new String[10];
則:a[0]~a[9] = null
a.length = 10
如果是int []a = new int[10];
則:a[0]~a[9] = 0
a.length = 10
6. 下面關(guān)于java.lang.Exception類的說法正確的是()
A 繼承自Throwable B Serialable CD 不記得,反正不正確
答案:A
解析:Java異常的基類為java.lang.Throwable,java.lang.Error和java.lang.Exception繼承 Throwable,RuntimeException和其它的Exception等繼承Exception,具體的RuntimeException繼承RuntimeException。
7. 下面程序的運(yùn)行結(jié)果是()
String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);
答案:false
解析:因?yàn)閟tr2中的llo是新申請(qǐng)的內(nèi)存塊,而==判斷的是對(duì)象的地址而非值,所以不一樣。如果是String str2 = str1,那么就是true了。
8. 下列屬于關(guān)系型數(shù)據(jù)庫的是()
A. Oracle B MySql C IMS D MongoDB
答案:AB
解答:IMS(Information Management System )數(shù)據(jù)庫是IBM公司開發(fā)的兩種數(shù)據(jù)庫類型之一;
一種是關(guān)系數(shù)據(jù)庫,典型代表產(chǎn)品:DB2;
另一種則是層次數(shù)據(jù)庫,代表產(chǎn)品:IMS層次數(shù)據(jù)庫。
非關(guān)系型數(shù)據(jù)庫有MongoDB、memcachedb、Redis等。
9. GC線程是否為守護(hù)線程?()
答案:是
解析:線程分為守護(hù)線程和非守護(hù)線程(即用戶線程)。
只要當(dāng)前JVM實(shí)例中尚存在任何一個(gè)非守護(hù)線程沒有結(jié)束,守護(hù)線程就全部工作;只有當(dāng)最后一個(gè)非守護(hù)線程結(jié)束時(shí),守護(hù)線程隨著JVM一同結(jié)束工作。
守護(hù)線程最典型的應(yīng)用就是 GC (垃圾回收器)
10. volatile關(guān)鍵字是否能保證線程安全?()
答案:不能
解析:volatile關(guān)鍵字用在多線程同步中,可保證讀取的可見性,JVM只是保證從主內(nèi)存加載到線程工作內(nèi)存的值是最新的讀取值,而非cache中。但多個(gè)線程對(duì)
volatile的寫操作,無法保證線程安全。例如假如線程1,線程2 在進(jìn)行read,load 操作中,發(fā)現(xiàn)主內(nèi)存中count的值都是5,那么都會(huì)加載這個(gè)最新的值,在線程1堆count進(jìn)行修改之后,會(huì)write到主內(nèi)存中,主內(nèi)存中的count變量就會(huì)變?yōu)?;線程2由于已經(jīng)進(jìn)行read,load操作,在進(jìn)行運(yùn)算之后,也會(huì)更新主內(nèi)存count的變量值為6;導(dǎo)致兩個(gè)線程及時(shí)用volatile關(guān)鍵字修改之后,還是會(huì)存在并發(fā)的情況。
【Java筆試試題及解答】相關(guān)文章:
精選Java筆試題09-26
經(jīng)典java筆試題及答案09-26
超經(jīng)典 java 華為筆試題09-26
Java經(jīng)典筆試題(含答案)09-26
Java Web基礎(chǔ)筆試題09-26
用友軟件Java工程師筆試題09-26
2017年Java面試筆試題目09-26
java程序員認(rèn)證筆試試題08-07
Java軟件開發(fā)工程師筆試題09-26