java無難事筆記(一)

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);

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章