設為首頁 - 加入收藏 福州站長網(0591zz.Com) - 為福州廣大站長們打造最新最全的網絡創業交流平臺!
熱搜: 平臺 發布 營銷 京東
當前位置: 首頁 > 建站 > 正文

為何我建議1-3年的Java程序員仔細看看這篇文章

發布時間:2019-08-22 15:15 所屬欄目:[建站] 來源:茶軸的青春
導讀:副標題#e# 此文的目的是為了督促自己去不斷學習,讓自己有更明確的方向去提升自己。以技能樹為基礎,以面試要點為大綱,我覺得比抓住什么看什么要更有目的,更能堅持下去。世界瞬息萬變,我們要時刻準備著、時刻提高著自己,才能使自己更具有競爭力。 一、J

此文的目的是為了督促自己去不斷學習,讓自己有更明確的方向去提升自己。以技能樹為基礎,以面試要點為大綱,我覺得比抓住什么看什么要更有目的,更能堅持下去。世界瞬息萬變,我們要時刻準備著、時刻提高著自己,才能使自己更具有競爭力。

為何我建議1-3年的Java程序員仔細看看這篇文章

一、Java技能樹

1、基本語法

這包括static、final、transient等關鍵字的作用,foreach循環的原理等等。比如面試的時候面試官問你static關鍵字有哪些作用,如果你答出static修飾變量、修飾方法面試官會認為你合格,答出靜態塊,會認為你不錯,答出靜態內部類會認為你很好,答出靜態導包會對你很滿意,因為能看出你非常熱衷研究技術。

2、集合

集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的實現原理,當然能掌握CopyOnWrite容器和Queue是再好不過的了。

還需要了解ConcurrentHashMap的鎖分段技術,ConcurrentHashMap的讀是否要加鎖,為什么,ConcurrentHashMap的迭代器是強一致性的迭代器還是弱一致性的迭代器

3、設計模式

知道常用設計模式的優缺點。

能畫出常用設計模式的UML圖。

為何我建議1-3年的Java程序員仔細看看這篇文章

4、多線程

Thread和Runnable的區別和聯系、多次start一個線程會怎么樣、線程有哪些狀態。

假如有Thread1、Thread2、ThreaD3、Thread4四條線程分別統計C、D、E、F四個盤的大小,所有線程都統計完畢交給Thread5線程去做匯總,應當如何實現?

常用的線程池有幾種?這幾種線程池之間有什么區別和聯系?線程池的實現原理是怎么樣的?

synchronized和ReentrantLock的區別、synchronized鎖普通方法和鎖靜態方法、死鎖的原理及排查方法等等。

為何我建議1-3年的Java程序員仔細看看這篇文章

5、JDK源碼

要想拿高工資,JDK源碼不可不讀,總結一下比較重要的源碼:

List、Map、Set實現類的源代碼;

ReentrantLock、AQS的源代碼;

AtomicInteger的實現原理,主要能說清楚CAS機制并且AtomicInteger是如何利用CAS機制實現的;

線程池的實現原理;

Object類中的方法以及每個方法的作用。

6、數據庫

union和union all的區別、left join、幾種索引及其區別,數據庫性能的優化。

7、數據結構和算法分析

數組、鏈表是基礎,棧和隊列深入一些但也不難,樹挺重要的,比較重要的樹AVL樹、紅黑樹,可以不了解它們的具體實現,但是要知道什么是二叉查找樹、什么是平衡樹,AVL樹和紅黑樹的區別。

為何我建議1-3年的Java程序員仔細看看這篇文章

8、Java虛擬機

  • Java虛擬機的內存布局
  • GC算法及幾種垃圾收集器、
  • 類加載機制,也就是雙親委派模型
  • Java內存模型
  • happens-before規則
  • volatile關鍵字使用規則

9、Web方面的一些問題

  • 分布式Session的幾種實現方式
  • Session和Cookie的區別和聯系以及Session的實現原理。
  • get/post的區別、forward/重定向的區別、HTTPS的實現原理
  • 一致性Hash算法
二、Java面試題

1 Java 基礎

1.1 Java 基礎語法

  • 面向對象的特征
  • java 中四種修飾符的限制范圍
  • 重載和重寫的區別
  • 抽象類和接口有什么區別
  • Java 基本數據類型
  • int 和 Integer 有什么區別
  • 說說&和&&的區別
  • final, finally, finalize 的區別
  • Object 類中的方法
  • equals 與 == 的區別

1.2 Java 常用集合

  • List 和 Set 區別
  • List 和 Map 區別
  • Arraylist 與 LinkedList 區別
  • ArrayList 與 Vector 區別
  • ArrayList在循環過程中刪除,會不會出問題
  • HashMap 和 Hashtable 的區別
  • HashSet 和 HashMap 區別
  • HashMap 的源碼,實現原理
  • HaspMap 擴容是怎樣的,為什么都是2的N次冪的大小
  • HashMap,HashTable,ConcurrentHashMap 的區別

1.3 Java IO 和 NIO

  • 什么是比特(Bit),什么是字節(Byte),什么是字符(Char),它們長度是多少,各有什么區別
  • java 中有幾種類型的流
  • 字符流和字節流有什么區別
  • 什么是 java 序列化,如何實現 java 序列化?
  • IO 和 NIO 區別
  • ByteBuffer 與 StringBuffer 有什么區別
  • 內存映射緩存區是什么
  • 直接緩沖區與非直接緩沖器有什么區別
  • 原生的 NIO 在 JDK 1.7 版本存在 epoll bug

2 多線程

2.1 線程的基本概念

  • 線程和進程的區別
  • 創建線程的方式有哪幾種
  • Callable 和 Future 的了解
  • 線程的生命周期
  • ThreadLocal 原理分析
  • sleep 和 wait 的區別
  • notify 和 notifyAll 的區別
  • sleep() 、join()、yield()有什么區別

2.2 線程池

  • 為什么使用線程池
  • 線程池的幾種實現方式
  • 線程池的實現原理
  • 線程池的停止方法

2.3 鎖

  • synchronized 關鍵字的用法,優缺點
  • synchronized 與 lock 的區別
  • volitile 關鍵字的作用,原理
  • CAS 概念及理解
  • 悲觀鎖和樂觀鎖
  • 可重入鎖的用處及實現原理

3 數據庫

  • 數據庫鎖、行鎖
  • 事物的性質
  • MySQL 索引使用的注意事項
  • 數據庫索引的原理
  • MySQL 數據庫的常用存儲引擎

4 算法

  • 排序算法
  • B+樹
  • 紅黑樹

(編輯:安卓應用網_福州站長網 0591Zz.Com)

網友評論
推薦文章
大乐透中大奖绝招