久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

java面試題 --- 基礎(chǔ)

 貪挽懶月 2022-06-20 發(fā)布于廣東

前段時(shí)間給大家發(fā)過一份 java 面試題的思維導(dǎo)圖,接下來我會用通俗,、簡潔,、易記的話將其整理成一系列的文章,加深自己印象的同時(shí),,也希望能助大家跳槽成功,!


1. 說說 java 的基本數(shù)據(jù)類型以及所占的字節(jié)數(shù)。

  • byte,、short,、int、long,,1,、2、4,、8,;boolean、char,、float,、double,1,、2,、4、8,。

2. 談?wù)勀銓涌诤统橄箢惖睦斫狻?br style="box-sizing: border-box;">

  • 抽象類是對一組事務(wù)的共同點(diǎn)進(jìn)行提取,,比如貓和狗,對它們的共同點(diǎn)進(jìn)行提取,,抽象成一個(gè)動物類,;
  • 接口是對一組行為的規(guī)范,實(shí)現(xiàn)接口就必須實(shí)現(xiàn)接口里面定義的方法,,比如 List 接口規(guī)范了它有 add,、remove 等方法,那么 List 的實(shí)現(xiàn)類就必須按照它的規(guī)范去實(shí)現(xiàn) add、remove 等方法,。

3. 各權(quán)限修飾符有什么區(qū)別,?

  • public 修飾的任一地方都可以訪問;
  • protect 修飾的同一包下的以及它的子類可以訪問,;
  • 不寫(default),,只有同一包下的可以訪問;
  • private 修飾的只有當(dāng)前類以及當(dāng)前類的內(nèi)部類能訪問,。

4. switch 可以作用在哪些類型上,?

  • byte、short,、int,、char、String,、enum

5. 什么是內(nèi)部類,?優(yōu)點(diǎn)是什么?

  • 寫在一個(gè)類里面的類,,叫做內(nèi)部類,。優(yōu)點(diǎn)是對外部不可見,有很好的封裝性,,而且可以訪問私有變量,。

6. 什么是 java 的多態(tài)?

  • 多態(tài)就是要到運(yùn)行時(shí)才能確定類型,,體現(xiàn)為重載和重寫,。

7. 為什么重寫了 equals 方法就要重寫 hashCode 方法?

  • 因?yàn)橛袀€(gè)規(guī)定,,兩個(gè)對象相等那么 hashCode 值就得相同,,而 hashCode 值本來是根據(jù)對象在內(nèi)存中的地址值計(jì)算出來的,對象不同那么 hashCode 一定不會相同,,所以如果重寫了 equals 方法,,就一定得重寫 hashCode 方法。

8. 類的初始化順序你知道嗎,?

  • 加載的先后順序是:父類靜態(tài)成員變量,、父類靜態(tài)代碼塊、子類靜態(tài)變量,、子類靜態(tài)代碼塊,、父類非靜態(tài)變量、父類非靜態(tài)代碼塊,、父類構(gòu)造函數(shù),、子類非靜態(tài)變量,、子類非靜態(tài)代碼塊、子類構(gòu)造函數(shù),。

9. String,、StringBuffer 和 StringBuilder有什么不同?

  • String 用 final 修飾了,,是不可變的,,重新賦值會指向新的對象,因?yàn)?final 修飾,,所以線程安全,;
  • JVM 中有個(gè)字符串常量池,jdk1.7 之前這個(gè)常量池在方法區(qū),,也就是永久代,,jdk1.7 及之后字符串常量池在堆內(nèi)存中,;
  • new 一個(gè) String 對象的時(shí)候,,會在堆內(nèi)存中生成對象,同時(shí)把這個(gè)對象放到字符串常量池中,;
  • 直接賦值 String 的時(shí)候,,首先會看字符串常量池中有沒有,有就直接拿來用,,沒有就先往常量池放一份再拿來用,;
  • 用加號拼接字符串,如果是兩個(gè)常量拼接,,編譯期就直接拼接好,,然后放到常量池中,如果有變量拼接,,那就會調(diào)用 StringBuilder 的 append 方法在堆中生成新對象,,但是這個(gè)并不會放到常量池中;
  • 它有個(gè) intern 方法,,jdk1.7 以前,,會把該方法的調(diào)用者放到常量池中,jdk1.7 及之后,,會把調(diào)用者的引用放到常量池中,。
  • StringBuffer 是線程安全的、可變的,,效率較低,;
  • StringBuilder 線程不安全、可變,,效率較高,。

10. Math.round(11.5) 和 Math.round(-11.5) 的結(jié)果分別是什么?

  • 12 和 -11,四舍五入是操作數(shù)加上 0.5 然后向下取整,。

11. float f = 3.4,、short s = 1, s = s + 1、s += 1 是否正確,?

  • float f = 3.4 是錯(cuò)誤的,,浮點(diǎn)型默認(rèn)是 double,double 類型的用 float 接收屬于向下轉(zhuǎn)型,,需要強(qiáng)轉(zhuǎn),;
  • short s = 1 是錯(cuò)誤的,整型默認(rèn)是 int,,int 類型用 short 接收也是向下轉(zhuǎn)型,,要強(qiáng)轉(zhuǎn);
  • s = s + 1還是錯(cuò)誤的,,需要強(qiáng)轉(zhuǎn),;s += 1 是正確的,+= 隱含了強(qiáng)轉(zhuǎn),。

12. 假如 Integer i1 = 150,,Integer i2 = 150,那么 i1 和 i2 是否相等,?

  • Integer 有個(gè)緩沖池,,-128~127這個(gè)范圍內(nèi)的直接從緩沖池取出,超過這個(gè)范圍會在堆中生成新對象,,所以 i1 和 i2 不相等,。

13. 與(&)、或(|),、異或(^) 操作符你知道嗎,?

  • 與,都為 1 時(shí)結(jié)果才為 1,;
  • 或,,有 1 時(shí)結(jié)果就為 1;
  • 異或,,一個(gè)為 0 一個(gè)為 1 時(shí)結(jié)果才是 1,。

14. java 反射怎么理解?

  • 在運(yùn)行過程中可以獲取任意一類的任意屬性和方法,,可以調(diào)用任意一類的屬性和方法,,這種動態(tài)獲取信息動態(tài)調(diào)用對象的機(jī)制叫反射。

15. 反射有幾種方式,?

  • 反射有三種方式,,一種是通過對象調(diào)用 getClass() 方法,;
  • 一種是用 Class.forName("className") 方法;
  • 還有一種是直接 對象.class ,。

16. 反射有什么優(yōu)缺點(diǎn),?

  • 優(yōu)點(diǎn)是可以動態(tài)判斷類型,動態(tài)加載類,,提高代碼的靈活性,;
  • 缺點(diǎn)是反射需要經(jīng)過一系列的 JVM 操作,性能不太好,。

17. 反射的應(yīng)用場景有哪些,?

  • 比如 JDBC 加載數(shù)據(jù)庫驅(qū)動、動態(tài)代理,、Spring xml 方式加載 bean,。

18. java 中的異常體系你知道嗎?

  • 最頂層的抽象類是 Throwable,,它有兩個(gè)子類,,Error 和 Exception;
  • Error 是虛擬機(jī)無法處理的系統(tǒng)錯(cuò)誤,,比如棧內(nèi)存溢出 StackOverflowError,、內(nèi)存溢出 OutOfMemoryError;
  • Exception 是異常,,分為編譯期異常和運(yùn)行時(shí)異常;
  • 編譯期異常就是程序必須處理的,,不處理你的開發(fā)工具就會有錯(cuò)誤提示的,,比如 IOException、ClassNotFoundException,;
  • 運(yùn)行時(shí)異常就是要等程序運(yùn)行時(shí)才會發(fā)生的異常,,比如 NullPointerException、IndexOutOfBoundsException,、ConcurrentModificationException 等,。

19. 異常可以怎么處理,?

  • 拋出(Throw),、捕獲(try catch)、聲明(Throws),。

20. 你知道 finally 嗎,?

  • finally,配合 try catch 使用,,try 中寫要捕獲異常的代碼,, catch 中寫捕獲到異常后的操作,,finally 中寫一定要執(zhí)行的代碼,比如關(guān)閉資源,、釋放連接等,。

21. finally 中的代碼一定會執(zhí)行嗎?

  • 在程序發(fā)生異常之前或 try 中的代碼塊正常執(zhí)行完之前,,調(diào)用了 System.exist(),,finally 中代碼不會執(zhí)行;
  • 程序所在線程死亡,,finally 中的代碼不會執(zhí)行,。

22. 在 try 或 catch 中調(diào)用了 return,finally 還會執(zhí)行嗎,?

  • 會,,且在 return 之前執(zhí)行。

掃描二維碼

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多