java7新特性

1.二进制数字表达方式

原本整数(以60为例)能够用十进制(60)、八进制(074)、
十六进制(0x3c)表示,唯独不能用二进制表示(111100),
Java 7 弥补了这点。

示例

int a = 0b111100;
log("二进制数 -> " + a);
// 输出
二进制数 -> 60

2.使用下划线对数字进行分隔表达

原本表示一个很长的数字时,会看的眼花缭乱(比如1234567),
Java 7 允许在数字间用下划线分隔(1_234_567),为了看起来更清晰。

示例

int b = 1_000_0000;
log("长数字 -> " + b);
// 输出
长数字 -> 10000000

3.switch支持字符串变量

原本 Switch 只支持:int、byte、char、short,现在也支持 String

示例

String str = "A";
switch (str) {
case "A":
	log("A");
	break;
case "B":
	log("B");
	break;
case "C":
	log("C");
	break;
case "D":
	log("D");
	break;
default:
	log("default");
}

4.泛型的菱形语法

示例

// 旧的写法
Map<String, String> map = new HashMap<String, String>();
// 新的写法
Map<String, String> map1 = new HashMap<>();

5.自动关闭资源的try try-witch-resources

try中会打开的资源(这些资源必须实现Closeable或AutoCloseable)
声明在圆括号内

示例

// 旧的写法 通常在finally里面手动关闭流
FileInputStream fis = null;
try {
	fis = new FileInputStream("1.txt");
} catch (FileNotFoundException e) {
	e.printStackTrace();
} finally {
	if (fis != null) {
		try {
			fis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
// 新的写法 自动关闭流
try (FileInputStream fis1 = new FileInputStream("1.txt")) {
	// TODO
} catch (NumberFormatException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}

6.多异常捕获

如果在try语句块中可能会抛出 IOException、
NumberFormatException异常,
因为他们是检验异常,因此必须捕捉或抛出。

示例

try (FileInputStream fis1 = new FileInputStream("1.txt")) {
	// TODO
} catch (IOException | NumberFormatException e) {
	e.printStackTrace();
}

7.增强性throws声明

原本如果在try中抛出 IOException,
以catch(Exception e)捕捉,且在catch语句块内再次抛出这个异常,
则需要在函数声明处:throws Exception,
而不能 throws IOException,因为Java编译器不知道变量e
所指向的真实对象,而Java7修正了这点。

示例

try (FileInputStream fis1 = new FileInputStream("1.txt")) {

} catch (Exception e) { // Exception e = new FileNotFoundException();
	// TODO
	throw e;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值