@(Java知識點總結)[Java, Java基本語法]java
@(Java開發)[Java基本語法]express
[toc]編程
簡單天然
平臺可移植性
支持函數式編程
JIT 編譯
更好的併發編程
健壯安全數組
編譯:將源代碼(.java)處理成字節碼(.class)
解釋:將字節碼加載到JVM中執行(JIT編譯)安全
package:方便管理類,避免命名衝突
import:除java.lang包 其餘包中的內容須要先導入
class/interface/enum/@interface:多線程
1. 被public修飾的類/接口/枚舉/註解最多隻有一個 2. 建議:一個源文件中只寫一個類/接口/枚舉/註解
註釋:併發
1. 行註釋 // 2. 多行註釋(塊註釋) /* xxx */ 3. 文檔註釋 /** xxxx */ @author @since @param @return @throws @see @deprecated
關鍵字
關鍵字:有特殊含義的單詞
byte、short、int、long、float、double、char、boolean
class、interface、extends、implements、abstract、final、package、import、this、super、new、instanceof、strictfp
return、void、native、static
public、protected、private
if、else、switch、case、default、while、do、for、break、continue
try、catch、finally、throw、throws
synchronized、volatile
transient、Java 5+、assert、enum
const、goto
標識符
標識符:給類型(類、接口、枚舉、註解)、包、方法、屬性、變量等起的名字 1. 字母(Unicode字符)、數字、下劃線、$、數字不能開頭 2. 不能使用關鍵字作標識符 3. 大小寫敏感 4. 見名如意 5. 駝峯命名法 命名類型時每一個單詞首字符大寫 命名方法、變量時第一個單詞小寫,從第二個單詞尅是每一個單詞首字母大寫 命名包是全小寫 命名常量是全大寫
運算符
(1)算術運算符 + - * / %:任何整數模2,不是0就是1,因此只要改變被模數就能夠實現開關運算符 ++:自增 --:自減 (2)賦值運算符 = += -= *= /= %= (3)比較運算符 ==:運算完的結果,要麼是true,要麼是false != < <= > >= (4)邏輯運算符 &:兩邊只要有一個爲false,結果就是false |:兩邊只要有一個true,結果就是true &&:短路與,只要右邊是false,左邊就再也不參與運算了,結果爲false ||:短路或,只要右邊是true,左邊就再也不參與運算了,結果爲true ! (5)位運算符 & | ^ ~ << >> >>>:無符號右移 (6)其餘運算符 x?y:z; : 三元條件運算符。先計算x的值,若是x爲true,則整個三目運算的結果爲y,不然爲z。常常用來代替簡單的 if...else... 判斷 +:字符串鏈接符。System.out.println("5"+4); // 54 new instanceof ():強制類型轉換 []:下標運算符
變量與常量
常量:是在程序中的不會變化的數據 變量:其實就是內存中的一個存儲空間,用於存儲數據。只要是數據不肯定的,就定義變量。 做用:方便於運算。由於有些數據不肯定,因此肯定該數據的名詞和存儲空間 特色:變量空間能夠重複使用 做用域:從變量定義的位置開始,到該變量所在的那對大括號結束。 生命週期:變量從定義的位置開始就在內存中活了,變量到達它所在的做用域的時候就在內存中消失了;
數據類型
boolean byte、char、short(這三個平級)——>int——>float——>long——>double
自動類型轉換:從低級別到高級別,系統自動轉的 強制類型轉換:把一個高級別的數據類型賦給一個級別比它低的變量或者表達式中類型提高(計算結果超出範圍)
表達式中類型提高問題:函數式編程
數組、類、接口
程序邏輯
從上至下執行
if....else.... switch....case....default....
(1)switch只能作等值判斷
(2)switch後面的小括號中的變量只能是int,以及自動轉爲int的byte、char、short;JDK7之後可使字符串
(3)default能夠寫在switch結構中的任意位置,若是寫在第一行,無論expression與case中的value是否匹配,程序會從default開始執行,直到第一個break出現。
(4)當判斷固定個數的值的時候,可使用if,也可使用switch。建議使用switch,效率相對較高。 switch(變量){ case 值:要執行的語句; break; ...... default:要執行的語句; } 執行過程:小括號中的變量的值依次和case後面的值進行比較,和哪一個case的值相同了,就執行哪一個case後面的語句,若是沒有相同的,則執行default後面的語句; 注意:break是能夠省略的,若是省略了就一直執行到遇到break位置(case穿透);
(5)當判斷數據範圍,獲取判斷運算結果boolean類型,須要使用if。
(6)當某些語句須要執行不少次,就使用循環結構 while和for能夠進行互換。 區別在於:若是須要定義變量控制循環次數。建議使用for。由於for循環完畢,變量在內存中釋放。
(7)break、continue,return區別 break: 做用於switch時,再也不執行下面的語句。 做用於循環語句時,表示跳出當前所在循環。要跳出嵌套中的外部循環,只要給循環起個名字便可,這個名字稱之爲標號。 continue: 只做用於循環結構,繼續循環用的。表示結束本次循環,繼續下次循環。 return: 結束當前執行的方法
循環結構
while
do....whiel
for(初始條件;循環控制條件;循環控制條件)
for-each函數