switch 支持 String 做参数
switch
语句支持了对字符串String
的判定,这对于开发来说是非常便利的改进。
public class SwitchTest {
public static void switchTest(String arg) {
switch (arg) {
case "Lisa":
System.err.println("我是Lisa!");
break;
case "Mike":
System.err.println("我是Mike!");
break;
default:
System.err.println("我是你的唯一!");
break;
}
}
public static void main(String[] args) {
switchTest("Lisa");//我是Lisa!
switchTest("Mike");//我是Mike!
switchTest("");//我是你的唯一!
}
}
二进制整型字面值
在旧版的 Java 中,字面值只支持十进制、八进制、十六进制3种类型,在Java7中又多了一种二进制,它的前缀是0B
,配合需要位运算的场景特别合适,尤其是跟下划线组合使用:
int i = 0B1010_1100_0010_1100_0000_1111_0001_1011;
数字常量 - 新形式写法
这个特性的引入对我们阅读数字有很好的帮助。可以使用下划线去划分,这样更加便于阅读。这个下划线不是说一定要 3 位数字划分一次,多少位都可以,可以根据个人阅读习惯,编译的时候JVM会将下划线去掉。
long amount = 123000555999666L;
//JDK7特性写法
long amount1 = 123_000_555_999_666L;
注意:只能将下划线置于数字之间。
以下地方不能放置下划线:
- 数字的开头或结尾;浮点数中靠近小数点的位置;
- F 或 L 后缀之前期望放置一串数字的地方。
try-with-resources
在Java编程过程中,如果打开了外部资源(文件、数据库连接、网络连接等),我们必须在这些外部资源使用完毕后,需要手动关闭它们。因为外部资源不由JVM管理,无法享用JVM的垃圾回收机制,如果我们不在编程时确保在正确的时机关闭外部资源,就会导致外部资源泄露,紧接着就会出现文件被异常占用,数据库连接过多导致连接池溢出等诸多很严重的问题。
传统做法:
FileInputStream inputStream = null;
try {
inputStream =