1.5.2 編譯
Jdk 1.6以后,不再向下兼容,jdk1.6編譯器生成的字節碼只能在安裝了1.6或高於JRE1.6的java平台環境中運行。
1.6 java反編譯
通過JDK提供的反編譯器 javap.exe,可以將編譯器得到的字節碼文件還原為源文件
例:javap Hello.class
2.1標識符與關鍵字
1、標識符由字母、下划線、美元符號、數字組成,長度不受限制
2、第一個字符不能是 數字
2.2.3
1、Char型變量,分配2個字節內存,占16位,最高位不是符號位,沒有負數的char。Char型變量的取值范圍是0~65535
2、Char x = ‘a’; //內存中存儲的是97,97是字符a在Unicode表中的排序位置
Char x = 97; //上下兩個式子是同樣的意思
3、在java中,可以用字符在Unicode表中排序位置的十六進制轉義來表示該字符,一般形式‘\u****’。
例如:‘\u0041表示字符A’
4、如果需要知道一個字符在Unicode表中的順序位置,可以使用int類型轉換
例如:(int)‘A’;
如果需要知道一個0~65535之間數字所代表Unicode表中相對應位置上的字符,可以使用字符類型轉換。
例如:(char)65;
2.2.4
Float型
使用float型修飾的時候,必須有后綴f或F。
例如:float x = 22.76f;
對於float類型變量,分配4個字節內存,占32位,8位有效數字
例如:float x = 12345.67891011f; //真正有效的是8位數字,12345.678
Double型
使用double型修飾的時候,可以有d或D后綴,但允許省略該后綴。
對於double類型變量,分配8個字節內存,占64位,16位有效數字。
2.4.1 輸入
Import java.util.Scanner;
Scanner reader = new Scanner(System.in);
Double x = reader.nextDouble(); //nextDouble()僅只能接受double類型的,nextLine可以接受String類型的
2.4.2 輸出
System.out.println(); //區別換行不換行
System.out.print();
注:System.out.println(“你好,
很高興認識你”); //輸出字符串常量時,不可以出現“回車”。
2.5.1 數組
Java中不允許在 聲明 數組中的方括號內指定數組元素的個數。
Int a[12]; //都是錯誤
Int [12]a;
聲明和創建數組一起完成
數組元素的類型 數組名 = new 數組元素的類型[數組元素的個數];
數組是引用類型變量,數組名存放着數組的首元素的地址,稱作 數組的引用。
2.2.5 數組的初始化
創建數組后,系統會給數組的每個元素一個默認的值,如float型是0.0。
2.2.6 數組的引用
1、數組引用的輸出
int[] a ={1,2,3,4};
System.out.println(“數組a的引用=”+a)
2、對於char型數組a,System.out.println(a)不會輸出數組a的引用二是輸出數組a的全部元素的值。
例如: char[] a = {‘中’,‘國’,’科’,’大’};
System.out.println(a);
輸出結果:中國科大
如果想輸出char型數組的引用,必須讓數組a和字符串做並值運算。
System.out.println(“”+a);
3.1.7 位運算符
邏輯運算符 && || !
其中,&& ||稱作短路邏輯運算符,當op1是false時,&&運算符在運算時不再去計算op2的值,直接得出op1&&op2的結果是false
當op1是true時,||運算符在運算時不再去計算op2的值,直接得出op1||op2的結果是true
位運算符 & | ~(非) ^(異或)
注:與邏輯運算符不同的是,位運算符要計算完op1、op2的值后再給出運算的結果
((y=1)==0)&&((x=6)==6) //x的值仍然是1
((y=1)==0)&((x=6)==6)) //x的值將是6
3.1.8 instanceof運算符
Instanceof是一個二元運算符,左面的操作元是一個對象,右邊是一個類。當左邊的對象是
右邊的類或子類創建的對象時,該運算符的結果是true,否則是false
3.1.9 運算符綜述(優先級)
1、在編寫程序的時候盡量使用括號()運算符號來實現想要的運算次序
2、當運算符擁有並列的相同級別時,運算符的結合性決定先后順序
如:加減的結合性是從左到右,8-5+3等於(8-5)+3
邏輯否!的結合性是從右到左,!!x相當於!(!x)