1.java是一種編譯解釋型的語言。
2.java的記憶體回收機制:
java的記憶體回收將在程式運行過程中自動進行,無需程式員負責回收無用記憶體。
3.java環境變數配置:
在我的電腦>屬性>進階>環境變數裡的 path 中加入C:/Program Files/Java/jdk1.6.0/bin的路徑(註:放在所有路徑的最前面)。
4.java類的程式入口方法:
public static void main(String[] args){
}
5.public類名必須跟java檔案同名,且一個java檔案中只能包括一個public類。
6.java注釋:
// 單行注釋
/* */ 多行注釋(不能嵌套)
//* */ 文檔說明注釋
7.合法標識符:
可以以字母、底線"_"和"$"符開頭,跟字母、底線"_"和"$"或數字組成。不能和java語言的關鍵字重名。
8.關鍵字
java中一些賦予特定的含義,並用作專門用途的單詞稱為關鍵字。都是小寫。
9.java資料類型分為簡單類型和參考型別。
簡單類型分:數值型(整數類型和浮點類型)、字元型、布爾型。
參考型別分:類、介面、數組,枚舉。
資料類型 有效範圍(bits)
boolean 1
byte 8
int 32
float 32
char 16
short 16
long 64
double 64
10.布爾類型 boolean b = true;boolean b = false;
11.分支語句(if語句)
格式:
if(true){
}else{
}
或者
if(boolean b){
}else if(boolean b){
}else{
}
12.整數類型
類型 佔用儲存空間 表數範圍
byte 1位元組 -128~127
short 2位元組 -32768~32767
int 4位元組 -2147483648~2147483647(-2^31~2^31-1)
long 8位元組 -2^63~2^63-1
13.字元型(佔2位元組),採用Unicode編碼。
格式 : char c = 'a'; char c = 98; char c = '中';
註:用單引號。一個中文可以用一個char表示。特殊字元前加"/"。
14.浮點類型
類型 佔用儲存空間 表數範圍
float 4位元組 -3.403E38~3.403E38
double 8位元組 -1.798E308~1.798E308
格式:double d = 12 ; float f = 12.5f ;
15.各整數資料型別的轉換
簡單類型除了boolean類型外,其他的資料類型可以自動轉換成其他資料類型。
但需遵循一下原則:
byte——>short——>int——>long--->float——>double
char——>int
int------------>float
long------------->double
16.運算子
注意優先順序,多用括弧。
int x=4/5*5;
x=0而不等於4;
17.關係和布林運算子
關係運算子:== (等於)、!= (不等於)、>(大於) 、<(小於) 、>=(大於等於) 、<=(小於等於)
邏輯運算子:!(邏輯非) 、&(邏輯與) 、|(邏輯或) 、^(邏輯異或) 、&&(短路與) 、||(短路或)
18.三目條件運算子
文法格式:x?y:z
先計算x的值,若為true,則結果為y,否則結果為z。
19.位元運算符
~(取反)
&(按位與)
|(按位或)
^(按位異或)
~01001111 = 10110000
11001011 & 01101101 = 01001001
11001011 | 01101101 = 11101111
11001011 ^ 01101101 = 10100110
20.移位元運算符
>> :右移運算子,將左運算元向右移動,移位個數由右運算元決定(右移一位相當與除2)。
<< :左移運算子,將左運算元向左移動,移位個數由右運算元決定(左移一位相當與乘2)。
>>> :無符號右移位元運算符。
4 = 0100; 4 >> 1 = 0010;
4 >> 1 = 2; 12 >> 2 = 3; 5 >> 1 = 2; -4 >> 1 = -2;
4 << 1 = 8; 4 << 2 = 16; -3 << 1 = -6;
8 >>> 1 = 4; -4 >>> 1 = 2147473646;
21.賦值運算子
最常用的賦值運算子:“=”
擴充賦值運算子:“+= 、-= 、*= 、/= 、%= 、^= 、&= 、|= 、>>= 、<<= 、>>>=”
int i = 5;
i += 5; 即 i = i+5;
i -= 2; 即 i = i-2;
(其他同理)
double d1 = 5.0;
float f1 = (float)d1;
byte b1 = (byte)350; 結果:b1=94;
(從大到小,需要強制轉型。強制轉型時可能遺失資料)
22.字串串連符“+”
當“+”用在運算式中的時候,如果其中一個運算元是String類型,則Java自動將另一個運算元也轉換成String類型,然後串連成一個新的字串。
int b1 = 2;
int b2 = 3;
String s1 = "s" + b1 + b2;
s1 = s23; 而不是s5; 如果想得到s5,則可以用"s" + (b1 + b2)
String s2 = b1 + b2 + "s";
s2 = 5s; 如果想得到23s,則可以用 "" + b1 + b2 + "s" 在前面加一個Null 字元串
23.運算式
運算式是運算子和運算元的結合(一個變數、一個數也是運算式)。
-運算式中運算子的結合性
在Java中,大部分運算是從左至右結合的,只有單目、賦值、條件運算子例外。
-運算式中運算子的優先順序
(最高)分隔字元: . [] () , ;
(第2)單目運算子: + 、- 、~ 、! 、++ 、--
(第3)建立或類型轉換: New(type)expr
(4)乘除法: * 、/ 、%
(5)加減法: + 、-
(6)移位: << 、>> 、>>>
(7)關係: < 、<= 、>= 、>
(8)等價: == 、!=
(9)按位與: &
(10)按位異或: ^
(11)按位或: |
(12)條件與: &&
(13)條件或: ||
(14)條件: ?:
(15)賦值: =
注意:平時用時不能依賴優先順序的高低,需要先運算的一律用"()"括弧括起來。
24.分支語句
if-else 語句
switch 語句
switch語句格式:
switch(expr1){
case constant1:
statements;
break;
case constant2:
statements;
break;
......
default:
statements;
break;
}
註:switch(expr1)中的expr1和case constatnt1:中的constatnt1,只能是int類型或能轉換成int類型的。如:char short byte
25.迴圈語句
-for
-do/while
-while
while語句格式:
int i=0
while(i<10){
System.out.println("i=" + i);
i++;
}
註:while(b)中的b必須是boolean類型的,即true或者false。
for語句格式:
for(int i=0; i<10; i++){
System.out.println("for迴圈~i="+i);
}
註:i的生命週期,在for迴圈裡面。
do/while語句格式:
int i=0
do{
System.out.println("i=" + i);
i++;
}while(i<10);
註:while語句和do/while語句的區別是先判斷還是先做。當一開始條件就不滿足的情況下,do/while語句會執行一次迴圈體中的代碼,而while語句不會執行。
-break/continue語句
break語句是完全跳出迴圈。
迴圈中有break時,只跳出離它最近的迴圈。
for(int i=1; i<100; i++){
if(i==50){
break;
}
}
上面的迴圈,當i==50時,迴圈就結束了。
continue語句用來略過迴圈中剩下的語句,開始下一個迴圈。
int sum = 0;
for(int i=1; i<100; i++){
if((i%2)==0){
continue;
}
sum +=i;
}
上面的迴圈,當i是偶數時,跳出本次迴圈。即sum+=i不會執行,直接進行下一次迴圈。
26.靜態方法調用
public class TestStaticMethod{
public static void main(String[] args){
System.out.println("========");
hello(); //直接調用
TestStaticMethod.hello(); //用類名+點+方法名的方法來調用
System.out.println("========");
int x = 5;
TestStaticMethod.printHello(x); //帶參數方法的調用,調用時必須給出一個和參數相同類型的值。
int z = 10;
int result = TestStaticMethod.multy(z); //帶參數,有傳回值的方法調用。如要得到傳回值時,需定義一個同類型的變數來接收方法的傳回值。
System.out.println(result);
}
//無傳回值,無參數方法
public static void hello(){
System.out.println("hello....");
}
//無傳回值,有參數的方法
public static void printHello(int n){
for(int i = 0; i < n; i++){
System.out.println("hello..." + i);
}
}
//有傳回值,有參數的方法。需返回一個同類型的值。
public static int multy(int y){
int r = y * 2;
return r;
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~