線程池
https://blog.csdn.net/zheng_chang_wei/article/details/115325994
JVM
https://blog.csdn.net/zheng_chang_wei/article/details/115321918
MySQL
https://blog.csdn.net/zheng_chang_wei/article/details/115326034
集合
Iterable---Collection---List
ArryList,LinkedList,Vector
Collections.synchronizedList(new ArrayList<>());
new CopyOnWriteArrayList();
Iterable---Collection---Set
HashSet,TreeSet,LinkedHashSet
Map
HashMap,Hashtable,TreeMap,LinkedHashMap,ConcurrentHashMap原理
Collections.synchronizedMap(new HashMap<>());
Redis
String ,Hash ,List,Set,Sorted Set
https://blog.csdn.net/zheng_chang_wei/article/details/118309794
kafka
分布式的基于釋出訂閱模式的消息隊列
解耦,可恢複,緩沖,異步通信
String intern()
如果常量池中已經存在該字元串,則直接傳回常量池中該對象的引用。否則,在常量池中加入該對象,然後傳回引用。
如何重寫hashCode()和equals()方法
https://blog.csdn.net/neosmith/article/details/17068365
動态代理
https://cloud.tencent.com/developer/article/1429932
java動态代理是利用反射機制生成一個實作代理接口的匿名類,在調用具體方法前調用InvokeHandler來處理。而cglib動态代理是利用asm開源包,對代理對象類的class檔案加載進來,通過修改其位元組碼生成子類來處理。
Jdk動态代理
代理類實作InvocationHandler,Proxy.newProxyInstance()動态生成代理對象,基于反射
CGLib動态代理
代理類實作MethodInterceptor,代理類對象是由 Enhancer 類建立的,原理是對指定的委托類生成一個子類并重寫其中業務方法來實作代理
靜态代理缺點:不同的接口要有不同的代理類實作,會很備援
JDK動态代理:優點:解決了靜态代理中備援的代理實作類問題。
缺點:JDK 動态代理是基于接口設計實作的,如果沒有接口,會抛異常。
CGLib動态代理:優點:沒有接口也能實作動态代理,而且采用位元組碼增強技術,性能也不錯。
java 鎖
https://blog.csdn.net/zheng_chang_wei/article/details/115464426
dubbo
11111
ThreadLocal
this為key,value為值,存放在本地線程的ThreadLocalMap中,ThreadLocalMap中的Entry繼承了弱引用
https://blog.csdn.net/vicoqi/article/details/79743112
排序算法
快速排序:https://blog.csdn.net/weixin_42341232/article/details/92164636
Linux常用指令
Mybatis緩存
https://blog.csdn.net/zheng_chang_wei/article/details/115325885
TCP、UDP、Http、Https
三次握手的目的是“為了防止已經失效的連接配接請求封包段突然又傳到服務端,因而産生錯誤”
https://blog.csdn.net/lengxiao1993/article/details/82771768
常見http請求方法
http和https差別
SpringCloud
Spring常用注解
https://blog.csdn.net/yaheng100/article/details/81741693
Springboot自動裝配
Spring和Springboot源碼
Springboot啟動流程https://blog.csdn.net/mnicsm/article/details/93893669
Bean的生命周期
https://www.cnblogs.com/zrtqsk/p/3735273.html
Bean的作用域
@Scope 設定Spring容器如何建立Bean執行個體(方法上,得有@Bean)
其設定類型包括:
Singleton (單例,一個Spring容器中隻有一個bean執行個體,預設模式),
Protetype (每次調用建立一個bean),
Request (web項目中,給每個http request建立一個bean),
Session (web項目中,給每個http session建立一個bean),
GlobalSession(給每一個 global http session建立一個Bean執行個體)
反射執行個體化對象
https://blog.csdn.net/zheng_chang_wei/article/details/118198615
程序和線程差別
final關鍵字?final修飾的變量 反射能改嗎?
答:反射是可以修改final變量的,當定義為基本資料類型的資料和String的時候,隻要指派的時候右邊是常量表達式,就會進行編譯器的優化,隻要不會被編譯器内聯優化的final屬性就可以通過反射進行有效的修改,那麼有那些方法可以避開jvm的編譯期優化呢?
方法1.改變指派方式,取消編譯時的自動優化,比如使用三元表達式指派
final String str= (null!=null?"":"42");
方法2.先定義後指派,使用空白final
static final int primitiveInt;
static final Integer i;
static String str;
static {//這裡改為用靜态代碼塊指派
primitiveInt = 42;
wrappedInt = 42;
stringValue = "42";
}
談談對Volatile的了解
https://blog.csdn.net/zheng_chang_wei/article/details/115467908
常用資料結構
- 數組(Array)
- 隊列(Queue)
- 連結清單(Linked List)
- 棧(Stack)
- 樹(Tree)
- 散清單(Hash)
- 堆(Heap)
- 圖(Graph)