Java 语法糖定义
语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin(彼得·兰丁) 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用,当然也仅仅是方便程序员的使用,因为java虚拟机并不支持语法糖,因此在语法糖在编译阶段就被还原成简单的基础语法结构。
语法糖就是对现有语法的一个封装。简而言之,语法糖让程序更加简洁,有更高的可读性。
解语法糖
语法糖的存在主要是方便开发人员使用。但是,Java虚拟机并不支持这些语法糖。这些语法糖在编译阶段就会被还原成简单的基础语法结构,这个过程就是解语法糖。
因此,Java中的语法糖只存在于编译期,在编译器将 .java 源文件编译成 .class 字节码时,有一个步骤就是调用desugar(),这个方法就是负责解语法糖而实现的。
如果将语法糖先编译后(解语法糖)在反编译成.java文件,那么所写的语法糖就不会存在了。
Java 中最常用的语法糖
switch语句支持String与枚举、
泛型和类型擦除
自动装箱与拆箱
方法变长参数
枚举
内部类
条件编译
断言
数值字面量
增强for循环
try-with-resources语句
Lambda表达式