日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java开发实用的面试题及参考答案

發布時間:2024/8/1 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java开发实用的面试题及参考答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java程序員面試過程中少不了專業上的考試,那么面試過程中面試官會問些什么問題呢?

Java開發實用的面試題及參考答案

1、進程,線程,協程之間的區別是什么?

簡而言之,進程是程序運行和資源分配的基本單位,一個程序至少有一個進程,一個進程至少有一個線程。進程在執行過程中擁有獨立的內存單元,而多個線程共享內存資源,減少切換次數,從而效率更高。線程是進程的一個實體,是cpu調度和分派的基本單位,是比程序更小的能獨立運行的基本單位。同一進程中的多個線程之間可以并發執行。

2、你了解守護線程嗎?它和非守護線程有什么區別?

程序運行完畢,jvm會等待非守護線程完成后關閉,但是jvm不會等待守護線程。守護線程最典型的例子就是GC線程。

3、什么是多線程上下文切換?

多線程的上下文切換是指CPU控制權由一個已經正在運行的線程切換到另外一個就緒并等待獲取CPU執行權的線程的過程。

4、創建兩種線程的方式?他們有什么區別?

通過實現java.lang.Runnable或者通過擴展java.lang.Thread類。相比擴展Thread,實現Runnable接口可能更優.原因有二:Java不支持多繼承。因此擴展Thread類就代表這個子類不能擴展其他類。而實現Runnable接口的類還可能擴展另一個類。類可能只要求可執行即可,因此繼承整個Thread類的開銷過大。

5、Thread類中的start()和run()方法有什么區別?

start()方法被用來啟動新創建的線程,而且start()內部調用了run()方法,這和直接調用run()方法的效果不一樣。當你調用run()方法的時候,只會是在原來的線程中調用,沒有新的線程啟動,start()方法才會啟動新線程。

6、怎么檢測一個線程是否持有對象監視器?

Thread類提供了一個holdsLock(Object obj)方法,當且僅當對象obj的監視器被某條線程持有的時候才會返回true,注意這是一個static方法,這意味著”某條線程”指的是當前線程。

7、你知道哪些垃圾回收算法?

垃圾回收從理論上非常容易理解,具體的方法有以下幾種:

1. 標記-清除

2. 標記-復制

3. 標記-整理

4. 分代回收

8、如何判斷一個對象是否應該被回收?

這就是所謂的對象存活性判斷,常用的方法有兩種:1.引用計數法; 2.對象可達性分析。由于引用計數法存在互相引用導致無法進行GC的問題,所以目前JVM虛擬機多使用對象可達性分析算法。

9、調用System.gc()會發生什么?

通知GC開始工作,但是GC真正開始的時間不確定。

10、64位的JVM當中,int的長度是多少?

Java 中,int 類型變量的長度是一個固定值,與平臺無關,都是 32 位。意思就是說,在 32 位 和 64 位 的Java 虛擬機中,int 類型的長度是相同的。

11、int和Integer的區別?

Integer是int的包裝類型,在拆箱和裝箱中,二者自動轉換。int是基本類型,直接存數值,而integer是對象,用一個引用指向這個對象。

12、int 和Integer誰占用的內存更多?

Integer 對象會占用更多的內存。Integer是一個對象,需要存儲對象的元數據。但是 int 是一個原始類型的數據,所以占用的空間更少。

13、String, StringBuffer和StringBuilder區別?

String是字符串常量,final修飾:StringBuffer字符串變量(線程安全);

StringBuilder 字符串變量(線程不安全)。

14、java當中使用什么類型表示價格比較好?

如果不是特別關心內存和性能的話,使用BigDecimal,否則使用預定義精度的 double 類型。

15、如何將byte轉為String?

可以使用 String 接收 byte[] 參數的構造器來進行轉換,需要注意的點是要使用的正確的編碼,否則會使用平臺默認編碼,這個編碼可能跟原來的編碼相同,也可能不同。

16、可以將int強轉為byte類型么?會產生什么問題?

我們可以做強制轉換,但是Java中int是32位的而byte是8 位的,所以,如果強制轉化int類型的高24位將會被丟棄,byte 類型的范圍是從-128到128。

?最新2022整理收集的一些高頻面試題(都整理成文檔),有很多干貨,包含mysql,netty,spring,線程,spring cloud、jvm、源碼、算法等詳細講解,也有詳細的學習規劃圖,面試題整理等由于篇幅有限就不一一展現了?

?

總結

以上是生活随笔為你收集整理的Java开发实用的面试题及参考答案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。