1,編譯成功,生成字節碼文件,但是java虛擬機加載類的時候報錯,說“找不到或無法加載主類”,原因是classspath配置最後沒有加上“分號".
2,各種數據類型
byte分配一個字節,有符號,short分配兩個字節,有符號!這兩種數據類型在參加運算的時候會強制轉換爲int,然後再進行運算,這樣可以確保精度
所以這種寫法是錯誤的,byte b; b = b*3; b*3的結果是int型,但是b是一個字節類型,所以編譯器會報錯,必須這樣書寫b = (byte)(b*3),括號不要忘記添加,如果寫成b=(byte)b*3,則強制轉換類型的優先級比*高,b本來就是byte類型,再轉換爲byte沒有意義!
char分配兩個字節,在C中僅僅分配一個字節,char='a' 也可以寫成 char=97;
3,數組聲明:
一: 數組聲明和C語言不通,java的數組聲明有點類似於C++的動態分配;
如果按照C語言方式來寫
int []num;
num[0]=1;
num[1]=2;
num[2]=3;
System.out.println(num[0]);
System.out.println(num[1]);
System.out.println(num[2]);
這C看起來是正確的,對於java其實是錯誤的 編譯報錯”錯誤: 可能尚未初始化變量num“
所以這樣寫int []num = new int[3];
二:
int []num ={1,2,3};
System.out.println(num[0]);
System.out.println(num[1]);
System.out.println(num[2]);可以在聲明的時候就直接初始化
三
int []num =new int[]{1,2,3};
System.out.println(num[0]);
System.out.println(num[1]);
System.out.println(num[2]);
也可以在動態分配的時候直接用大括號賦值,但是注意不要去指明數組的個數int []num =new int[3]{1,2,3};,否則編譯器報錯
四:二維數組
java二維數組比較有特色,一個二維數組中列數可以不一樣
常規: int [][] num;
num=new int[3][4];
num[0][1]=12;
num[2][3]=34;
列數不一樣: int [][] num;
num=new int[3][];
num[0]=new int[5];
num[1]=new int[3];
num[2]=new int[2];
num[0][4]=45;
num[1][2]=34;
num[2][1]=21;
System.out.println(num[0][4]);
System.out.println(num[1][2]);
System.out.println(num[2][1]);
System.out.println(num[2][2]);
也可以在聲明的時候就初始化數組
int [][] num = new int[][]{ {1,2,3},{4,5,6},{7,8,9}};
int [][] num = new int[2][]{{1,2,3}{4,5,6},{7,8,9}};這是錯誤的,和一位數組在聲明的時候初始化一樣,不要指定維數;
4,自增自減操作,常規與C++一樣,編譯器實現
int i=3;
int count=(i++)+(i++)+(i++); count結果是3+4+5等於12
int count=(++i)+(++i)+(++i);count結果是4+5+6等於16 ,i自然就是6了
System.out.println(i);
System.out.println(count);