天天看點

我的學習筆記如何重寫hashCode()和equals()方法SpringCloudSpring常用注解Springboot自動裝配Bean的生命周期Bean的作用域反射執行個體化對象程序和線程差別final關鍵字?final修飾的變量 反射能改嗎? 談談對Volatile的了解常用資料結構

線程池

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

我的學習筆記如何重寫hashCode()和equals()方法SpringCloudSpring常用注解Springboot自動裝配Bean的生命周期Bean的作用域反射執行個體化對象程式和線程差別final關鍵字?final修飾的變量 反射能改嗎? 談談對Volatile的了解常用資料結構

 三次握手的目的是“為了防止已經失效的連接配接請求封包段突然又傳到服務端,因而産生錯誤”

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)

繼續閱讀