java面經查缺補漏之三十五天(最近學習有些浮躁,要沉下心來)

最近學習有些浮躁,要沉下心來

1.總是提到CAS,那麼它是怎麼用的呢?

原子操作類的底層就使用了CAS,所謂原子操作類,指的是java.util.concurrent.atomic包下,一系列以Atomic開頭的包裝類。例如AtomicBooleanAtomicIntegerAtomicLong。它們分別用於Boolean,Integer,Long類型的原子性操作。

2.什麼是spring的依賴注入?

所謂依賴注入,就是IOC容器在運行期間,動態的將這種依賴關係注入到對象之中。平常的java開發中,程序員在某個類中需要依賴其它類的方法,則通常是new一個依賴類再調用類實例的方法,這種開發存在的問題是new的類實例不好統一管理,spring提出了依賴注入的思想,即依賴類不由程序員實例化,而是通過spring容器幫我們new指定實例並且將實例注入到需要該對象的類中。

依賴注入的三種方法參考:

https://blog.csdn.net/a909301740/article/details/78379720?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3

簡單來說:

(1)構造方法注入

通過在spring配置文件中的bean標籤中的constructor-arg標籤進行注入,然後在相應bean的有參構造方法中傳入相應的對象。

(2)setter注入

通過在spring配置文件中的bean標籤中的property標籤進行注入,然後再相應的bean中加入 setUserDao方法。

還有一點需要注意:如果通過set方法注入屬性,那麼spring會通過默認的空參構造方法來實例化對象,所以如果在類中寫了一個帶有參數的構造方法,一定要把空參數的構造方法寫上,否則spring沒有辦法實例化對象,導致報錯。

(3)註解方式注入

byName:被注入bean的id名必須與set方法後半截匹配,並且id名稱的第一個單詞首字母必須小寫,這一點與手動set注入有點不同。

byType:查找所有的set方法,將符合符合參數類型的bean注入。

@Resource:java的註解,默認以byName的方式去匹配與屬性名相同的bean的id

@Autowired:spring註解,默認是以byType的方式去匹配類型相同的bean

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章