zoukankan      html  css  js  c++  java
  • Java语言中的一些语法糖

    1.概念

    语法糖:计算机语言中添加的某种语法,这种语法对语言功能没有影响,但是更方便程序员使用,简而言之就是语法糖让可以让代码更简洁,方便程序员编程。因为有了语法糖,所以在编译阶段就有了解糖的步骤。

    2.具体实例

    (1)java中基本数据类型与包装器之间的自动装箱与拆箱

      如 int 基本类型自动装箱为Integer对象时,是通过在编译阶段使用Integer.valueOf()来实现。

      这里有一个知识点是Integer对象有一个缓存值区间[-128,127],及Integer a = 100 与 Integer b = 100此时a与b为同一个对象。

    (2)java中switch语法中参数为枚举、string对象

      这个语法糖在编译阶段利用对象的hashcode和equals实现

    (3)增强 for 循环 (for (String s : strs))

      这个语法糖编译器编译为普通for循环实现

    (4)泛型

      编译阶段用到字节码共享方式,即通过类型擦除方法使多个泛型类型实例共用一个字节码的方式来实现。

    (5)枚举

      在编译阶段将枚举类编译为一个继承EMUM类的 final 类来实现

    (6)断言

      在java1.4中引入,默认不启动断言检查,如开启需用 -enableassertions 或 -ea。

    (7)数值字面量

      java1.7中,不管是整型还是浮点数,都允许在数值中间用下划线“-”,是因为在编译阶段自动忽略下划线。

    (8)try-with-resource

      java1.7引入,如文件读写,编译器在编译阶段自动关闭资源。

    (9)Lambda表达式

      实现方式依赖jvm底层提供的lambda相关api。

  • 相关阅读:
    WPF e.Systemkey的一个坑
    Codeforces Round #375 (Div. 2) ABCDE
    主席树模板(poj2104)
    hdu5909-Tree Cutting(树形dp)
    HYSBZ 2243-染色 (树链剖分)
    POJ3237-Tree (树链剖分,线段树区间更新+点更新+区间查询)
    POJ2763-Housewife Wind(树链剖分)
    2016东北四省赛 小结
    HDU3966-Aragorn's Story(树链剖分)
    POJ 2749--Building roads(2-SAT)
  • 原文地址:https://www.cnblogs.com/quxiangxiangtiange/p/12297598.html
Copyright © 2011-2022 走看看