Java语法糖实例分析


这篇文章主要讲解了“Java语法糖实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java语法糖实例分析”吧!是由英国计算机科学家彼得约翰兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。功能和传统的fori相似代码样例输出对比0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9特性for-each从JDK5.0开始引入for-each语法更加简洁for-each可以避免语法越界错误fori可以删除元素,for-each不可以for-each遍历时候不知道当前元素的具体位置for-each只能正向遍历,不能反向遍历for-each不能同时遍历两个集合
变量的取值只在一个有限的集合里面代码样例输出样例true
false特性enum声明枚举类,且都是Enum的 子类enum内部有多少个值,就有多少个实例对象不能直接new枚举类对象除了枚举的内容 ,还可以添加属性,方法 ,构造函数构造函数只能是private类型,只能内部调用enum也继承了Enum的子类,也继承了相应方法ordinal()返回枚举值所在的索引位置compareTo()比较两个枚举值的索引位置大小toString()放回枚举值的字符串表示valueOf()将字符串初始化为枚举对象values()返回所有的枚举值
普通函数的形参列表是固定个数/类型/顺序JDK5.0提供了不定项参数(可变参数)功能代码样例输出样例1
aaa
3
aaa
bbb
ccc特性类型后面加…表示,如代码样例所示可变参数,实际上是一个数组一个方法只能有一个不定项参数,且必须位于参数列表的最后优先规则1:固定参数的方法比可变参数优先级更高优先规则2:调用语句,同时与两个带可变参数的方法匹配,则报错
import导入程序所需要的类import static导入一个类的静态方法和静态常量(JDK5.0引入)代码样例输出样例5
5特性可以省略类名,直接用静态方法具有明确特征,如有重名,需要补充类名通配符:*
在java中,基本类型放在栈里面,对象则是在堆里开辟了内存空间,把对象的引用存入栈里面,基本类型可以包含在对象里面,所以形象的形容为装箱从JDK5.0开始引入,简化了基本类型和对象转化的写法基本类型:boolean/byte/char/int/short/long/float/double对象:Boolean/Byte/Character/Integer/Short/Long/Float/Double代码样例输出样例5
5
5
5特性装箱和拆箱都是编译器的工作,在class中已经添加转化,虚拟机中没有自动拆箱和装箱的语句对于==:基本类型是内容相同,对象是指针是否相同(内存同一个区域)基本类型没有空值,对象有null,可能引发NullPointerException当一个基础数据类型与封装类型进行==,+,-,*,/运算时,会将封装类进行拆箱,对基本数据类型进行运算谨慎使用多个非同类的数值类对象进行运算
多个异常并列在一个catch中从JDK7.0Y引入,简化写法代码样例特性并列的特性不能直接有或间接有继承关系,如果有,则报错
从JDK7.0开始引入整数类型可以用二进制进行赋值代码样例输出样例33
1365
5
89503403特性避免二进制计算0b表示二进制数
从JDK7.0开始引入在数字字面量中使用下划线代码样例输出样例1201
1036
12345
30055
3.5678特性增加数字的可读性和纠错功能下划线只能出现在数字中间,前后必须有数字下划线不能拆开0x允许在二/八/十/十六进制中使用可以使用多个下划线
java最初的设计中,接口的方法都是没有实现的公开的JDK8.0推出接口的默认方法/静态方法(都带实现的),为Lambda表达式提供支持代码样例特性用default关键字标注,其他的定义和普通函数一样默认方法不能重写Object中的方法实现类可以继承/重新父接口的默认方法接口可以继承/重新父接口的默认方法当父类和父接口都有同名同参数的默认方法的时候,子类继承父类的默认方法,这样可以兼容JDK7.0以前的代码子类实现了两个接口(同名同参),那么编译失败,必须在子类中重写这个default方法
JDK8.0推出带实现的静态方法代码样例特性该静态方法属于本接口,不属于子类/子接口子类(子接口)没有继承该静态方法,只能通过所在的接口名来调用
JDK9.0推出接口的私有方法代码样例特性解决多个默认方法/静态方法的内容重复问题私有方法属于本接口,只能在本接口内使用,不属于子类/子接口子类(子接口)没有继承该私有方法,也无法调用静态私有方法可以被静态/默认方法调用,非静态私有方法被默认方法调用
程序如果打开外部资源,那么使用后必须正确关闭考虑异常因素,java提供try-catch-finally进行保证JDK7.0提供try-with-resour,比try-catch-finally更加方便代码样例输出样例18
关闭成功特性资源对象必须实现AutoCloseable接口,即实现close方法在try-catch块执行后会自动执行close方法JDK7要求定义临时变量接免费云主机域名
Test OpenResource = new Test();
try(Test TT = OpenResource)…JDK9不在要求定义临时变量,可以直接使用
Test OpenResource = new Test();
try(OpenResource)…
JDK8及以前,ResourceBundle默认以ISO-8859-1方式加载文件JDK9及以后,ResourceBundle默认以UTF-8方式加载文件java以前一直是一种强类型的语言每个变量在定义时候就确定了类型JDK10推出了var:局部变量推断代码样例输出样例true
true
true特性避免了信息冗余对齐了变量名更容易阅读var可以用在局部变量上,非类成员变量var可以用在for/for-each循环中声明时必须初始化不能用在方法形参和返回类型大面积滥用会导致代码整体阅读性变差var只在编译时起作用,没有在字节码中引入新的内容,也没有专门的JVM指令处理war
JDK12推出代码样例感谢各位的阅读,以上就是“Java语法糖实例分析”的内容了,经过本文的学习后,相信大家对Java语法糖实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: 基于Spring Boot的线程池监控问题如何解决

这篇文章主要介绍“基于SpringBoot的线程池监控问题如何解决”,在日常操作中,相信很多人在基于SpringBoot的线程池监控问题如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于SpringBoot的线程池监控问…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/20 21:04
Next 08/20 21:05

相关推荐