笔记 _javase7 语法新特性

本贴最后更新于 2792 天前,其中的信息可能已经物是人非
  • 在 switch 语句中使用字符串

  • 数值字面量的改进

  • 优化的异常处理

非受检异常

java.lang.RuntimeException和java.lang.Error类及其子类。

受检异常

所有其它的异常类都称为受检异常。

区别

使用受检异常时的合法性要在编译时刻由编译器来检查。

异常包装

抽象层次

在抽象层次边界要把异常包装后再往上传递。

一个 catch 子句捕获多个异常

编译器做法

把捕获多个异常的catch子句转换成了多个catch子句。
  • try-with-resources 语句

    能够被 try 语句所管理的资源需要满足一个条件,那就是其 Java 类要实现 java.lang.AutoCloseable 接口,否则会出现编译错误。

  • 优化变长参数的方法调用

    一个方法使用 @SafeVarargs 注解的前提是,开发人员必须确保这个方法的实现中对泛型类型参数的处理不会引发类型安全问题。

术语

英文 中文
literal 字面量
checked exception 受检异常
unchecked exception 非受检异常
non-reifiable 不可具体化

菜鸟,菜鸟,菜鸟。
书《[201205]深入理解 Java7 核心技术与最佳实践(成富 著)》

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖
  • 受检
    1 引用 • 2 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • mike

    我用的最多就是

    try(Connection conn = ....) {
    .....
    } catch(IOException | SQLException e) {
    .....
    }

    我觉得还是直接到 8 吧,代码敲起来真的是飞起,随便秀一下😄

    final List<List<SVMTerm>> sorted = new ArrayList<List<SVMTerm>>();
    		labels.forEach((label, terms)->{
    			List<SVMTerm> sortedTopNLabel = terms.stream()
    			.sorted((a,b)->b.getChi().getValue().compareTo(a.getChi().getValue()))
    			.limit(Config.getInt("svm.chi_top_n"))
    			.collect(Collectors.toList());
    			
    			sorted.add(sortedTopNLabel);
    		});
    
    1 回复
  • damoluomu
    作者

    嗯,我先把 7 过一遍。