91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

經常被問的JAVA面試題有哪些

發布時間:2022-01-12 21:57:19 來源:億速云 閱讀:142 作者:iii 欄目:編程語言

這篇文章主要介紹了經常被問的JAVA面試題有哪些的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇經常被問的JAVA面試題有哪些文章都會有所收獲,下面我們一起來看看吧。

什么是值傳遞和引用傳遞?

值傳遞是對基本型變量而言的,傳遞的是該變量的一個副本,改變副本不影響原變量. 引用傳遞一般是對于對象型變量而言的,傳遞的是該對象地址的一個副本, 并不是原對象本身 。 一般認為,java內的傳遞都是值傳遞. java中實例對象的傳遞是引用傳遞 。

是否可以在static環境中訪問非static變量?

static變量在Java中是屬于類的,它在所有的實例中的值是一樣的。當類被Java虛擬機載入的時候,會對static變量進行初始化。如果你的代碼嘗試不用實例來訪問非static的變量,編譯器會報錯,因為這些變量還沒有被創建出來,還沒有跟任何實例關聯上。

解釋內存中的棧(stack)、堆(heap)和方法區(method area)的用法。

通常我們定義一個基本數據類型的變量,一個對象的引用,還有就是函數調用的現場保存都使用JVM中的棧空間;而通過new關鍵字和構造器創建的對象則放在堆空間,堆是垃圾收集器管理的主要區域,由于現在的垃圾收集器都采用分代收集算法,所以堆空間還可以細分為新生代和老生代,再具體一點可以分為Eden、Survivor(又可分為From Survivor和To Survivor)、Tenured;方法區和堆都是各個線程共享的內存區域,用于存儲已經被JVM加載的類信息、常量、靜態變量、JIT編譯器編譯后的代碼等數據;程序中的字面量(literal)如直接書寫的100、”hello”和常量都是放在常量池中,常量池是方法區的一部分,。棧空間操作起來最快但是棧很小,通常大量的對象都是放在堆空間,棧和堆的大小都可以通過JVM的啟動參數來進行調整,棧空間用光了會引發StackOverflowError,而堆和常量池空間不足則會引發OutOfMemoryError。

接口和抽象類的區別是什么?

從設計層面來說,抽象是對類的抽象,是一種模板設計,接口是行為的抽象,是一種行為的規范。

Java提供和支持創建抽象類和接口。它們的實現有共同點,不同點在于: **接口中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。 **

類可以實現很多個接口,但是只能繼承一個抽象類 類可以不實現抽象類和接口聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。

抽象類可以在不提供接口方法實現的情況下實現接口。 **Java接口中聲明的變量默認都是final的。抽象類可以包含非final的變量。 Java接口中的成員函數默認是public的。抽象類的成員函數可以是private,protected或者是public。 **

接口是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含main方法的話是可以被調用的。 也可以參考JDK8中抽象類和接口的區別。

String和StringBuilder、StringBuffer的區別?

Java平臺提供了兩種類型的字符串:String和StringBuffer/StringBuilder,它們可以儲存和操作字符串。其中String是只讀字符串,也就意味著String引用的字符串內容是不能被改變的。而StringBuffer/StringBuilder類表示的字符串對象可以直接進行修改。StringBuilder是Java 5中引入的,它和StringBuffer的方法完全相同,區別在于它是在單線程環境下使用的,因為它的所有方面都沒有被synchronized修飾,因此它的效率也比StringBuffer要高。

如果兩個鍵的hashcode相同,你如何獲取值對象?

當我們調用get()方法,HashMap會使用鍵對象的hashcode找到bucket位置,然后會調用keys.equals()方法去找到鏈表中正確的節點,最終找到要找的值對象。

HashMap和Hashtable有什么區別?

1、HashMap是非線程安全的,HashTable是線程安全的。

2、HashMap的鍵和值都允許有null值存在,而HashTable則不行。

3、因為線程安全的問題,HashMap效率比HashTable的要高。

4、Hashtable是同步的,而HashMap不是。因此,HashMap更適合于單線程環境,而Hashtable適合于多線程環境。

一般現在不建議用HashTable, ①是HashTable是遺留類,內部實現很多沒優化和冗余。②即使在多線程環境下,現在也有同步的ConcurrentHashMap替代,沒有必要因為是多線程而用HashTable。

如何決定選用HashMap還是TreeMap?

對于在Map中插入、刪除和定位元素這類操作,HashMap是最好的選擇。然而,假如你需要對一個有序的key集合進行遍歷,TreeMap是更好的選擇。基于你的collection的大小,也許向HashMap中添加元素會更快,將map換為TreeMap進行有序key的遍歷。

關于“經常被問的JAVA面試題有哪些”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“經常被問的JAVA面試題有哪些”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

神木县| 铜梁县| 兴山县| 南投市| 翁牛特旗| 柳河县| 平阳县| 铅山县| 曲阳县| 赫章县| 湖州市| 永福县| 利辛县| 海晏县| 盐城市| 友谊县| 吉水县| 毕节市| 澎湖县| 惠安县| 老河口市| 阳高县| 文安县| 枞阳县| 绥棱县| 云和县| 北辰区| 宣威市| 商丘市| 赫章县| 嘉祥县| 涞水县| 弥勒县| 昌邑市| 鄂尔多斯市| 闵行区| 雷山县| 龙江县| 广汉市| 涿州市| 奉新县|