【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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:523364
用户头像

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

关注

评论

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

网络安全审计是什么意思?与等保测评有什么区别?

行云管家

网络安全 等保测评 网络安全审计

数字经济的主要产品及使用!

青否数字人

数字人

MediaHuman YouTube Downloader mac(YouTube视频下载工具) v3.9.9.88中文注册版

iMac小白

一次性搞定多任务!Python自动化复用浏览器技巧大揭秘

测试人

软件测试

SecGPT-Mini,一个在CPU上可体验的开源网络安全大模型

云起无垠

引领测试开发新风向:模型驱动测试的魔力

测试人

软件测试

新学期提效神器汇总!男大女大们准备好了吗?

飞桨PaddlePaddle

百度 BAIDU 百度飞桨 AI应用 飞桨星河社区

浪潮信息边缘服务器支持英特尔第五代至强处理器

财见

软件测试工作两年涨薪40%,揭秘我的学习之路!

测试人

软件测试

MediaHuman YouTube to MP3 Converter mac(YouTube音乐转MP3转换器) v3.9.9.88中文注册版

iMac小白

模型驱动测试引领测试开发新风向

霍格沃兹测试开发学社

抖音详情API:视频内容获取与解析技巧

技术冰糖葫芦

API 接口

引领测试开发新风向:模型驱动测试的魔力

测吧(北京)科技有限公司

测试

自动化测试的痛点与发展趋势

老张

DevOps 自动化测试

【教程】无法验证app需要互联网连接以验证是否信任开发者

雪奈椰子

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit

HMS Core

HarmonyOS

【愚公系列】2024远控性能大解密!5款评价最高远控软件ToDesk、TeamViewer、向日葵、Parsec、AirDroid谁与争锋?

愚公搬代码

企业数据内控安全就用行云防水堡!不容错过!

行云管家

数据安全 数据泄露 企业数据 防水堡

下一代积木式智能组装编排,集成开发效率10倍提升

华为云开发者联盟

开发 华为云 华为云开发者联盟 DTSE Tech Talk

工作两年涨薪40%,揭秘我的学习之路!

霍格沃兹测试开发学社

5月17-19日 上海线下 · CSP直通车训练营 · CST导师亲授【名额有限,先到先得】

ShineScrum捷行

ScrumMaster 敏捷教练认证 上海线下、 Scrum专业认证

低代码平台与MES:智能制造的新篇章

万界星空科技

制造业 低代码平台 mes 万界星空科技 机器人组装行业

下一代积木式智能组装编排,集成开发效率10倍提升

华为云PaaS服务小智

华为云

大模型在产品原型生成中的应用实践

得物技术

大前端

2024-03-06:用go语言,每一种货币都给定面值val[i],和拥有的数量cnt[i], 想知道目前拥有的货币,在钱数为1、2、3...m时,能找零成功的钱数有多少? 也就是说当钱数的范围是1~

福大大架构师每日一题

福大大架构师每日一题

Ableton Live 12 Suite for mac(音乐制作工具) v12.0中文激活版

iMac小白

测试人生 | 工作两年涨薪40%,揭秘我的学习之路!

测吧(北京)科技有限公司

测试

新闻网站封锁AI爬虫 AI与新闻媒体博弈继续

郑州埃文科技

AI 爬虫

从Language Model到Chat Application:对话接口的设计与实现

阿里技术

application Language 设计与实现 对话接口

MySQL数据库中SQL语句分几类?

小魏写代码

电子元器件行业MES系统能解决哪些管理难题?

万界星空科技

工业互联网 制造业 电子元器件 mes 万界星空科技

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