B+樹索引和哈希索引都有什麼優缺點:http://www.javashuo.com/article/p-ewgykcmq-cb.html http://www.javashuo.com/article/p-bwixyvrq-gc.htmlhtml
B樹和B+樹的區別:http://www.javashuo.com/article/p-dnkgqbpl-ev.html https://blog.csdn.net/login_sonata/article/details/75268075java
HashMap裏面實現一個靜態內部類Entry,其重要的屬性有 key , value, next,從屬性key,value咱們就能很明顯的看出來Entry就是HashMap鍵值對實現的一個基礎bean,咱們上面說到HashMap的基礎就是一個線性數組。把HashMap的put源碼,get源碼理一遍linux
Exception與error的差異 Exception的分類 NullpointerException屬於什麼.運行時異常與通常異常的區別 .try-catch-finally中return https://www.jianshu.com/p/e8bbee3c1c4a https://blog.csdn.net/huhui_cs/article/details/38817791 https://blog.csdn.net/u012112647/article/details/51798897 https://blog.csdn.net/ns_code/article/details/17485221web
IO流分類:IO流中用到了不少設計模式:https://my.oschina.net/gao0516/blog/136103面試
問了一個數據量過大,會致使JVM堆棧過深,怎麼辦:http://www.javashuo.com/article/p-stucavxq-ee.htmlredis
爲何要設置兩個Survivor區
設置兩個Survivor區最大的好處就是解決了碎片化,下面咱們來分析一下。數據庫
爲何一個Survivor區不行?第一部分中,咱們知道了必須設置Survivor區。假設如今只有一個survivor區,咱們來模擬一下流程:
剛剛新建的對象在Eden中,一旦Eden滿了,觸發一次Minor GC,Eden中的存活對象就會被移動到Survivor區。這樣繼續循環下去,下一次Eden滿了的時候,問題來了,此時進行Minor GC,Eden和Survivor各有一些存活對象,若是此時把Eden區的存活對象硬放到Survivor區,很明顯這兩部分對象所佔有的內存是不連續的,也就致使了內存碎片化。設計模式
hashset實現的原理:https://wiki.jikexueyuan.com/project/java-collection/hashset.htmlapi
讀寫鎖 https://blog.csdn.net/Li_Ning_/article/details/52294343數組
https://michaelyang1988-hotmail-com.iteye.com/blog/1874671
數據庫分庫分表,垂直切分和水平切分 https://www.i3geek.com/archives/1108
java線程安全;http://www.javashuo.com/article/p-uygzhmju-a.html
KEYS pattern
查找全部符合給定模式 pattern
的 key
。
內存碎片:http://www.javashuo.com/article/p-usbpqcuo-mw.html https://blog.csdn.net/bit_x/article/details/5655278
【同一進程間的線程共享的資源有】
a. 堆 因爲堆是在進程空間中開闢出來的,因此它是理所固然地被共享的;所以new出來的都是共享的(16位平臺上分全局堆和局部堆,局部堆是獨享的)
b. 全局變量 它是與具體某一函數無關的,因此也與特定線程無關;所以也是共享的
c. 靜態變量 雖然對於局部變量來講,它在代碼中是「放」在某一函數中的,可是其存放位置和全局變量同樣,存於堆中開闢的.bss和.data段,是共享的
d. 文件等公用資源 這個是共享的,使用這些公共資源的線程必須同步。Win32 提供了幾種同步資源的方式,包括信號、臨界區、事件和互斥體。
【獨享的資源有】
a. 棧 棧是獨享的
b. 寄存器 這個可能會誤解,由於電腦的寄存器是物理的,每一個線程去取值難道不同嗎?其實線程裏存放的是副本,包括程序計數器PC
關係型與非關係型數據庫的優缺點 http://www.javashuo.com/article/p-wfaklldr-kc.html
給定一個int數組A,數組中元素互不重複,給定一個數x,求全部求和能獲得x的數字組合,組合中的元素來自A,可重複使用。
做者:菜鳥也須要offer 連接:https://www.nowcoder.com/discuss/206411
來源:牛客網 public ArrayList<ArrayList<Integer> res = new ArrayList<>(); public ArrayList<ArrayList<Integer>> sum(int[] A,int x) { Arrays.sort(A); if(A==null||A.lenght==0) return res; ArrayList<Integer> list = new ArrayList<>(); bk(A,X,0,list); return res; } public void bk(int[] A,int X,int k, ArrayList<Integer> list) { if(X=0) { res.add(list); return; } if(X<0) { return; } for(int i=k;i<A.lenght;i++) { list.add(A[i]); bk(A,X-A[i],i,list); list.remove(list.size()-1); } }
如何統計controller層全部方法的調用時間:Spring AOP 實現監控方法執行的時間(統計service中方法執行的時間)
linux查找文件命令:find
內存屏障,happen-before https://blog.csdn.net/kuangzhanshatian/article/details/81738599
wait方法底層原理:https://www.jianshu.com/p/f4454164c017
內部類能夠引用他包含類的成員嗎:一個內部類對象能夠訪問建立它的外部類對象的內容,內部類若是不是static的,那麼它能夠訪問建立它的外部類對象的全部屬性內部類若是是sattic的,即爲nested class,那麼它只能夠訪問建立它的外部類對象的全部static屬性通常普通類只有public或package的訪問修飾,而內部類能夠實現static,protected,private等訪問修飾。當從外部類繼承的時候,內部類是不會被覆蓋的,它們是徹底獨立的實體,每一個都在本身的命名空間內,若是從內部類中明確地繼承,就能夠覆蓋原來內部類的方法。
java多線程龜兔賽跑:https://blog.csdn.net/renl123470/article/details/52344422
動態代理,但是在印象中代理模式一直都是控制訪問什麼的,怎麼又動態增長行爲了,動態增長行爲不是裝飾器模式嗎?實際上,在裝飾器模式和代理模式之間仍是有不少差異的。裝飾器模式關注於在一個對象上動態的添加方法,然而代理模式關注於控制對對象的訪問。換句話 說,用代理模式,代理類(proxy class)能夠對它的客戶隱藏一個對象的具體信息。所以,當使用代理模式的時候,咱們經常在一個代理類中建立一個對象的實例。而且,當咱們使用裝飾器模 式的時候,咱們一般的作法是將原始對象做爲一個參數傳給裝飾者的構造器。