瞬聯(lián)java面試題
1)能說(shuō)一下java的反射(reflection)機制嗎?(瞬聯(lián))
開(kāi)放性和原因連接(causally-connected)是反射系統的兩大基本要素
2)抽象類(lèi)和接口有什么區別?(瞬聯(lián))
1.abstract class 在 Java 語(yǔ)言中表示的是一種繼承關(guān)系,一個(gè)類(lèi)只能使用一次繼承關(guān)系。但是,一個(gè)類(lèi)卻可以實(shí)現多個(gè)interface。
2.在abstract class 中可以有自己的數據成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數據成員(也就是必須是static final的,不過(guò)在 interface中一般不定義數據成員),所有的成員方法都是abstract的。
3.abstract class和interface所反映出的設計理念不同。其實(shí)abstract class表示的是"is-a"關(guān)系,interface表示的是"like-a"關(guān)系。
4.實(shí)現抽象類(lèi)和接口的類(lèi)必須實(shí)現其中的所有方法。抽象類(lèi)中可以有非抽象方法。接口中則不能有實(shí)現方法。
5.接口中定義的變量默認是public static final 型,且必須給其初值,所以實(shí)現類(lèi)中不能重新定義,也不能改變其值。
6.抽象類(lèi)中的變量默認是 friendly 型,其值可以在子類(lèi)中重新定義,也可以重新賦值。
7.接口中的方法默認都是 public,abstract 類(lèi)型的。
3)transient和volatile是java關(guān)鍵字嗎?(瞬聯(lián))
如果用transient聲明一個(gè)實(shí)例變量,當對象存儲時(shí),它的值不需要維持。例如:
class T
{
transient int a; //不需要維持
int b; //需要維持
}
這里,如果T類(lèi)的一個(gè)對象寫(xiě)入一個(gè)持久的存儲區域,a的內容不被保存,但b的將被保存。
volatile修飾符告訴編譯器被volatile修飾的變量可以被程序的其他部分改變。在多線(xiàn)程程序中,有時(shí)兩個(gè)或更多的線(xiàn)程共享一個(gè)相同的實(shí)例變量?紤]效率問(wèn)題,每個(gè)線(xiàn)程可以自己保存該共享變量的私有拷貝。實(shí)際的變量副本在不同的時(shí)候更新,如當進(jìn)入synchronized方法時(shí)。 用strictfp修飾類(lèi)或方法,可以確保浮點(diǎn)運算(以及所有切斷)正如早期的Java版本那樣準確。切斷只影響某些操作的指數。當一個(gè)類(lèi)被strictfp修飾,所有的方法自動(dòng)被strictfp修飾。
strictfp的意思是FP-strict,也就是說(shuō)精確浮點(diǎn)的意思。在Java虛擬機進(jìn)行浮點(diǎn)運算時(shí),如果沒(méi)有指定strictfp關(guān)鍵字時(shí),Java的編譯器以及運行環(huán)境在對浮點(diǎn)運算的表達式是采取一種近似于我行我素的行為來(lái)完成這些操作,以致于得到的結果往往無(wú)法令你滿(mǎn)意。而一旦使用了strictfp來(lái)聲明一個(gè)類(lèi)、接口或者方法時(shí),那么所聲明的范圍內Java的編譯器以及運行環(huán)境會(huì )完全依照浮點(diǎn)規范IEEE-754來(lái)執行。因此如果你想讓你的浮點(diǎn)運算更加精確,而且不會(huì )因為不同的硬件平臺所執行的結果不一致的話(huà),那就請用關(guān)鍵字strictfp。
你可以將一個(gè)類(lèi)、接口以及方法聲明為strictfp,但是不允許對接口中的方法以及構造函數聲明strictfp關(guān)鍵字,例如下面的代碼:
strictfp interface A {}
public strictfp class FpDemo1 {
strictfp void f() {}
}
2. 錯誤的使用方法
interface A {
strictfp void f();
}
public class FpDemo2 {
strictfp FpDemo2() {}
}
一旦使用了關(guān)鍵字strictfp來(lái)聲明某個(gè)類(lèi)、接口或者方法時(shí),那么在這個(gè)關(guān)鍵字所聲明的范圍內所有浮點(diǎn)運算都是精確的,符合IEEE-754規范
的。例如一個(gè)類(lèi)被聲明為strictfp,那么該類(lèi)中所有的方法都是strictfp的。
4)在java中怎樣實(shí)現多線(xiàn)程?(瞬聯(lián)) extends Thread implement Runnable
方法一:繼承 Thread 類(lèi),覆蓋方法 run(),我們在創(chuàng )建的 Thread 類(lèi)的子類(lèi)中重寫(xiě) run() ,加入線(xiàn)程所要執行的代碼即可。下面是一個(gè)例子: |
【瞬聯(lián)java面試題】相關(guān)文章:
java基礎面試題201711-13
華為Java面試題精選10-24
高級Java面試題匯總09-12
2016年JAVA面試題11-07
精選Java線(xiàn)程面試題06-15
2017年java華為面試題08-20
經(jīng)典的Java基礎面試題08-22
JAVA經(jīng)典面試題目匯總10-12
java程序員面試題08-27
最新java面試題及答案08-20