1. 程式人生 > >總結的java一些細節問題

總結的java一些細節問題

1.public class  Demo
    {
    public static void main(String[] args)
        {
        System.out.println(1.3%0.2);//小數可取模
        }
    }


2.數值可加下劃線,方便標識。例如 int b =1_2345_7433;
  數值表達方式:1.0b開頭 二進位制
                2.0X開頭 十六進位制
                3.0開頭 八進位制

3.預設整數為Int,預設小數為double。
      例:float f = 0.1會報錯
      float f=0.1f;可用
      float f=(float)0.1 強制型別轉換,會損失精度;

4.兩個整數型別(byte,int ,long,short)運算,結果型別:兩個整數型別中有long結果
  為long,否則為int;
  同理,兩個浮點型別結果有double 為double,否則為float;

5.a+=j和a=a+j看似相似,但其實型別轉換時不一樣。
  例如 byte a=1;byte j=2;時,a=a+j會報錯,因為a+j是int型別,不能等於a。

6.a|=j;或等於。
  用途:
    例如java中陣列為引用資料型別,
    一個布林型別32個位元組,使用一個int數代替布林型別陣列,節省記憶體。
  例:
    a = 0;
    a |= 1<<1;                 //把第二位設定成1

    a &= (~(1<<1))             //將第二位設定成0

    if((a&(1<<1))!=0)    //判斷第二位值是否為1,如果是1,結果為ture。

    - - - - - - - -
    0 0 0 0 0 0 1 0    1<<1
    1 1 1 1 1 1 0 1    ~(1<<1)


7.雙目運算子不加空格,單目運算子和數值間加空格,方便閱讀。

8.>>,>>>有符號右移(補符號位的值)和無符號右移(補0);
  <<左移只有一個。

9.^ 異或,相同為0不同為一。

10.&&,||短路與和短路或,與&和|區別是如果已知運算結果,則不看第二位。
   java中一般只使用短路與或,不適用&和|。

11.if中的值為布林型別
   switch(){}選擇程式入口;
   ()中只能放三種值,Int,enum,String(1.7之後);
   break跳出程式碼塊,與switch無直接關係.

   _L:
   switch(a)
   ...
      switch(b)
      ...
    break _L;  //跳出_L程式碼塊

12.//單行註釋
   /* 多行註釋 */
  /*
   * 多行註釋
   */
  /**
   * 文件註釋
  */
  文件註釋一般用於方法或類上.
 
 13.公開的類,類名必須和檔名相同;
    一個java檔案中可以有多個類;
    同一個java檔案中類名不能相同;
 
 14. 列印語句,自動換行
     System.out.println("Hello World!");
     列印語句,不自動換行
     System.out.print("Hello World!");
     列印語句,和c中的printf作用完全一樣(除了指標,JAVA中無指標)
     System.out.printf("Hello World!");

15.八個基本資料型別
        字位:一位二進位制數字
        位元組:8個字位
        byte b;   //1位元組,其中第一位為符號位,7位數值位,負數為補碼
        short s;  //2位元組,其中第一位為符號位,15位數值位,負數為補碼
        int i;    //4位元組,其中第一位為符號位,31位數值位,負數為補碼
        long l;   //8位元組,其中第一位為符號位,63位數值位,負數為補碼
        float f;  //4位元組,以科學記數法記數
        double d; //8位元組,
        char c;   //2位元組,無符號,Unicode字符集
        boolean bool;//只有兩個值true,false,不可以轉換成其它任何型別

   Java基本型別包括 :八種基本資料型別和void

16. 運算子
        1.以運算數分為單目運算子(++,--,!,~);
      雙目運算子(+,-,*,/,=);
      三目運算子(?:)
        2.數學運算子,+-*/%
          位運算子:<<,>>,>>>,~,^,&,|
          邏輯運算子:&,|,!,&&,||
          關係運算符:==,!=,>,<,>=,<=
          特殊運算子:=,+,?:,

17.識別符號:由字母,數字,_,$組成,不能以數字開頭,不能是關鍵字48(保留字50 goto cast)
       $是用於區別內部類和外部類,一般不使用
            類名:首字母大寫,駝峰命名
            方法名:首字母小寫,駝峰式命名
            引數名:首字母小寫,駝峰式命名
            變數名:首字母小寫,駝峰式命名
            程式碼塊名:以_開頭,所有字母大寫,單詞之間以_分割
            包名:所有字母小寫
            常量名:以_開頭,所有字母大寫,單詞之間以_分割
            屬性名:首字母小寫,駝峰式命名;以m開頭,駝峰式命名