Java習題練習

來源:互聯網
上載者:User

標籤:復原事務   9.png   檔案   style   參數   class   strong   枚舉   java對象   

Java習題練習

1、

依賴注入和控制反轉是同一概念:

        依賴注入和控制反轉是對同一件事情的不同描述,從某個方面講,就是它們描述的角度不同。依賴注入是從應用程式的角度在描述,可以把依賴注入描述完整點:應用程式依賴容器建立並注入它所需要的外部資源;而控制反轉是從容器的角度在描述,描述完整點:容器控制應用程式,由容器反向的嚮應用程式注入應用程式所需要的外部資源。

 

2、

C
    load方法來得到一個對象時,此時hibernate會使用消極式載入的機制來載入這個對象,即:當 我們使用session.load()方法來載入一個對象時,此時並不會發出sql語句,當前得到的這個對象其實是一個代理對象,這個代理對象只儲存了實 體對象的id值,只有當我們要使用這個對象,得到其它屬性時,這個時候才會發出sql語句,從資料庫中去查詢我們的對象。
    相對於load的消極式載入方式,get就直接的多,當我們使用session.get()方法來得到一個對象時,不管我們使不使用這個對象,此時都會發出sql語句去從資料庫中查詢出來。

 

1. Hibernate2消極式載入實現:a)實體物件 b)集合(Collection) 
2. Hibernate3 提供了屬性的消極式載入功能 
當Hibernate在查詢資料的時候,資料並沒有存在與記憶體中,當程式真正對資料的操作時,對象才存在與記憶體中,就實現了消極式載入,他節省了伺服器的記憶體開銷,從而提高了伺服器的效能。

an>是一個基於JDBC的主流持久化架構,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作 
3. hibernate使用Java反射機制,而不是位元組碼增強程式來實現透明性。 
4. hibernate的效能非常好,因為它是個輕量級架構。映射的靈活性很出色。它支援各種關聯式資料庫,從一對一到多對多的各種複雜關係。

 

 

3、

建議看看這篇部落格 入門 通俗易懂 http://blog.csdn.net/sivyer123/article/details/17139443簡單的來說 java的堆記憶體分為兩塊:permantspace(持久帶) 和 heap space。持久帶中主要存放用於存放靜態類型資料,如 Java Class, Method 等, 與垃圾收集器要收集的Java對象關係不大。而heapspace分為年輕帶和年老帶 年輕代的記憶體回收叫 Young GC, 年老代的記憶體回收叫 Full GC。在年輕代中經曆了N次(可配置)記憶體回收後仍然存活的對象,就會被複製到年老代中。因此,可以認為年老代中存放的都是一些生命週期較長的對象年老代溢出原因有  迴圈上萬次的字串處理、建立上千萬個對象、在一段代碼內申請上百M甚至上G的記憶體,既A B D選項持久代溢出原因  動態載入了大量Java類而導致溢出  4、以上方法都是解決雜湊填衝突的策略,但是在java.util.HashMap中,總體來說是使用的鏈地址法來解決衝突的。當然了,使用鏈地址法會導致get的效率從o(1)降至o(n),所以在Java8中,使用的是平衡樹來解決提高效率的。參考:http://blog.csdn.net/cpcpcp123/article/details/52744331 解決雜湊衝突常用的兩種方法是:開放定址法和鏈地址法 
  開放定址法:當衝突發生時,使用某種探查(亦稱探測)技術在散列表中形成一個探查(測)序列。沿此序列逐個單元地尋找,直到找到給定 的關鍵字,或者碰到一個開放的地址(即該地址單元為空白)為止(若要插入,在探查到開放的地址,則可將待插入的新結點存人該地址單元)。尋找時探查到開放的 地址則表明表中無待查的關鍵字,即尋找失敗。    鏈地址法:將所有關鍵字為同義字的結點連結在同一個單鏈表中。若選定的散列表長度為m,則可將散列表定義為一個由m個頭指標組成的指標數 組T[0..m-1]。凡是散列地址為i的結點,均插入到以T[i]為頭指標的單鏈表中。T中各分量的初值均應為空白指標。  5、答案:B聲明為public類型的類名必須與檔案名稱相同,預設許可權的可以不同並且內部類的類名一般與檔案名稱不同 正解:一個檔案中可以有多個類,如果沒有public類,則可以與任意類名相同,如果有public類則檔案名稱必須與此類名相同,因為一個檔案中只能有一個public類。如果檔案中只有一個類,則檔案名稱必須與類名相同   6、

 

 

ceil:大於等於 x,並且與它最接近的整數。floor:小於等於 x,且與 x 最接近的整數。

 

 

7、

 

 對象賦值時,比如A=B,只是把A對象的地址指向了B對象的地址,所以其實對象只有一個  8、 答案A:A:形式參數可被視為local variable。形參和局部變數一樣都不能離開方法。都只有在方法內才會發生作用,也只有在方法中使用,不會在方法外可見。B: 對於形式參數只能用final修飾符,其它任何修飾符都會引起編譯器錯誤。但是用這個修飾符也有一定的限制,就是在方法中不能對參數做任何修改。 不過一般情況下,一個方法的形參不用final修飾。只有在特殊情況下,那就是:方法內部類。  一個方法內的內部類如果使用了這個方法的參數或者局部變數的話,這個參數或局部變數應該是final。 C:形參的值在調用時根據調用者更改,實參則用自身的值更改形參的值(指標、引用皆在此列),也就是說真正被傳遞的是實參。D:方法的參數列表指定要傳遞給方法什麼樣的資訊,採用的都是對象的形式。因此,在參數列表中必須指定每個所傳遞對象的類型及名字。想JAVA中任何傳遞對象的場合一樣,這裡傳遞的實際上也是引用,並且引用的類型必須正確。--《Thinking in JAVA》
A
形式參數就是函數定義時設定的參數。例如函數頭 int min(int x,int y,int z) 中 x,y,z 就是形參。實際參數是調用函數時所使用的實際的參數。
C:真正被傳遞的是實參D:形參可以是對象,是對象的時候傳遞引用. B:對於形式參數只能用final修飾符,其它任何修飾符都會引起編譯器錯誤 。但是用這個修飾符也有一定的限制,就是在方法中不能對參數做任何修改。 不過一般情況下,一個方法的形參不用final修飾。只有在特殊情況下,那就是:方法內部類。   

一個方法內的內部類如果使用了這個方法的參數或者局部變數的話,這個參數或局部變數應該是final。

 

9、

答案:B A,CopyOnWriteArrayList適用於寫少讀多的並發情境B,ReadWriteLock即為讀寫鎖,他要求寫與寫之間互斥,讀與寫之間互斥,   讀與讀之間可以並發執行。在讀多寫少的情況下可以提高效率C,ConcurrentHashMap是同步的HashMap,讀寫都加鎖D,volatile只保證多線程操作的可見度,不保證原子性

 

 

10、

 

 這裡已經注入了工廠

 <!-- 配置交易管理員 -->       <property name="transactionManager"><!-- 配置事務屬性 -->       <property name="transactionAttributes">        <props>  聲明式事務 管理建立在AOP之上的。其本質是對方法前後進行攔截,然後在目標方法開始之前建立或者加入一個事務,在執行完目標方法之後根據執行情況提交或者復原事務。聲明式事務最大的優點就是不需要通過編程的方式管理事務,這樣就不需要在商務邏輯代碼中摻雜交易管理的代碼,只需在設定檔中做相關的事務規則聲明(或通過基於@Transactional註解的方式),便可以將事務規則應用到商務邏輯中。

 

11、

 

Dswitch語句後的控製表達式只能是short、char、int、long整數類型和枚舉類型,不能是float,double和boolean類型。 String類型是java7開始支援。 

Java習題練習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.