摘要:另外,還可以調(diào)用和等很便利的方法,以返回表示字段,方法,以及構(gòu)造器的對象的數(shù)組。運(yùn)行結(jié)果無參構(gòu)造器有參構(gòu)造器和實(shí)現(xiàn)原理和區(qū)別和區(qū)別是一個(gè)集合接口。
對象的四種引用
強(qiáng)引用只要引用存在,垃圾回收器永遠(yuǎn)不會回收
可直接通過obj取得對應(yīng)的對象 如 obj.equels(new Object()); 而這樣 obj 對象對后面 new Object 的一個(gè)強(qiáng) 引用,只有當(dāng) obj 這個(gè)引用被釋放之后,對象才會被釋放掉,這也是我們經(jīng)常所用到的編碼形式。
軟引用 非必須引用,內(nèi)存溢出之前進(jìn)行回收,可以通過以下代碼實(shí)現(xiàn)
這時(shí)候sf是對obj的一個(gè)軟引用,通過sf.get()方法可以取到這個(gè)對象,當(dāng)然,當(dāng)這個(gè)對象被標(biāo)記為需要回收的對象 時(shí),則返回null; 軟引用主要用戶實(shí)現(xiàn)類似緩存的功能,在內(nèi)存足夠的情況下直接通過軟引用取值,無需從繁忙的 真實(shí)來源查詢數(shù)據(jù),提升速度;當(dāng)內(nèi)存不足時(shí),自動刪除這部分緩存數(shù)據(jù),從真正的來源查詢這些數(shù)據(jù)。
弱引用 第二次垃圾回收時(shí)回收,可以通過如下代碼實(shí)現(xiàn)
弱引用是在第二次垃圾回收時(shí)回收,短時(shí)間內(nèi)通過弱引用取對應(yīng)的數(shù)據(jù),可以取到,當(dāng)執(zhí)行過第二次垃圾回收時(shí), 將返回null。弱引用主要用于監(jiān)控對象是否已經(jīng)被垃圾回收器標(biāo)記為即將回收的垃圾,可以通過弱引用的 isEnQueued 方法返回對象是否被垃圾回收器標(biāo)記。 ThreadLocal 中有使用到弱引用,
虛引用 垃圾回收時(shí)回收,無法通過引用取到對象值,可以通過如下代碼實(shí)現(xiàn)
虛引用是每次垃圾回收的時(shí)候都會被回收,通過虛引用的get方法永遠(yuǎn)獲取到的數(shù)據(jù)為null,因此也被成為幽靈引 用。虛引用主要用于檢測對象是否已經(jīng)從內(nèi)存中刪除。
Java獲取反射的三種方法
1.通過new對象實(shí)現(xiàn)反射機(jī)制2.通過路徑實(shí)現(xiàn)反射機(jī)制3.通過類名實(shí)現(xiàn)反射機(jī)制
Java反射機(jī)制
Java 反射機(jī)制是在運(yùn)行狀態(tài)中,對于任意一個(gè)類,都能夠獲得這個(gè)類的所有屬性和方法,對于任意一個(gè)對象都能夠 調(diào)用它的任意一個(gè)屬性和方法。這種在運(yùn)行時(shí)動態(tài)的獲取信息以及動態(tài)調(diào)用對象的方法的功能稱為 Java 的反射機(jī)制。
Class 類與 java.lang.reflect 類庫一起對反射的概念進(jìn)行了支持,該類庫包含了 Field,Method,Constructor 類 (每 個(gè)類都實(shí)現(xiàn)了 Member 接口)。這些類型的對象時(shí)由 JVM 在運(yùn)行時(shí)創(chuàng)建的,用以表示未知類里對應(yīng)的成員。
這樣你就可以使用 Constructor 創(chuàng)建新的對象,用 get() 和 set() 方法讀取和修改與 Field 對象關(guān)聯(lián)的字段,用 invoke() 方法調(diào)用與 Method 對象關(guān)聯(lián)的方法。另外,還可以調(diào)用 getFields() getMethods() 和 getConstructors() 等很便利的方法,以返回表示字段,方法,以及構(gòu)造器的對象的數(shù)組。這樣匿名對象的信息 就能在運(yùn)行時(shí)被完全確定下來,而在編譯時(shí)不需要知道任何事情。
運(yùn)行結(jié)果:無參構(gòu)造器Run......有參構(gòu)造器Run......Apple
Arrays.sort 和 Collections.sort 實(shí)現(xiàn)原理 和區(qū)別
Collection和Collections區(qū)別
java.util.Collection 是一個(gè)集合接口。它提供了對集合對象進(jìn)行基本操作的通用接口方法。
java.util.Collections 是針對集合類的一個(gè)幫助類,他提供一系列靜態(tài)方法實(shí)現(xiàn)對各種集合的搜索、排序、 線程安全等操作。 然后還有混排(Shuffling)、反轉(zhuǎn)(Reverse)、替換所有的元素(fill)、拷貝(copy)、返 回Collections中最小元素(min)、返回Collections中最大元素(max)、返回指定源列表中最后一次出現(xiàn)指定目 標(biāo)列表的起始位置( lastIndexOfSubList )、返回指定源列表中第一次出現(xiàn)指定目標(biāo)列表的起始位置 ( IndexOfSubList )、根據(jù)指定的距離循環(huán)移動指定列表中的元素(Rotate);
事實(shí)上Collections.sort方法底層就是調(diào)用的array.sort方法,
legacyMergeSort (a):歸并排序 ComparableTimSort.sort():Timsort 排序
Timsort 排序是結(jié)合了合并排序(merge sort)和插入排序(insertion sort)而得出的排序算法
Timsort的核心過程
TimSort 算法為了減少對升序部分的回溯和對降序部分的性能倒退,將輸入按其升序和降序特點(diǎn)進(jìn)行了分 區(qū)。排序的輸入的單位不是一個(gè)個(gè)多帶帶的數(shù)字,而是一個(gè)個(gè)的塊-分區(qū)。其中每一個(gè)分區(qū)叫一個(gè)run。針對這 些 run 序列,每次拿一個(gè) run 出來按規(guī)則進(jìn)行合并。每次合并會將兩個(gè) run合并成一個(gè) run。合并的結(jié)果保 存到棧中。合并直到消耗掉所有的 run,這時(shí)將棧上剩余的 run合并到只剩一個(gè) run 為止。這時(shí)這個(gè)僅剩的 run 便是排好序的結(jié)果。
綜上述過程,Timsort算法的過程包括
(0)如何數(shù)組長度小于某個(gè)值,直接用二分插入排序算法
(1)找到各個(gè)run,并入棧
(2)按規(guī)則合并run
前百度面試官整理的——Java后端面試題(三)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74610.html
摘要:但在的過程中過程中有可能被其他對象調(diào)用它的產(chǎn)生異常,如果你的程序不捕獲這個(gè)異常,線程就會異常終止,進(jìn)入狀態(tài),如果你的程序捕獲了這個(gè)異常,那么程序就會繼續(xù)執(zhí)行語句塊可能還有語句塊以及以后的代碼。 LinkedHashMap 的應(yīng)用 基于 LinkedHashMap 的訪問順序的特點(diǎn),可構(gòu)造一個(gè) LRU(Least Recently Used) 最近最少使用簡單緩存。 也有一些開源的緩存產(chǎn)...
摘要:發(fā)生了線程不安全情況。本來在中,發(fā)生哈希沖突是可以用鏈表法或者紅黑樹來解決的,但是在多線程中,可能就直接給覆蓋了。中,當(dāng)同一個(gè)值上元素的鏈表節(jié)點(diǎn)數(shù)不小于時(shí),將不再以單鏈表的形式存儲了,會被調(diào)整成一顆紅黑樹。 showImg(https://segmentfault.com/img/bVbsVLk?w=288&h=226); List 和 Set 的區(qū)別 List , Set 都是繼承自...
摘要:獲取的對象范圍方法獲取的是最終應(yīng)用在元素上的所有屬性對象即使沒有代碼,也會把默認(rèn)的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個(gè)光禿禿的元素,方法返回對象中屬性值如果有就是據(jù)我測試不同環(huán)境結(jié)果可能有差異而就是。 花了很長時(shí)間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點(diǎn)個(gè)贊,點(diǎn)個(gè)star再走哈~ 持續(xù)更新中……,可以關(guān)注下github 項(xiàng)目地址 https:...
摘要:好不容易在月號這天中午點(diǎn)左右接到了來自阿里的面試電話。這里會不斷收集和更新基礎(chǔ)相關(guān)的面試題,目前已收集題。面試重難點(diǎn)的和的打包過程多線程機(jī)制機(jī)制系統(tǒng)啟動過程,啟動過程等等掃清面試障礙最新面試經(jīng)驗(yàn)分享,此為第一篇,開篇。 2016 年末,騰訊,百度,華為,搜狗和滴滴面試題匯總 2016 年未,騰訊,百度,華為,搜狗和滴滴面試題匯總 各大公司 Java 后端開發(fā)面試題總結(jié) 各大公司 Jav...
閱讀 2241·2019-08-30 10:51
閱讀 793·2019-08-30 10:50
閱讀 1477·2019-08-30 10:49
閱讀 3139·2019-08-26 13:55
閱讀 1606·2019-08-26 11:39
閱讀 3421·2019-08-26 11:34
閱讀 1949·2019-08-23 18:30
閱讀 3388·2019-08-23 18:22