聊一聊

輸出結果是???(歡迎你們各抒己見,說出本身的看法)spring

public class Test{   
    public static void main(String[] args) {       
        int a[] = {2,3,45,6};
        System.out.println(Arrays.asList(a).contains(2));
   }
}

1, Hibernate中get和load方法的區別數據庫

hibernate對於load方法認爲該數據在數據庫中必定存在,能夠放心的使用代理來延遲加載,若是在使用過程當中發現了問題,只能拋異常;

    hibernate對於get方法,hibernate必定要獲取到真實的數據,不然返回null。

具體介紹:編程

1. 對於get方法,hibernate會確認一下該id對應的數據是否存在,首先在session緩存中查找,而後在二級緩存中查找,尚未就查詢數據庫,數據庫中沒有就返回null。

    2.  load方法加載實體對象的時候,根據映射文件上類級別的lazy屬性的配置(默認爲true)。

分狀況討論:緩存

(1)若爲true,則首先在Session緩存中查找,看看該id對應的對象是否存在,不存在則使用延遲加載,返回實體的代理類對象(該代理類爲實體類的子類,由CGLIB動態生成)。等到具體使用該對象(除獲取OID之外)的時候,再查詢二級緩存和數據庫,若仍沒發現符合條件的記錄,則會拋出一個ObjectNotFoundException。

    (2)若爲false,就跟get方法查找順序同樣,只是最終若沒發現符合條件的記錄,則會拋出一個ObjectNotFoundException。

2, 列舉一下你知道的實現spring事務的幾種方式markdown

(1),編程式事務管理:須要手動編寫代碼,在實際開發中不多使用,

    (2),基於TransactionProxyFactoryBean的聲明式事務管理,須要爲每一個進行事務管理的類作相應配置

    (3),基於AspectJ的XML的聲明式事務管理,不須要改動類,在XML文件中配置好便可

    (4),基於註解的聲明式事務管理,配置簡單,須要在業務層類中添加註解

3,Java中equals和contains的區別session

equals是判斷字符串的是否是相等。

    例如:"abc".equals("abc"),返回結果是Boolean類型的true;

               "abc".equals("ab")返回結果是Boolean類型的false。

    contains是包含的意思。

    例如:"abc".contains("a"),返回結果是Boolean類型的true;

              "abc".contains("d"),返回結果是Boolean類型的false。
相關文章
相關標籤/搜索