NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Java SE 7 发布:2006 年 12 月后的首次重要更新

  • 2011-07-31
  • 本文字数:1631 字

    阅读完需:约 5 分钟

Java 7 于 7 月 28 日开始提供下载,这是 Oracle 收购 Sun 之后 Java 平台的首次发布。该版本包含了多个对语言的变更,虽然很小但却深受欢迎,还有新的文件 API 和 Fork/Join 框架,并改善了 JVM 的动态语言支持。

Java 7 之前是 Project Coin( JSR 334 )的一部分,它是 JSR 201 的继任者,通过一些能改善生产率的小变化来增强 Java 语言。尤其值得一提的是引入了“try-with-resources”,它和 C#中的 using 语句很像,不过是基于 try 语句的形式,using 语句只能处理单个资源,而 try-with-resources 可以在一个块中处理多个资源。

关于异常处理有两个变化。首先,一个 catch 块中可以处理多个指定类型的异常。Java 7 对 try 的 catch 子句的语法做了扩展,能接受一系列异常类型,在声明异常参数的地方用“或”操作符(即“|”)来进行分隔。其次,如果异常参数没被修改,而且在 catch 块里又被重新抛了出来,现在你不需要在方法签名上添加该异常了(译注:此处表达的含义不太准确,其实是说在 catch 块中如果重新抛出该异常,现在会有更细致的类型检查,详见官方文档)。

其他语言变更包括:

  1. switch 语句包含了对字符串的支持。
  2. 为了增强可读性,数字增加了二进制表示和下划线分隔符――例如 long creditCardNumber = 1234_5678_9012_3456L
  3. 简化了 Varargs 方法的调用:对编译器的警告做了调整,以前在结合了 Varargs 和非具体化数组类型的方法被调用时会有警告,现在这个警告从调用方移到了方法声明上。
  4. 改善了针对泛型实例创建(< > 或菱形)的类型推断:在类实体创建时使用有限类型推断,虽然需要显式声明参数类型,但从上下文中能把它们确定下来,这样一来就可以直接使用空的类型参数集合了。以前要这么写:Map<String, List<String>> anagrams = new HashMap<String, List<String>>(); 现在可以这么写:

Map<String, List<String>> anagrams = new HashMap<>();

引入了两个主要的新 API。第一个是 JSR 203 ,针对文件系统访问、可扩展异步 I/O 操作、多播数据包、Socket 通道绑定和配置添加了新的 API。企业开发者特别感兴趣的是增加了真正的异步 I/O API,这对需要跨多连接的低延时、高吞吐的高端服务器应用程序来说尤为重要。JSR 203 还为 Java 添加了一个真的文件系统 API,提供了对某些 OS 特定功能的支持。例如,你可以在支持符号链接的系统中创建符号链接。但这一特性也备受争议,虽然 JSR 203 提供了可运行于所有平台、支持平台特定特性的通用 API,但它并非严格意义上的“一次编写到处运行”。

第二个新 API 是 Fork/Join 框架( JSR 166 的一部分),起初是计划放在 Java 5 里的。它为开发者提供了一种机制,可以将问题拆解为多个任务,在任意数量的处理器核心上并行执行。

此外,平台中还有新的网络和安全特性,对国际化的扩展支持中还包括了 Unicode 6.0 支持。

最后,Java SE 7 使用了 InvokeDynamic 关键字来标记 Java 诞生后的首个新字节码指令。InvokeDynamic 添加了一种新的调用模式和链接模式,可以通过编程支持用户定制的规范。特别是在缺乏静态类型信息的方法调用中,它能支持高效、灵活的方法执行,这大幅改善了动态语言的性能,例如运行于 JVM 之上的 JRuby 和 Jython。

新特性受到了大家的欢迎,但最重要的是这个新版本终于发布了。Sun 和 Apache Software Foundation 的长期分歧,还有 Sun 最后的日子里的领导和资源问题,都是导致两个版本之间超长间隔时间的原因。正如 Mark Reinhold 在最近的采访中所说的:

… 出于商业和政治原因,Java 曾进入短期的休眠状态。但现在我们回来了,将要发布 Java 7,这不是一个革命性的版本,而是一个进化版本,其中不乏一些好内容。

对如何着手使用 Java SE 7 感兴趣的开发者不妨使用一下 NetBeans IDE 7.0 IntelliJ IDEA 10.5,它们都支持 Java SE 7 平台的最新特性。 Eclipse Indigo 同样也有 beta 级别的 Java 7 支持,Oracle JDeveloper 预计在今年下半年会有一个支持 JDK 7 的版本。

查看英文原文: Java SE 7 Released: First Major Update Since December 2006

2011-07-31 00:523372
用户头像

发布了 135 篇内容, 共 58.7 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

易观分析联合中小银行联盟发布海南数字经济指数,敬请期待!

易观分析

金融 海南数字经济 易观分析

产品说明丨如何使用MobPush快速创建应用

MobTech袤博科技

ios android sdk mobpush 智能推送

leetcode 739. Daily Temperatures 每日温度(中等)

okokabcd

LeetCode 数据结构与算法 栈和队列

兆骑科创高层次人才创业大赛平台,投融资对接,双创服务

兆骑科创凤阁

fastposter v2.9.1 程序员必备海报生成器

物有本末

海报生成器 海报编辑器 图片生成 二维码生成

“低代码”编程或将是软件开发的未来

优秀

低代码

借数据智能,亚马逊云科技助力企业打造品牌内生增长力

Lily

缺少比较器,运放来救场!(运放当做比较器电路记录)

矜辰所致

电路设计 8月月更 比较器 运放

MySQL 原理与优化:Update 优化

老崔说架构

易观千帆银行用户体验中心:聚焦银行APP用户体验

易观分析

金融 银行 用户体验

避免 10 大 NGINX 配置错误(上)

NGINX开源社区

nginx 架构 配置 配置分析 故障排除

万物互联,车联网数字化需要快速引入小程序生态

Speedoooo

小程序 车联网 IoT 小程序生态

等保2.0一个中心三重防护指的是什么?如何理解?

行云管家

等保 等级保护 等保2.0 安全等级保护

符合信创要求的堡垒机有哪些?支持哪些系统?

行云管家

信创 堡垒机 信创产业

mysql进阶(三十三)MySQL数据表添加字段

No Silver Bullet

MySQL 8月月更 添加字段

兆骑科创创业赛事活动发布平台,创业赛事,项目路演

兆骑科创凤阁

头脑风暴:目标和

HelloWorld杰少

数据结构 算法 LeetCode 8月月更

一文带你了解 HONOR Connect

荣耀开发者服务平台

开发者 教程 荣耀 honor

友邦人寿可观测体系设计与落地

阿里巴巴云原生

阿里云 云原生 可观测 合作案例 友邦人寿

网络安全——XSS之被我们忽视的Cookie

Jack20

网络安全

2022年中国软饮料市场洞察

易观分析

软饮料 市场分析

在本地利用虚拟机快速搭建一个小型Hadoop大数据平台

Jack20

云计算 大数据

海外邮件发送指南(二)

极光JIGUANG

消息推送 邮件

数据产品经理那点事儿 一

松子(李博源)

数据产品经理

用好 DIV 和 API,在前端系统中轻松嵌入数据分析模块

葡萄城技术团队

前端 嵌入式 BI 可视化数据

容器化 | 在 S3 实现定时备份

RadonDB

MySQL 数据库 Kubernetes

开源一夏 | POND:高效的 Python 通用对象池技术

Andy

Python 缓存 开源 算法 对象池

1W字详解线程本地存储 ThreadLocal

了不起的程序猿

Java JAVA开发 java程序员 java编程

NFT数字藏品——数字藏品发行平台开发

开源直播系统源码

软件开发 数字藏品 数字藏品系统软件开发

社区动态——恭喜海豚调度中国区用户组新晋 9 枚“社群管理员”

Apache DolphinScheduler

智为链接,慧享生活,荣耀智慧服务,只为 “懂” 你

荣耀开发者服务平台

开发者 安卓 荣耀 honor

Java SE 7发布:2006年12月后的首次重要更新_Java_Charles Humble_InfoQ精选文章