国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 經典的Java面試題及回答集錦(基礎篇)

經典的Java面試題及回答集錦(基礎篇)

2021-04-13 11:49LiQiyaoo Java教程

本文給大家收藏整理了java面試題及回答,非常不錯,具有參考借鑒價值,需要的朋友參考下吧

1、問題:如果A和B對象循環引用,是否可以被GC?

回答:可以,現在的虛擬機基本都是通過可達性分析算法來判斷對象是否存活的,而不是通過簡單的引用計數法來判斷對象是否存活。可達性分析算法使用一系列的“GC Roots”對象(虛擬機棧中引用的對象、靜態屬性引用對象)作為起始點,這些節點向下搜索的路徑稱為引用鏈,當一個對象到GC Roots沒有任何引用鏈連接,則證明對象是不可用的。

2、Java中的內存溢出是如何造成的?

OutOfMemoryError:

(1)PerGern Space 程序中使用了大量jar或class,使Java虛擬機裝載類空間不夠。

解決方案:調參XX:PermSize 和 XX:MaxPermSize 、減少jar包,減少類的重復加載

(2)Java Heap Space Java虛擬機創建了太多的對象。

解決方案:調參Xms(初始堆大小)Xmx(最大堆大小)、檢查死循環或不必要創建的重復對象

(3)unable to create new native Thread  JVM占用了太多內存空間,而在JVM中創建線程還要再操作系統中也創建線程。

解決方案:調整JVM中線程大小。

3、String s = “123”;這個語句有幾個對象產生?

若字符串池中沒有"123",則產生一個對象,并且放入常量池中,若有"123",則產生0個對象。

若是String s = new String("123"),若常量池中沒有,則在常量池中創建一個,然后在堆內存中創建一個。

4、Error、Exception和RuntimeException的區別,作用又是什么?

Error和Exception都是Throwable的子類,RuntimeException是Exception的子類。

Error用于指示合理應用程序不應該試圖捕獲的錯誤。

Exception指出合理的應用程序需要捕獲的條件。分為已檢查異常和未檢查異常。

RuntimeException是未檢查異常,不需要try catch或在方法上聲明,主要子類:NullPointer、Arithmatic、ArrayIndexOutOfBounds、ClassCast。

5、Reader和InputStream區別?

都是抽象類,Reader用于讀取字符流(char或String),InputStream用于讀取字節流(byte數組)。

6、hashCode的作用?

hashCode主要是用于快速查找,如HashMap結構中,用于定位鍵值對的位置。兩個對象相同,則hashCode一定相同,而hashCode相同的對象則不一定相同,就相當于放在同一個框里。

7、HashMap和Hashtable的區別?

線程安全性、null值的key、效率、HashMap(Iterator快速失敗迭代器)、Hashtable(enumerator迭代器)、時間推移HashMap元素位置會變

8、HashMap中是否任何對象都可以做為key,用戶自定義對象做為key有沒有什么要求?

可以、但是要key對象必須是不可變的對象,不然在Entry被插入Map中后,再改變key值,會導致當前key值與hash值不符合,即與數組索引不符,將無法被查找到。

9、 啟動一個線程是用run()還是start()?

多線程有幾種實現 同步和并發是如何解決的 什么叫守護線程,用什么方法實現守護線程(Thread.setDeamon()的含義) 如何停止一個線程? 解釋是一下什么是線程安全?舉例說明一個線程不安全的例子。解釋Synchronized關鍵字的作用。 當一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的其它方法?

(1)start 

(2)繼承Thread類、實現Runnable接口、使用ExectuorService、Future、Callable實現由返回值的線程。

(3)同步方法、同步代碼塊、鎖

(4)Damon線程、為其他線程的運行提供服務,如GC,Thread。setDeamon(true)。

(5)Thread.stop()不推薦(不會正確釋放資源)、使用中斷來停止線程。

(6)當多個線程訪問一個對象時,如果不用考慮這些線程在運行時環境下的調度和交替執行,也不需要進行額外的同步,或者在調用方進行任何其他的協調操作,調用這個對象的行為都可以獲得正確的結果,那這個對象是線程安全的。

(7)車票被重復賣出。

(8)同步關鍵詞。修飾靜態方法,則以類作為鎖對象,同時只能有一個線程訪問此類同步的靜態方法;修飾普通方法,則以此對象作為鎖對象,同時只能有一個線程訪問此類同步的普通方法;也可以自定義鎖對象同步代碼塊。

(9)synchronized方法不可以進入,非synchronized可以進入。

10、了解過哪些JDK8的新特性,舉例描述下相應的特性?

(1)lambda表達式:函數式編程,方法引用

(2)Stream API

(3)接口的默認方法

(4)日期時間API的改進,新增DateTimeFormatter方法

11、對sql進行優化的原則有哪些?

詳情見我數據庫分類的的一篇博客

12、Servlet的生命周期,Serlvet與CGI的區別?

生命周期:類加載、實例化(構造對象),初始化(init),服務(service),銷毀(destroy)。

CGI:common gateway interface,通用網關接口,Perl語言編寫,每個請求創建一個CGI對象。

Servlet:只需要實例化、初始化一次,多線程。

13、StringBuffer有什么優勢?為什么快?

因為StringBuffer不需要重復創建String對象,但是其實也不是這樣。

比如String s = "a" + "b" + "c"操作編譯器會優化,變成String s = "abc"

String s = s1 + s2 + s3編譯器也會優化,變成StringBuilder的append操作,但是如果不是一次性+操作拼接完,就會反復生成String對象與StringBuilder對象,效率會很低。

14、加密解密算法了解嗎?

摘要算法:MD5(128位)、SHA1(160位),是一種不可逆的過程,無論多大的數據,經過摘要算法后都生成相同長度的數據。只能通過字典進行破解。

對稱加密算法:DES、AES,加密解密時使用相同的秘鑰。

非對稱加密算法:RSA,加密解密時使用不同的秘鑰,對接支付寶使用RSA2。

15、解決高并發與高負載?

(1)靜態頁面消耗最小,盡可能的HTML靜態化,采用信息發布系統CMS實現信息錄入自動生成靜態頁面、在前端緩存不經常改變的動態數據。

(2)CDN,把CSS/JS等資源分布在不同的服務器上。

(3)負載均衡(Nginx)。

(4)緩存不常改變的數據(Redis、memcache)。

(5)圖片服務器與應用服務器分離。

(6)集群。

16、Integer內部緩存?

Integer類內部有一個staitic 的Integer數組,存儲的是一些已經完成初始化的Integer對象,一般值為(-128~127),若用==比較,則有時候會因為值不在緩存中而返回false,所以應該用equals比較。

17、ArrayList的原理?

(1)ArrayList是線程不安全的,若要線程安全,則使用CopyOnWriteList。

(2)底層是Object[]數組,內部有一個elementData引用指向數組,剛開始默認指向一個緩存空數組(transient),當要進行擴容時,會重新new一個大小為1.5倍(x + (x >>1))的新數組,然后將舊元素通過System.arraycopy這個native方法拷貝到新數組中。

(3)隨機讀寫(get、set)方法的算法復雜度為O(1)。

(4)增加操作分為兩種,add(index, value)的算法復雜度為O(n),因為要通過元素復制進行移動;而add(value)操作的算法復雜度為O(1)(若不發生擴容)。

(5)刪除操作的時間復雜度為O(n),因為不管是按index進行刪除還是按照object去刪除,都需要通過復制去實現移動操作,刪除后數組大小不會變,靠size屬性來維護長度。按object進行刪除時不能用new出來的對象,要通過ArrayList內對象的引用刪除。

18、LinkedList的原理?

(1)底層是一個雙向鏈表,維護著一個first指針和一個last指針。

(2)隨機讀寫(get,set)的時間復雜度為O(n)。

(3)插入操作add(object)的時間復雜度為O(1);add(index, object)的時間復雜度為O(n)。

(4)刪除操作remove(object)的時間復雜度為O(1);remove(index)的時間復雜度為O(n)。

19、線程池使用的注意事項?

(1)防止死鎖。線程池中所有線程都在等待A事件發生,而沒有空閑線程去執行A。

(2)防止系統資源不足。要控制線程數量。

(3)防止并發錯誤。

(4)防止線程泄漏,某個線程因RuntimeException或Error沒有正常被捕獲導致該線程異常終止,線程池失去了一個線程。

(5)避免任務過載。

20、Spring中@Autowire與@Resource的區別?

@Autowire默認按照類型裝配,默認情況下它要求依賴對象必須存在如果允許為null,可以設置它required屬性為false,如果我們想使用按照名稱裝配,可以結合@Qualifier注解一起使用; 

@Resource默認按照名稱裝配,當找不到與名稱匹配的bean才會按照類型裝配,可以通過name屬性指定,如果沒有指定name屬性,當注解標注在字段上,即默認取字段的名稱作為bean名稱尋找依賴對象,當注解標注在屬性的setter方法上,即默認取屬性名作為bean名稱尋找依賴對象

21、線程狀態轉移圖。

經典的Java面試題及回答集錦(基礎篇)

22、Object類的方法?

(1)equals:判斷是否相等。

(2)hashCode:求hash值,若兩個對象hash值相等,不一定equals;若equals,則兩個對象hash值一定相等。

(3)toString:獲得對象的字符串表達形式,一般要重寫。

(4)getClass:反射方法,獲得對象所屬的類。

(5)wait:只能在synchronized同步的代碼段中使用,若不帶時間參數,則使得正在執行的線程放棄鎖進入等待狀態(等待池)。

(6)notify:只能在synchronized同步的代碼段中使用,從等待池中取出一個線程放入鎖標志池。

(7)notifyAll:只能在synchronized同步的代碼段中使用,將等待池中取出所有線程放入鎖標志池。

23、Java序列化的底層原理?

將對象信息轉化為字節碼信息。

(1)存儲序列化的描述。(2)當前類描述信息。(3)當前類屬性描述。(4)超類描述(5)超類屬性描述(6)超類屬性值描述(7)子類屬性值描述

原文鏈接:http://blog.csdn.net/L_BestCoder/article/details/79261961

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲综合日韩欧美 | 欧美精品成人一区二区三区四区 | 欧美黄色片免费观看 | 国产激情在线 | 91在线网站 | 亚洲一区二区中文字幕 | 国产精品一区二区三区免费 | 久久成人一区二区 | 91在线免费视频 | 久久久国产一区二区 | a视频在线观看 | 国产成人精品久久二区二区91 | 一区二区三区日韩 | 成人小视频在线看 | 欧美精品一二三 | 国产精品久久久爽爽爽麻豆色哟哟 | 香蕉大人久久国产成人av | 黄色在线网站 | 亚洲成人精品一区 | 欧美成人h版在线观看 | 久久99精品国产麻豆宅宅 | 国产黄色免费网站 | 久久激情五月丁香伊人 | 国产露脸系列magnet | 国产精品久久久久久久久久东京 | 国产视频二区 | 国产又色又爽又黄 | 黄色三级网站 | 日韩欧美一区二区三区免费观看 | 欧美成人观看 | 久久丁香 | 毛片免费在线播放 | 国产日韩一区二区 | 91亚洲国产成人久久精品网站 | 黄色av网站在线免费观看 | 国产精品精品 | 国产免费自拍av | 国产精品日本欧美一区二区三区 | 三级黄色视频毛片 | 综合激情网 | 欧美一级电影在线 |