Java面試題

1.Math類三個與取整有關的方法:ceil、floor、round

  • ceil的英文意義是天花板,該方法就表示向上取整,Math.ceil(11.3)的結果爲12,Math.ceil(-11.3)的結果是-11
  • floor的英文意義是地板,該方法就表示向下取整,Math.ceil(11.6)的結果爲11,Math.ceil(-11.6)的結果是-12;
  • round方法,它表示“四捨五入”,算法爲Math.floor(x+0.5),即將原來的數字加上0.5後再向下取整,所以,Math.round(11.5)的結果爲12,Math.round(-11.5)的結果爲-11。

2.泛型

作用於代碼編譯階段,在編譯過程中,對於正確檢驗泛型結果後,會將泛型的相關信息擦出,也就是說,成功編譯過後的class文件中是不包含任何泛型信息的。泛型信息不會進入到運行時階段。

 

3.java中native的用法

native關鍵字說明其修飾的方法是一個原生態方法,方法對應的實現不是在當前文件,而是在用其他語言(如C和C++)實現的文件中。Java語言本身不能對操作系統底層進行訪問和操作,但是可以通過JNI接口調用其他語言來實現對底層的訪問。

JNI是Java本機接口(Java Native Interface),是一個本機編程接口,它是Java軟件開發工具箱(java Software Development Kit,SDK)的一部分。JNI允許Java代碼使用以其他語言編寫的代碼和代碼庫。Invocation API(JNI的一部分)可以用來將Java虛擬機(JVM)嵌入到本機應用程序中,從而允許程序員從本機代碼內部調用Java代碼。

 

4.迭代器

Iterator  支持從源集合中安全地刪除對象,只需在 Iterator 上調用 remove() 即可。這樣做的好處是可以避免 ConcurrentModifiedException ,當打開 Iterator 迭代集合時,同時又在對集合進行修改。有些集合不允許在迭代時刪除或添加元素,但是調用 Iterator 的remove() 方法是個安全的做法。 

 

5.存根(Stub)

存根類是一個類,它實現了一個接口,它的作用是:如果一個接口有很多方法,如果要實現這個接口,就要實現所有的方法。但是一個類從業務來說,可能只需要其中一兩個方法。如果直接去實現這個接口,除了實現所需的方法,還要實現其他所有的無關方法。而如果通過繼承存根類就實現接口,就免去了這種麻煩。

RMI 採用stubs 和 skeletons 來進行遠程對象(remote object)的通訊。stub 充當遠程對象的客戶端代理,有着和遠程對象相同的遠程接口,遠程對象的調用實際是通過調用該對象的客戶端代理對象stub來完成的。
每個遠程對象都包含一個代理對象stub,當運行在本地Java虛擬機上的程序調用運行在遠程Java虛擬機上的對象方法時,它首先在本地創建該對象的代理對象stub, 然後調用代理對象上匹配的方法。每一個遠程對象同時也包含一個skeleton對象,skeleton運行在遠程對象所在的虛擬機上,接受來自stub對象的調用。這種方式符合等到程序要運行時將目標文件動態進行鏈接的思想。jdk1.2之前是skeleton,之後是server

 

6.內部類

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章