1. 程式人生 > >Java程式設計零基礎快速入門教程索引

Java程式設計零基礎快速入門教程索引

Java入門到精通

java零起點程式設計教程.精心挑選了java中含金量高的知識點.Window安裝JDK圖文教程.windows搭建java開發環境,配置java環境變數圖文教程.java程式HelloWord起源,入口方法main方法介紹.java與javac命令介紹程式碼註釋也叫做註解,分為單行註釋和多行註釋.註釋只需要人來讀懂而計算機不執行.java變數分為基礎型別變數和引用型別變數,數字型別變數,布林(boolean)變數,字串型別變數及變數作用域java常用文字編輯工具及Java整合開發環境Intelij IDEA的安裝步驟.Intelij IDEA配置主題,匯入java專案.java算術運算子,複合運算子,關係運算符,條件運算子,邏輯運算子,自增/減運算子,運算子優先順序java方法的定義.方法修飾符,靜態方法static,方法返回值型別,方法命名規則,方法引數,return關鍵字.java分支語句if-else,跳轉語句switch,迴圈語句for,while,do-while.continue,break關鍵字.死迴圈的介紹.java物件概念,class,this, package,import關鍵字.java名稱空間介紹.java陣列是同一種類型資料,固定長度的集合.陣列初始化,陣列預設值.for迴圈及增強for迴圈遍歷陣列.java語言中static變數修飾的成員變數和成員方法稱為靜態變數和靜態方法.靜態變數與例項變數區別,靜態變數應用場景.final關鍵字.java面向物件程式設計的三大特點:封裝,繼承和多型.方法引數的值傳遞與引用傳遞.抽象方法與抽象類,介面.物件例項型別判斷.this,super關鍵字.值傳遞與引用傳遞.java包裝類也翻譯為外覆類或資料型別類.包裝類對應表,包裝類用法,自動裝包/拆包.java常用集合類介面:Collection,List,Set,Queue,Map介紹.HashMap,HashSet,LinkList,ArrayList,Vector等集合類的遍歷.Java異常機制及java異常框架介紹.丟擲/捕獲異常,自定義異常.throw,try,catch,finally關鍵字.2進位制與16進位制,移位運算子,位運算是通過二進位制計算的方式來改變資料.位運算子可以分為邏輯運算子(包括~,&,|和^)及移位運算子(包括>>,<<和>>>).位運算子的優先順序.java轉義字元介紹.Unicode轉義字元,轉義字元表java執行緒介紹,啟動執行緒,執行緒的狀態,執行緒阻塞與執行緒死鎖.synchronized關鍵字用法.Lock物件實現執行緒同步.java設計模式分為:工廠模式,抽象工廠模式,單例模式,建造者模式,原型模式,介面卡模式,裝飾器模式,代理模式,外觀模式,橋接模式,組合模式,享元模式,策略模式,模板方法模式,觀察者模式,迭代子模式,責任鏈模式,命令模式,備忘錄模式,狀態模式,訪問者模式,中介者模式,直譯器模式.java編碼規範的目的是寫出更優雅高效簡介的程式碼.列舉了一些示例來說明java如何寫出優雅的程式碼.jvm引數標準配置選項.jvm引數非標準配置選項.jvm引數效能優化示例.jvm引數建議配置.在java中final關鍵字有第一無二的特性,就是隻可以賦值一次,一旦賦值,就無法改變其值。利用好這個特性可以寫出非常好的程式碼。我在自己的專案中很少使用transient關鍵字。這個關鍵字的作用是和序列化相關的。JDK的原始碼中ArrayList類用到了transient關鍵字. 整理一下這個關鍵字相關的內容.

JDK8新特性

java JDK8新增語法特性:函式介面(Functional Interface),Lambda表示式,方法引用(Method Reference),default方法(defender方法),批量資料操作(bulk dataoperations).JDK8提供了函式式介面(Functional Interface)是指只有一個抽象方法的介面.這種型別的介面也稱為SAM(Single Abstract Method).java拉姆達(Lambda)表示式由來.指令式程式設計與函數語言程式設計.java為什麼會引入拉姆達(Lambda)表示式.java Lambda表示式的優點.java拉姆達(Lambda)表示式語法及示例.java拉姆達(Lambda)表示式對集合排序.Java拉姆達表示式在流(stream)式操作中的應用.java從jdk8.0開始提供了default方法.java default方法應用.java方法引用(method references)的概念.java方法引用的種類.靜態方法引用,某個物件的方法引用,特定類的任意物件的方法引用.java並行和序列處理資料介紹.java批量操作介面,java流式(stream)API.中間操作與終結操作.

附錄

java中的@Override是虛擬碼,表示覆寫父類方法.可用於程式碼檢查,驗證父類是否有該方法.java編碼規範制定原則.引為了寫出高效,優雅的程式碼制定本規範.java保留關鍵字(reserved word)指在系統已經定義過的英文單詞.詳細的java保留關鍵字列表及關鍵字意義.linux安裝jdk,搭建java開發環境詳細步驟.linux,Ubuntu,CentOS配置java環境變數.阿里巴巴java開發手冊正式版下載.本手冊紙質版書籍已經出版,感興趣的同學可以買一個紙質書籍.

Intelij IDEA

Intelij IDEA在跑大記憶體的程式時.會出現java.lang.OutOfMemoryError異常,解決辦法是設定-Xms和-Xmx引數.Intelij IDEA格式化程式碼目錄方法及格式化程式碼快捷鍵.WebStom,Android Studio,JetBrains PyCharm格式化程式碼目錄.

Java中文手冊

JDK6.0中文手冊API線上文件.JDK8中文手冊API線上文件.JDK9中文手冊API線上文件.

FAQ

從JDK1.5開始加入了ConcurrentHashMap,在面試的過程中我問過很多程式設計師,HashpMap與ConcurrentHashMap的區別是什麼呢。我得到的回答一般都是HashpMap不是執行緒安全的,ConcurrentHashMap是執行緒安全的。這個結論很籠統。下面我來詳細的舉例說明他們之間的區別。HashMap集合類中有put()方法,還提供了一個putIfAbsent方法,在專案中一個同事用錯putIfAbsent方法,從而導致了一個比較嚴重的bug。在本文中總結了一下這兩個方法的區別與應用場景, 避免用錯。在實際專案中會用根據需求用到ArrayList和陣列之間的轉換。比如往MongoDB資料庫中存入一個整型陣列(int[]),讀取的時候可以得到一個ArrayList<Integer>,無法直接得到一個整型陣列(int[]).這個時候就會需要用到ArrayList轉化為陣列.在我做的一個模組中,會用到遍歷一個集合類,遍歷的同時根據條件判斷集合中的物件,如果不符合條件則將該物件從集合中移除。這種情況很容易產生ConcurrentModificationExceptionException,這個異常會導致程式停止繼續執行,所以遇到這個異常必須要處理來保證程式正確執行。隨機數Random類是在做隨機規則時需要用到的類。用途很廣,比如隨機抽獎,隨機密碼,隨機驗證碼,隨機獎勵等,隨機數,計算概率等。

程式優化專題

在編碼中,我們像競技運動員一樣追求更快的速度。追求最優的演算法,看到一些同學的編碼質量停留著實現功能的層面,距離最優編碼相差很遠。所以一直想整理一下自己在實際專案遇到的問題和效率優化的文章和大家分享一下。本文是該系列文章的第一篇。for迴圈的效率優化。Java語言中常用的陣列拷貝方式有:for迴圈拷貝,通過Arrays.copyOf()方法,System.arraycopy和clone()方法拷貝。部分程式設計師對應浮點數(float,double)做運算的時候,會有一個誤區就是浮點數運算效率比整型運算效率低很多。產生這個認識的原因是因為以人的角度來考慮這個問題,做小數除法要比做整數除法麻煩一些而得出的。通過實際程式碼來比較一下這差異。3目運算子也稱條件運算子。根據條件true或者false,選擇對應的值。在使用3目運算子的優勢是程式碼簡介,將一個if-else語句簡化為了一行程式碼。效率略低於if-else語句。