黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 2020年經典java初級面試題總結

2020年經典java初級面試題總結

更新時間:2020-04-15 15:05:25 來源:動力節點 瀏覽3363次

  一、關于volatile關鍵字

  1、可以創建Volatile數組嗎?

  Java 中可以創建 volatile類型數組,不過只是一個指向數組的引用,而不是整個數組。如果改變引用指向的數組,將會受到volatile 的保護,但是如果多個線程同時改變數組的元素,volatile標示符就不能起到之前的保護作用了。

  2、volatile能使得一個非原子操作變成原子操作嗎?

  一個典型的例子是在類中有一個 long 類型的成員變量。如果你知道該成員變量會被多個線程訪問,如計數器、價格等,你最好是將其設置為 volatile。為什么?因為 Java 中讀取 long 類型變量不是原子的,需要分成兩步,如果一個線程正在修改該 long 變量的值,另一個線程可能只能看到該值的一半(前 32 位)。但是對一個 volatile 型的 long 或 double 變量的讀寫是原子。

  一種實踐是用 volatile 修飾 long 和 double 變量,使其能按原子類型來讀寫。double 和 long 都是64位寬,因此對這兩種類型的讀是分為兩部分的,第一次讀取第一個 32 位,然后再讀剩下的 32 位,這個過程不是原子的,但 Java 中 volatile 型的 long 或 double 變量的讀寫是原子的。volatile 修復符的另一個作用是提供內存屏障(memory barrier),例如在分布式框架中的應用。簡單的說,就是當你寫一個 volatile 變量之前,Java 內存模型會插入一個寫屏障(write barrier),讀一個 volatile 變量之前,會插入一個讀屏障(read barrier)。意思就是說,在你寫一個 volatile 域時,能保證任何線程都能看到你寫的值,同時,在寫之前,也能保證任何數值的更新對所有線程是可見的,因為內存屏障會將其他所有寫的值更新到緩存。

  3、volatile類型變量提供什么保證?

  volatile 主要有兩方面的作用:1.避免指令重排2.可見性保證.例如,JVM 或者 JIT為了獲得更好的性能會對語句重排序,但是 volatile 類型變量即使在沒有同步塊的情況下賦值也不會與其他語句重排序。volatile 提供 happens-before 的保證,確保一個線程的修改能對其他線程是可見的。某些情況下,volatile 還能提供原子性,如讀 64 位數據類型,像 long 和 double 都不是原子的(低32位和高32位),但 volatile 類型的 double 和 long 就是原子的。

  二、關于集合

  1、Java中的集合及其繼承關系

  關于集合的體系是每個人都應該爛熟于心的,尤其是對我們經常使用的List,Map的原理更該如此.

  2、poll()方法和remove()方法區別?

  poll() 和 remove() 都是從隊列中取出一個元素,但是 poll() 在獲取元素失敗的時候會返回空,但是 remove() 失敗的時候會拋出異常。

  3、LinkedHashMap和PriorityQueue的區別

  PriorityQueue 是一個優先級隊列,保證最高或者最低優先級的的元素總是在隊列頭部,但是 LinkedHashMap 維持的順序是元素插入的順序。當遍歷一個 PriorityQueue 時,沒有任何順序保證,但是 LinkedHashMap 課保證遍歷順序是元素插入的順序。

  4、WeakHashMap與HashMap的區別是什么?

  WeakHashMap 的工作與正常的 HashMap 類似,但是使用弱引用作為 key,意思就是當 key 對象沒有任何引用時,key/value 將會被回收。

  5、ArrayList和LinkedList的區別?

  最明顯的區別是 ArrrayList底層的數據結構是數組,支持隨機訪問,而 LinkedList 的底層數據結構是雙向循環鏈表,不支持隨機訪問。使用下標訪問一個元素,ArrayList 的時間復雜度是 O(1),而 LinkedList 是 O(n)。

  6、ArrayList和Array有什么區別?

  Array可以容納基本類型和對象,而ArrayList只能容納對象。

  Array是指定大小的,而ArrayList大小是固定的

  7、ArrayList和HashMap默認大小?

  在 Java 7 中,ArrayList 的默認大小是 10 個元素,HashMap 的默認大小是16個元素(必須是2的冪)。這就是 Java 7 中 ArrayList 和 HashMap 類的代碼片段。

  private static final int DEFAULT_CAPACITY = 10; //from HashMap.java

  JDK 7 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;

  // aka 16

  8、Comparator和Comparable的區別?

  Comparable 接口用于定義對象的自然順序,而 comparator 通常用于定義用戶定制的順序。Comparable 總是只有一個,但是可以有多個 comparator 來定義對象的順序。

  9、如何實現集合排序?

  你可以使用有序集合,如 TreeSet 或 TreeMap,你也可以使用有順序的的集合,如 list,然后通過 Collections.sort() 來排序。

  如何打印數組內容

  你可以使用 Arrays.toString() 和 Arrays.deepToString() 方法來打印數組。由于數組沒有實現 toString() 方法,所以如果將數組傳遞給 System.out.println() 方法,將無法打印出數組的內容,但是 Arrays.toString() 可以打印每個元素。

  10、LinkedList的是單向鏈表還是雙向?

  雙向循環列表,具體實現自行查閱源碼。

2020年經典java初級面試題總結

    以上就是動力節點java培訓機構的小編針對“2020年經典java初級面試題總結”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 高h喷水荡肉爽文各种场合 高h喷水荡肉爽文np欲 | 亚洲国产黄色 | 亚洲欧美精品一区 | 国产一区二区三区免费观看 | 中国黄色一级视频 | 波多野结衣在线观看一区 | 在线中文字幕一区 | 一个人看的www在线视频播放 | 日韩一区二区视频在线观看 | 久久亚洲国产视频 | 成人免费视频一区二区 | 天天插视频 | 国产成人精品cao在线 | 青青青国产依人在线视频97 | 欧美日韩专区国产精品 | 欧美在线国产 | 亚洲va在线va天堂va手机 | 麻豆日韩国产精品欧美在线 | 狠狠色综合色综合网站嗯 | 最新日韩精品 | 波多野结衣在线视频免费观看 | 涩涩免费网站 | 狠狠色狠狠色综合系列 | 亚洲国产精品久久久久网站 | 福利视频欧美 | 91精品一区二区三区久久久久 | 激情99| 乱仑小说日本aⅴ | 国产成人精品永久免费视频 | 日本高清在线一区 | 免费在线欧美 | 日韩欧美日本 | 香港三级日本三级人妇网站 | 日韩经典欧美精品一区 | 日韩国产另类 | 国产在线日韩在线 | 国产高清精品入口麻豆 | 自偷自偷自亚洲首页精品 | 免费视频你懂得 | 99视频精品全部免费免费观 | 午夜日韩在线 |