Java高級語法

lambda表達式

  1. lambda表達式是接口或者說是接口函數的簡寫
  2. lambda表達式的基本寫法是:【參數 -> 結果】。其中參數可以使()或一個參數或多個參數,結果是指表達式或語句或{語句}
    1. 如 (String s)  ->s.length()
    2. 如 x->x*x
    3. () -> {System.out.println("aaa");}

在java中它實際上是“匿名類的一個實例”,大體上相當於其他語言的“匿名函數”或“函數指針”

Runnable doIt = new Runnable(){
    public void run(){
        System.out.println("aaa");
    }
}
new Thread(doIt).start();

上面是線程執行匿名類的寫法,可以簡寫成下面的方式

Runnable doIt = () -> System.out.println("aaa");
new Thread(doIt).start();
new Thread( () -> System.out.println("aaa");).start();

由於Lambda只能表示一個函數,所以能寫成Lambda的接口要求包含且最多隻能有一個抽象函數,這樣的接口可以(但不強求)用註記【@FunctionalInterface】來表示,稱爲函數式接口

 

基本類型的包裝類

  1. 它將基本類型包裝成Object引用類型
  2. 如將int基本類型包裝成Interger
  3. 共8類:Boolean,Byte,Short,Character,Interger,Long,Float,Double
Interger i = new Interger(10);

裝箱:包裝類使用的便捷方式

Interger I = 10;    // 實際譯爲:Interger I = Interger.valueOf(10);

拆箱:將包裝類的值還原到基本類型

int i = I;    // 實際譯爲:int i = I.intValue();

主要方便用於集合,如

Object [] ary = {1, "aaa"};

枚舉

  1. 枚舉是一種特殊的class類型,在簡單的情況下,用法與其他語言的enum相似
    1. enum Light {Red, Yellow, Green};
    2. Light light = Light.Red;
  2. 實際上它生成了 class Light extends java.lang.Enum

註解

  1. 又稱註記、標記、標註、註釋(不同於comments),是在各種語法要素上加上附加信息,以供編譯器或其他程序使用
  2. 所有的註解都是java.lang.annotation.Annotation的子類
  3. 常見的註解,如:
    1. @Override    表示覆蓋父類的方法
    2. @Deprecated    表示過時的方法
    3. @SuppressWarnings    表示讓編譯器不產生警告  

字符串內部化

String對象判斷相等時,一定不要用==,要用equals來判斷對象裏值是否相等。但是對於字符串常量Java會對其作內部化,相同的字符串常量是==的

String hello = "hello", lo = "lo";
System.out.println(hello == ("hel" + "lo"));    // true
System.out.println(hello == ("hel" + lo));    // false
System.out.println(hello == ("hel" + lo).intern());    // true

 

 

 

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