大學期間接觸 Java 的時間也不短了,不論學習仍是實習,都讓我發覺基礎的重要性。互聯網發展太快了,各類框架各類技術更新迭代的速度很是快,可能你恰好掌握了一門技術的應用,它卻已經走在淘汰的邊緣了。java
而學習新技術總要付出必定的時間成本,那麼怎麼下降時間成本呢?那就是打好基礎,技術再怎麼革新,底層的東西也不多會變更,牢固的基礎會幫助你在各類新技術的學習中游刃有餘,快速上手。web
由於我選擇的方向是後臺開發,因此談談我認爲的基礎有哪些。其餘方向確定也有本身的體系,從低層到高層,能夠本身摸索。後臺的話,我以爲網絡知識,各類協議,web 知識,數據庫知識,Linux 基本操做以及本身選擇的後臺語言知識,這些是最基礎最須要牢固掌握的。算法
因此從今天起,會出一系列與後臺基礎相關的博文,一是對本身過去學習的一個總結,二是分享出來,但願能夠幫助到須要的人。數據庫
Java 基礎我作了 10 個方面的總結,包括基本概念,面向對象,關鍵字,基本類型與運算,字符串與數組,異常處理,Java 平臺與內存管理,分佈式 Java 應用,多線程,IO。如下對這些內容作一些簡單的總結,同時我也有完整的思惟導圖,博客上不方便展現,如有須要,聯繫我。設計模式
安全性數組
健壯性緩存
功能安全
獲取類的方式服務器
層次邏輯關係不一樣。網絡
數據處理方式不一樣與控制程序方式不一樣
方法重載
方法覆蓋
同
異
靜態內部類
成員內部類
局部內部類
匿名內部類
原則
int長度
float長度
boolean 類型變量的取值
優勢
隱式類型轉換
顯式類型轉換
類型自動轉換
運算符優先級
點 () [] +(正) -(負) ++ -- ~ ! * / %
+(加) -(減) << >> >>> < <= > >= instanceof == != & | ^ && || ?: = += -= *= /= %= &= |= ^= ~= <<= >>= >>>=
嚴重錯誤,不可恢復
檢查性異常
運行時異常
執行class
編譯執行
語義分析器組件:註解語法樹
連接
校驗
初始化(不是類加載必須觸發的)
觸發時機
JVM啓動過程當中指定的初始化類
解釋執行
JVM字節碼爲中間代碼,由JVM在運行期對其解釋並執行
基於棧
編譯執行
client compiler
server compiler
棧上分配
堆
分代管理
收集器
引用計數收集器
跟蹤收集器
三種實現算法
複製
Sun JDK中可用GC
新生代
串行GC(Serial GC):複製算法
舊生代和持久代可用GC
併發:CMS
Full GC
觸發的四種狀況
符合垃圾回收標準
泄露的兩種狀況
泄露緣由
TCP/IP+BIO
TCP/IP+NIO
Channel
UDP/IP+BIO
UDP/IP+NIO
遠程調用方式
基於Java自身技術
WebService
JVM保證如下操做順序
爲避免資源操做的髒數據問題,JVM提供了
基於Object的wait/notify/notifyAll
基於JDK 5 併發包,支持線程交互
sleep
wait
字符流
UID最好本身定義。優勢