• 语法糖:指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。 语法糖让程序更加简洁,有更高的可读性。
  • 本篇介绍java中常用的语法糖

泛型

  • 泛型,即“参数化类型”。
  • Java的泛型是通过类型擦除(type erasure)实现的。
  • 伪泛型:在编译期间,所有的泛型信息都会被擦除掉。  [Java中的泛型基本上都是在编译器这个层次来实现的。]
  • eg: 定义 List<Object> or List<String> 对JVM而言都只能看到List。
     System.out.println(new ArrayList<String>().getClass() == new ArrayList<Integer>().getClass());
    // return true;
  • Java编译器会在编译时尽可能的发现可能出错的地方,但是仍然无法避免在运行时刻出现类型转换异常的情况
  • 类型变量被擦除(crased),并使用其限定类型(无限定的变量用Object)替换。 [原始类型raw type]
  • 自动类型转换:虽然在编译期间,变量类型都被擦除,取代以原始类型。但在return之前,会根据泛型变量进行强制转换
  • 编译后得到的代码如下所示
    Map<String, String> map = new HashMap<>();   // Map map = new HashMap(); 类型擦除
    map.put("a", "mapa");
    String h = map.get("a");   // String h = (String)map.get("a");  强制转换
    

     

 

 

注解

 

auto-boxing