日韩欧美另类久久久精品_亚洲大色堂人在线无码_国产三级aⅴ在线播放_在线无码aⅴ精品动漫_国产精品精品国产专区

JAVA常見(jiàn)面試題庫(kù)及解答

  1)transient和volatile是java關(guān)鍵字嗎?(瞬聯(lián))

  如果用transient聲明一個(gè)實(shí)例變量,當(dāng)對(duì)象存儲(chǔ)時(shí),它的值不需要維持。例如:

  class T

  {

  transient int a; //不需要維持

  int b; //需要維持

  }

  這里,如果T類(lèi)的一個(gè)對(duì)象寫(xiě)入一個(gè)持久的存儲(chǔ)區(qū)域,a的內(nèi)容不被保存,但b的將被保存。

  volatile修飾符告訴編譯器被volatile修飾的變量可以被程序的其他部分改變。在多線程程序中,有時(shí)兩個(gè)或更多的線程共享一個(gè)相同的實(shí)例變量。考慮效率問(wèn)題,每個(gè)線程可以自己保存該共享變量的私有拷貝。實(shí)際的變量副本在不同的時(shí)候更新,如當(dāng)進(jìn)入synchronized方法時(shí)。用strictfp修飾類(lèi)或方法,可以確保浮點(diǎn)運(yùn)算(以及所有切斷)正如早期的Java版本那樣準(zhǔn)確。切斷只影響某些操作的指數(shù)。當(dāng)一個(gè)類(lèi)被strictfp修飾,所有的方法自動(dòng)被strictfp修飾。

  strictfp的意思是FP-strict,也就是說(shuō)精確浮點(diǎn)的意思。在Java虛擬機(jī)進(jìn)行浮點(diǎn)運(yùn)算時(shí),如果沒(méi)有指定strictfp關(guān)鍵字時(shí),Java的編譯器以及運(yùn)行環(huán)境在對(duì)浮點(diǎn)運(yùn)算的表達(dá)式是采取一種近似于我行我素的行為來(lái)完成這些操作,以致于得到的結(jié)果往往無(wú)法令你滿意。而一旦使用了strictfp來(lái)聲明一個(gè)類(lèi)、接口或者方法時(shí),那么所聲明的范圍內(nèi)Java的編譯器以及運(yùn)行環(huán)境會(huì)完全依照浮點(diǎn)規(guī)范IEEE-754來(lái)執(zhí)行。因此如果你想讓你的浮點(diǎn)運(yùn)算更加精確,而且不會(huì)因?yàn)椴煌挠布脚_(tái)所執(zhí)行的結(jié)果不一致的話,那就請(qǐng)用關(guān)鍵字strictfp。

  你可以將一個(gè)類(lèi)、接口以及方法聲明為strictfp,但是不允許對(duì)接口中的方法以及構(gòu)造函數(shù)聲明strictfp關(guān)鍵字,例如下面的代碼:

  strictfp interface A {}

  public strictfp class FpDemo1 {

  strictfp void f() {}

  }

  2. 錯(cuò)誤的使用方法

  interface A {

  strictfp void f();

  }

  public class FpDemo2 {

  strictfp FpDemo2() {}

  }

  一旦使用了關(guān)鍵字strictfp來(lái)聲明某個(gè)類(lèi)、接口或者方法時(shí),那么在這個(gè)關(guān)鍵字所聲明的范圍內(nèi)所有浮點(diǎn)運(yùn)算都是精確的,符合IEEE-754規(guī)范

  的。例如一個(gè)類(lèi)被聲明為strictfp,那么該類(lèi)中所有的方法都是strictfp的。

  2)抽象類(lèi)和接口有什么區(qū)別?(瞬聯(lián))

  1.abstract class 在 Java 語(yǔ)言中表示的是一種繼承關(guān)系,一個(gè)類(lèi)只能使用一次繼承關(guān)系。但是,一個(gè)類(lèi)卻可以實(shí)現(xiàn)多個(gè)interface。

  2.在abstract class 中可以有自己的數(shù)據(jù)成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數(shù)據(jù)成員(也就是必須是static final的,不過(guò)在 interface中一般不定義數(shù)據(jù)成員),所有的成員方法都是abstract的。

  3.abstract class和interface所反映出的設(shè)計(jì)理念不同。其實(shí)abstract class表示的是"is-a"關(guān)系,interface表示的是"like-a"關(guān)系。

  4.實(shí)現(xiàn)抽象類(lèi)和接口的類(lèi)必須實(shí)現(xiàn)其中的所有方法。抽象類(lèi)中可以有非抽象方法。接口中則不能有實(shí)現(xiàn)方法。

  5.接口中定義的變量默認(rèn)是public static final 型,且必須給其初值,所以實(shí)現(xiàn)類(lèi)中不能重新定義,也不能改變其值。

  6.抽象類(lèi)中的變量默認(rèn)是 friendly 型,其值可以在子類(lèi)中重新定義,也可以重新賦值。

  7.接口中的方法默認(rèn)都是 public,abstract 類(lèi)型的。

  

本文已影響6827
上一篇:華圖面試題目及參考答案 下一篇:軟件測(cè)試面試題庫(kù)及參考答案

相關(guān)文章推薦

|||||