java7新特性总结

在2011年7月28日,Oracle正式发布了Java 7。

总结的这些新特性,都是自己觉得在开发中实际用得上的。

1 switch中使用String

        java7以前在switch中只能使用number或enum。

        现在可以使用string了。

示例:

		String s = "a";
		switch (s) {
			case "a":
				System.out.println("is a");
				break;
			case "b":
				System.out.println("is b");
				break;
			default:
				System.out.println("is c");
				break;
		}

2 try-with-resources

        java7以前对某些资源的操作是需要手动关闭,如InputStream,Writes,Sockets,Sql等,需要在finally中进行关闭资源的操作,现在不需要使用finally来保证打开的流被正确关闭,现在是自动完成的,会自动释放资源,确保每一个资源在处理完成后都会关闭,就不需要我们代码去close();

        在采用try-with-resources方式后,不需要再次声明流的关闭。

        可以使用try-with-resources的资源有:

        任何实现了java.lang.AutoCloseable接口和java.io.Closeable接口的对象。为了支持这个行为,所有可关闭的类将被修改为可以实现一个Closable(可关闭的)接口。

public interface Closeable extends AutoCloseable
public abstract class Reader implements Readable, Closeable

        如果在try语句中写入了没有实现该接口的类,会提示:

The resource type File does not implement java.lang.AutoCloseable

示例:

		OutputStream fos = null;
		try {
			fos = new FileOutputStream("D:/file");
		} finally {
			fos.close();
		}

java7以后:

		try(OutputStream fos = new FileOutputStream("D:/file");){
			// 不需要再次指明fos.close();
		}

3 捕获多个异常

        java7以前在一个方法抛出多个异常时,只能一个个的catch,这样代码会有多个catch,显得很不友好,现在只需一个catch语句,多个异常类型用"|"隔开。

示例:

           try {
               result = field.get(obj);
           } catch (IllegalArgumentException e) {
               e.printStackTrace();
           } catch (IllegalAccessException e) {
               e.printStackTrace();
           }

java7以后:

           try {
               result = field.get(obj);
           } catch (IllegalArgumentException | IllegalAccessException e) {
               e.printStackTrace();
           }

4 泛型实例化类型自动推断

        运用泛型实例化类型自动推断,对通用实例创建(diamond)的type引用进行了改进

示例:

List<String> list = new ArrayList<String>();

java7以后:

List<String> list = new ArrayList<>();

5 增加二进制表示

        Java7前支持十进制(123)、八进制(0123)、十六进制(0X12AB)

        Java7增加二进制表示(0B11110001、0b11110001)

示例:

		int binary = 0b0001_1001;
		System.out.println("binary is :"+binary);
                binary is :25

6 数字中可添加分隔符

        Java7中支持在数字中间增加'_'作为分隔符,分隔长int以及long(也支持double,float),显示更直观,如(12_123_456)。

        下划线只能在数字中间,编译时编译器自动删除数字中的下划线。

示例:

		int intOne = 1_000_000;
		long longOne = 1_000_000;
		double doubleOne = 1_000_000;
		float floatOne = 1_000_000;
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值