天天看點

京東一面

面試過後自己的不足

給的建議:理論聯系實踐,今後從事Java會接觸到微服務,并且面試時也會是加分項。

1.InnoDB的可重複讀底層實作

答:使用MVCC(多版本并發控制)。

InnoDB為每行記錄添加一個版本号(系統版本号),每當修改資料時版本号加一。

讀取事務開始時,系統會給事務一個目前版本号,事務會讀取版本号<=目前版本号的資料,這時另一個事務插入一條資料,并立馬送出,新插入這條資料的版本号會比讀取事務的版本号高,是以,讀取事務讀的資料還是不會變。

2.ThreadLocal作用及使用場景 詳細連結

答:

  1. 介紹
  • 同一個ThreadLocal所包含對象在不同Thread中有不同的副本,其它Thread不可通路,是以不存在多線程間共享問題。
  • ThreadLocal可以使用其它方法達到效果,不過這樣實作更簡潔。
  • 每一個Thread存在每個線程專屬的ThreadLocalMap,維護着ThreadLocal對象與具體執行個體的映射,
  • ThreadLocalMap 的 Entry 對 ThreadLocal 的引用為弱引用,避免了 ThreadLocal 對象無法被回收的問題
  • ThreadLocalMap 的 set 方法中,通過 replaceStaleEntry 方法将所有鍵為 null 的 Entry 的值設定為 null,進而使得該值可被回收。
  1. 使用場景:
  • 每個線程需要自己獨立的執行個體
  • 執行個體需要在多個方法中共享,但不希望在多個線程中共享。

3.Mysql函數 連結1 連結2

  • join 是兩張表做交連後裡面條件相同的部分記錄産生一個記錄集,
  • union是産生的兩個記錄集并在一起,成為一個新的記錄集 。

4.ConcurrentHashMap 詳細介紹

5.JUC 中的 Atomic 原子類 詳細介紹

JUC下底層原理是CAS操作

6.Volatile和Transient

  • Transient代表不會序列化。
  • Volatile有可見性不具有原子性。(如果具有原子性就不需要juc下的atomic包了)

7.Spring的單例 / 多例模式 詳細介紹

類有一個普通屬性和一個靜态屬性

  • 多例,多個線程共享靜态屬性,普通屬性是獨立的。
  • 單例,多個線程共享靜态屬性和普通屬性。

8.微服務Spring Cloud 詳細介紹

繼續閱讀