wttttt

[Java] [Syntactic sugar]

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

 

发表于 2018-06-02 12:09  橘子不是唯一的水果  阅读(67)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2022-03-05
  • 2022-12-23
  • 2021-09-27
  • 2021-06-10
猜你喜欢
  • 2021-12-12
  • 2021-08-05
  • 2021-12-12
  • 2021-12-27
  • 2022-03-03
  • 2021-10-02
  • 2022-12-23
相关资源
相似解决方案