1. 程式人生 > 實用技巧 >青藤程式設計營——提高組基礎專題一(列舉)

青藤程式設計營——提高組基礎專題一(列舉)

Java基礎語法

JDK新特性,數字之間可以用下劃線分割,如1_0000_0000。不影響數值。

JAVA中的三種註釋

書寫註釋是一個非常好的規範

  • 單行註釋
//單行註釋
  • 多行註釋
/*多行註釋
多行註釋
多行註釋*/
  • 文件註釋
/**
 * 
 * 
 * 
 * 
 * */

識別符號和關鍵字

關鍵字

識別符號

  • Java所有的組成部分都需要名字。類名、變數名、方法名都被稱為識別符號

  • 所有識別符號都應該以字母,美元符($),下劃線(_)組成

  • 首字母之後可以是字母,美元符,下劃線或數字的任何字元組合

  • 識別符號大小寫敏感

  • 不能使用關鍵字作為變數名或者方法名

  • 儘量使用英文

資料型別

  • JAVA是一種強型別語言,要求變數的使用要嚴格符合規定,所有變數都必須先定義在使用

JAVA資料的基本型別(primitive type)

數值型別

  • 整數型別

    • byte:1個位元組
    • short:2個位元組
    • int:4個位元組
    • long:8個位元組//數字後面加L
  • 浮點型別(小數)

    • float:4個位元組
    • double:8個位元組
  • 字元型別

    • char:2個位元組

    • String:非關鍵字

布林型別

  • boolean:佔一位,其值為true或者false

拓展:

  • 進位制(二進位制0b、十進位制、八進位制0、十六進位制0x)

    int i=10 ;
    int i2=010;//八進位制0
    int i3=0x10;//十六進位制0x
    System.out.println(i);
    System.out.println(i2);
    System.out.println(i3);
    /*
    10
    10
    10
    */
    
    
  • float表示字長有限、離散,具有舍入誤差性質。

    最好完全避免使用浮點數進行比較

    銀行系統一般使用BigDecimal數學工具類

    float f = 0.1f;
    double d = 1.0/10;
    System.out.println(f==d);
    //output 
    false
    
    float d1 = 212121121212121212;
    float d2 = d1 + 1;
    System.out.println(d1==d2);
    //output 
    true
    
  • 強制型別轉換(所有的字元本質都是數字)

    char c='a';
    System.out.println((int)c);
    //output 
    97
    
  • Unicode編碼(U0000-UFFFF)

    char c='\uoo61';
    System.out.println(c);
    //output 
    a
    
  • 轉義字元

    \t //製表符
    \n //換行
    
  • 布林值擴充套件

    boolean flag = true;
    if(flag==true){} 
    if(flag){}       
    //行2與行3,意義相同,完全等價
    

JAVA資料的引用型別(reference type)

    • 關於物件的思考
    String a= new String("Hi");
    String b= new String("Hi");
    System.out.println(a==b);
    //output 
    flase
    
  • 介面

  • 陣列

型別轉換

  • JAVA為強型別語言,所以運算需要進行型別轉換

  • 優先順序由低到高

    byte,short,char<int<long<float<double

  • 自動型別轉換(低容量到高容量)

  • 強制型別轉換(高容量到低容量)

    (需要的型別)原型別
    
  • 強制型別轉換中可能存在記憶體溢位、精度問題

    int i=128;
    byte b = (byte)i; //記憶體溢位
    //output
    -128
    
    System.out.println((int)23.7);
    System.out.println((int)-45.89f);
    //output
    23
    -45
        //精度丟失
    
  • 不能對布林值進行轉換

  • 不能轉換不相干的型別

變數

  • 每個變數都有型別,可以是基本型別,也可以是引用型別

  • 變數名必須是合法的表示符

    type varName = value;
    
  • 常量(關鍵字final)

    public class Hello {
        static final int PI=3.14;//在類中定義靜態常量
        //main方法
        public static void main(String[] args) {
            System.out.println(PI);
        }
    }
    

變數的作用域

  • 區域性變數

    public class Hello {
        //main方法
        public static void main(String[] args) {
            int i = 10;//區域性變數,定義於方法內部,作用於方法內部
            System.out.println(i); 
        } 
    }
    
  • 例項變數

    public class Hello {
        String name;//例項變數:從屬於物件;預設值為0、0.0、null、flase
        int age;
        //main方法
        public static void main(String[] args) {
        }
        //其他方法
        public void add(){
            //呼叫例項變數前需要執行以下操作
            Hello hello = new Hello();
            System.out.println(hello.name);//輸出例項變數
        }
    }
    
  • 類變數

    public class Hello {
        static int a=10;//類變數,關鍵詞static
        //main方法
        public static void main(String[] args) {
            System.out.println(a);//在方法內可直接呼叫
        }
    }
    

變數的命名規範

  • 所有變數、方法、類名:見名知意
  • 類成員變數、區域性變數、方法名:首字母小寫和駝峰原則、nameAdd
  • 常量:大寫字母和下劃線:MAX_VALUE
  • 類名:首字母大寫和駝峰原則

運算子

  • 算術運算子進行算術運算時,當有long時結果為long型別,否則為int型別
  • 自增自減運算子:a++程式碼執行後;++a程式碼執行前
  • 冪運算:Math.pow(a,b),借用Math工具類中的pow方法
  • 邏輯運算子
    • 與:兩個變數都為真,結果才為真
    • 或:兩個變數都為假,結果才為假
    • 非:若真為假,若假為真
  • 短路運算
    • 在與運算中,若第一個變數為假,則不用看第二個變數,程式短路,直接判斷為假。
  • 位運算
    • 按位進行與或非運算
    • 異或運算:相同為0,不同為1
    • <<左移相當於*2;>>右移相當於/2;例:2<<3 == 8
  • a+=b 相當於a=a+b
  • 當+旁邊出現String型別,則為連線符
  • x?y:z相當於:如果x為真,則結果為y,否則為z

包機制

  • 一般用公司的域名倒置作為包名,com.baidu.www
  • 匯入包:import com.xxx.xxx.*; // *為萬用字元,匯入包中所有

JavaDoc

package com.xia.base;
/**
* @author xia
* @version 1.0
* @since 1.8
*/
public class Demo01 {
   String name;
   /**
    * @param name
    * @return
    * @throws Exception
    */
   public String test(String name) throws Exception{
       return name;
   }
}
  • IDEA生成:Tools