最近學習有些浮躁,要沉下心來
1.總是提到CAS,那麼它是怎麼用的呢?
原子操作類的底層就使用了CAS,所謂原子操作類,指的是java.util.concurrent.atomic包下,一系列以Atomic開頭的包裝類。例如AtomicBoolean,AtomicInteger,AtomicLong。它們分別用於Boolean,Integer,Long類型的原子性操作。
2.什麼是spring的依賴注入?
所謂依賴注入,就是IOC容器在運行期間,動態的將這種依賴關係注入到對象之中。平常的java開發中,程序員在某個類中需要依賴其它類的方法,則通常是new一個依賴類再調用類實例的方法,這種開發存在的問題是new的類實例不好統一管理,spring提出了依賴注入的思想,即依賴類不由程序員實例化,而是通過spring容器幫我們new指定實例並且將實例注入到需要該對象的類中。
依賴注入的三種方法參考:
簡單來說:
(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