Java 语法糖

语法糖:Syntactic sugar/ Syntax sugar

语法糖使得程序员更容易编写程序,更清晰准确表达业务逻辑。
语法糖不仅仅是语法的转换,也包括一些小的改进。
JDK2(1.1-1.4)是普及版
JDK5/6/7/8/11是长期稳定版
JDK9/10/12是短期版本

import 导入程序所需要的的类
import static 导入一个类的静态方法和静态变量

JDK5提供了不定项参数(可变参数)功能
类型后面加上三个点,如int…/double…/String…
可变参数,本质上是一个数组

自动装箱和拆箱(auto-boxing/auto-unboxing)
从JDK5开始引入,简化基本类型和对象转换的写法
基本类型:boolean/byte/char/int/short/long/float/double
对象:Boolean/Byte/Character/Integet/Short/Long/Float/Double

自动装箱和拆箱的注意事项
装箱和拆箱是编译器的工作,在class中已经添加转化。虚拟机没有自动装箱和拆箱的语句。

基本类型是内容相同,对象是指针是否相同(内存同一个区域)
基本类型没有空值,对象有null,可能触发NullPointerException
当一个基础类型与分装类进行运算时,会将封装类进行拆箱,对基础数据类型进行运算。

多个异常并列在一个catch中,多个异常之间不能有(直接/间接)继承关系,如果有,则会报错!

Java最初的设计中,接口的方法都是没有实现的,公开的。
Java8推出接口的默认方法/静态方法(都带实现)

接口的默认方法
以default关键字标注,其他的定义和普通函数一样
默认方法不能重写Object中的方法

Java 8接口的静态方法(带实现的)
该静态方法属于本接口,不属于子类/子接口
子类(子接口)没有继承该静态方法,只能通过所在的接口名来调用

Java以前一直是一种强类型的程序语言
每个变量在定义时就确定了类型
类型固定了,就不能更改
Java 10 推出var:局部变量推断
避免信息冗余
对齐变量名
更容易阅读
本质上还是强类型语言,编译器负责推断类型,并写入字节码文件,因此推断后不能更改!

var的限制
可以用在局部变量上,非类成员变量
声明时必须初始化
不能用在方法参数和返回类型上
var只在编译时起作用,没有在字节码中引入新的内容,也没有专门的JVM指令处理var

你可能感兴趣的:(Java)