1.範圍public,private,protected,以及不寫的區別。
答:範圍不同:
範圍 當前類 同一package 子孫類 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
2.&和&&有什麼區別。
答:&是位元運算符,表示按位元運算,&&是邏輯運算子,標識邏輯與(and)
3.Collection和Collections的區別。
答:Collection是集合類的上級介面,繼承於它的介面主要有Set和List,
Collections是針對集合類的一個協助類,它提供一系列的靜態方法實現對各種集合的搜尋丶排序丶安全執行緒化等操作。
4.String s=new String("xyz");建立了幾個對象。
答:兩個,一個是字元對象,一個是字元對象引用對象。
5.Math.round(11.5)等於多少。Math.round(-11.5)等於多少。
答:參數加0.5取與它最接近的長整數,所以Math.round(11.5)==12,Math.round(-11.5)=-11;
6.short s1=1;s1=s1+1;有什麼錯。short s1=1;s1+=1;有什麼錯。
答:short s1=1,s1=s1+1;s1+1結果為int,在賦給s1需要強制轉化成short型;
7.數組有沒有length()這個方法。String有沒有length()這個方法。
答:數組沒有length()這個方法,有length這個屬性。String有length()這個方法。
8.常見的runtime execption(執行階段錯誤)
答:常見的運行時異常有如下這些ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException。
9.error和execption有什麼區別。
答:error表示恢複不是不可能,但是,是恢複很困難的一種嚴重問題,比如說記憶體溢出。不可能指望程式能處理這樣的情況。
execption表示一種設計或者實現問題。如果程式運行正常,是不會發生這種情況的。
10.List,Set , Map是否繼承自Collection。
答:List和Set是,Map不是
11.構造器Constructor是否可以被override。
答:構造器Constructor不能被繼承,因此不能被Overriding,但可以被重載Overloading。
12.是否可以繼承String類。
答:String類是final類故不可以被繼承。
13.try{ }裡面有一個return語句,那麼緊跟在這個try後的finally{ }裡的代碼會不會被執行,什麼時候被執行,在return之前還是之後。
答:會執行,在return之前。
14.用最有效方法算出2乘以8等於幾。
答:2<<3 左移幾表示乘以2的幾次方。
15.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上。
答:jdk1.7以前long,String都不能作用於swtich,jdk1.7以後Sting可以
16.ArrayList和Vector的區別,HashMap和HashTable的區別。
答:ArrayList和Vector:
Vector是安全執行緒的,也就是同步的,而ArrayList不是;當需要增長時,Vector預設為增長原來的一倍,而ArrayList是原來的一半。
HashMap和HashTable:
HashMap是引進Map介面的一個實現,可以允許null key,null value,線程不安全,但效率高
HashTale線程同步,就是安全執行緒,不允許null key,null value,但效率沒有HashMap高
17.char型變數中能不能存貯一個中文漢字。為什麼。
答:可以,因為java中以unicode編碼,一個char佔16個位元組,一個中文佔兩個位元組,所以是可以的。
18.float型float f=3.4是否正確。
答:精度不準確,float f=3.4f。
19.Sring和StringBuffer的區別。
答:String的長度不可變,StringBuffer的長度是可變的。如果要對字串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String時,就用StringBuffer的toString()方法。
20.String是最基本的資料類型嗎。
答:基礎資料型別 (Elementary Data Type)包括byte,int,char,long,float,double,boolean和short。
Stiring是屬於final類的。
21.int和Interger有什麼區別。
答:Int是java的未經處理資料類型,Interger是java為int提的封裝類。
22.final,finally,finalize的區別。
答:final——修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能被作為父類被繼承。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明式給定初值,而在以後的引用中智能讀取,不可修改。被聲明為final的方法也同樣智能使用,不能重載。
finally:再異常處理是提供finally塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的catch語句就會執行,然後控制就會進入finally塊。
finzlize:方法名。java技術允許使用finzlize()方法在垃圾收集器將對象從記憶體中清除出去之前做的必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用是對這個對象調用的。它是在object類中定義的。因此所有的類都繼承於它。子類覆蓋finalize()方法以調整系統資源或者執行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調用的。
23.物件導向的特徵有哪些方面
答:
1.抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便充分的注意與當前目標有關的方面。抽象並不是打算瞭解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,而是資料抽象。
2.繼承:
繼承是一種聯結類的層次模型,並且語序和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程為類繼承。新類繼承了原始類發的特性,新類稱為原始類的衍生類別(子類),而原始類稱為新類的基類(父類)。衍生類別可以從它的基類哪裡繼承方法和執行個體變數,並且類可以修改或增加新的方法使之更適合特殊的要求
3.封裝:
封裝是把資料和過程包圍起來,對資料的訪問只能通過已定義的介面。物件導向計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治丶封裝的對象,這些對象通過一個受保護的介面訪問其它對象。
4.多態性:
多態性是指允許不同類的對象對同一訊息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活性丶抽象丶行為共用丶代碼共用的優勢,很好的解決快樂應用程式函數同名問題。
24.是否可以從一個static方法內部發出對非sattic方法的調用。
答:不可以,如果其中有包含對象的method(),不能保證對象初始化。
25.寫clone()方法時,通常都有一段代碼,是什麼。
答:super().clone