牛客錯題2020年9月30日

牛客錯題2020年9月30日

  1. 下面有個hibernate延遲加載,說法錯誤的是?

    正確答案: C 你的答案: D (錯誤)

    Hibernate2延遲加載實現:a)實體對象 b)集合(Collection)
    Hibernate3 提供了屬性的延遲加載功能
    get支持延遲加載,load不支持延遲加
    hibernate使用Java反射機制,而不是字節碼增強程序來實現透明性
    解釋:
    Hibernate 中 get()和load() 的區別:
    1.get()採用立即加載方式,而load()採用 延遲加載 ; get()方法執行的時候,會立即向數據庫發出查詢語句, 而load()方法返回的是一個***(此***中只有一個id屬性),只有等真正使用該對象屬性的時候,纔會發出 sql語句 2.如果數據庫中沒有對應的記錄,get()方法返回的是null.而load()方法出現異常ObjectNotFoundException
    
  2. typeof Date.now() 的值是:

    正確答案: C 你的答案: B (錯誤)

    "date"
    "object"
    "number"
    "error"
    解釋:
    Date.now() 方法返回自1970年1月1日 00:00:00 UTC到當前時間的毫秒數。
    
  3. 以下哪項可能包含菜單條( )

    正確答案: B 你的答案: C (錯誤)

    Panel
    Frame
    Applet
    Dialog
    解釋:
    Frame是Window的直接子類,一個Frame對象就是一個有標題有邊界的頂層窗口;
    Panel是Container的直接子類,一個Panel對象用來添加組件和其他Panel對象的容器。
    
  4. URL u =new URL("http://www.123.com");。如果www.123.com不存在,則返回______。

    正確答案: A 你的答案: D (錯誤)

    http://www.123.com
    ””
    null
    拋出異常
    解釋:
    我們在執行URL u =new URL("http://www.123.com");這句話的時候確實要拋出異常,但是這個異常屬於IOException,不管網址是否存在,最後都會返回該網址的一個連接,打印出來就是該網址。
    
  5. 以下哪種JAVA的變量表達式使得變量a和變量b具有相同的內存引用地址( )

    正確答案: A B 你的答案: B D (錯誤)

    String a = "hello"; String b = "hello";
    Integer a; Integer b = a;
    int a = 1; Integer b = new Integer(1);
    int a = 1; Integer b = 1;
    解釋:
    首先結論:
    (1)int與Integer、new Integer()進行==比較時,結果永遠爲true
    (2)Integer與new Integer()進行==比較時,結果永遠爲false
    (3)Integer與Integer進行==比較時,看範圍;在大於等於-128小於等於127的範圍內爲true,在此範圍外爲false。
    下面是解析過程:
    1.Integer與int比較時,Integer會有拆箱的過程,我們可以看看拆箱的代碼:
    直接返回的就是value,因此int與Integer以及new Integer()進行  ==比較時結果都是true。
    2.Integer a=n時,如果n大於等於-128小於等於127時,會直接從IntegerCache中取,不在這個範圍內,會new一個對象,所以Integer與new Integer進行 ==比較時,結果都是false。
    3.Integer與Integer比較,需要看範圍,如果在-128~127(包含-128,不包含127)範圍內,因爲都是從IntegerCache中取值,所以相等;若不在這個範圍內,則都要去new一個對象,所以結果爲false。
    關於D選項,我想單獨回答一下:
    D選項我認爲是錯誤的,a==b結果雖然結果是true,但是要注意的是,這是一個int與Integer的比較,Integer會進行拆箱,拆箱的結果是int型的,這就相當於兩個int型之間的比較,而基本數據類型之間的比較,比較的是數值,所以結果是true,但並不表示兩者的內存地址相等。個人看法,如有錯誤,歡迎指出。
    
  6. 在大數據量場景下,以下哪種js中字符串連接方式較爲高效( )

    正確答案: C 你的答案: B C D (錯誤)

    a+=b
    a = a+b
    Array.join()
    Array.push()
    解釋:
    +的處理機制是:新建一個臨時字符串,將新字符串賦值爲a+b,然後返回這個臨新字符串並同時銷燬原始字符串,所以字符串連接效率較低。所以用Array.join()不會新建臨時字符串效率更高。
    (當然以上效率問題僅存在於低版本瀏覽器ie7-及以下,現在的新瀏覽器基本上都解決了這個問題,效率差不多)
    所以在面試時遇到這種題時告訴面試官分兩種情況:
    舊瀏覽器(ie7-)下用join()會高效,而新版本瀏覽器下除了做變量緩存外不需要做別的優化。這樣可以側面表達對劉拉你兼容有所瞭解。
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章