AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Project Coin 发布语言变化最终列表

  • 2009-09-08
  • 本文字数:1010 字

    阅读完需:约 3 分钟

近日 Joseph Darcy 发布了 Project Coin 的最终列表,宣布了即将发布的 JDK 7 中对 Java 语言所做的改进。这些改进是:

  1. 自动化的资源管理。提供一种处理资源回收的机制:类似于 C# using 声明的 ARM(Automatic Resource Management)块,但形式上却是基于 try 声明。这样,using 声明只能处理单一资源,而 ARM 却能在块的范围内处理多种资源。
  2. 更好的整型字面值。为数字增加二进制字面值以及下划线分隔符支持以增加可读性,例如:
    long creditCardNumber = 1234_5678_9012_3456L
    如果能及时找到解决方案还会提供对无符号字面值处理方式的改进。
  3. 集合字面值。通过类似于数组初始化器的语法为不变的list、set 以及map 字面值提供支持,同时还会为 list 与 map 的索引访问提供支持。
  4. 改进的用于泛型实例创建的类型推断。使用有限的类型推断进行类实例创建需要为构造方法显式声明参数化类型,然而这些类型却可以从上下文中推断出来,然后它们就会被一个空的类型参数集合替换掉。这样,相对于:
    Map<String, List> anagrams = new HashMap<String, List>();
    我们可以这样写:
    Map<String, List> anagrams = new HashMap<>();
  5. 对 JSR 292 的语言支持。包括 invokeDynamic 指令、方法句柄调用、某些不严格的约定以及外来的标识符。
  6. 简化的可变参数方法调用。当方法将可变参数与非具化的数组类型组合在一起时就会产生警告,现在将该警告由调用处转移到了方法声明处。
  7. 可以在 switch 语句中使用 String

以上大部分提案都将于今年 10 月底反映到 JDK 7 的 Mercurial 仓库中。

还有三个提案尚未最终发布,它们是:改进的Java 异常处理 Elvis 与其他 Null-Safe 操作符以及大数组
Joseph Darcy说到

“对于 Java 语言来说,改进的异常处理很值得我们期待,然而它对于类型系统来说是个风险,我们尚未评估是否有足够的资源以在 JDK 7 中实现该特性。我倒是期望能在未来重新考虑该特性以促进语言的不断发展。虽然 Elvis 与其他相关的操作符在 Groovy 中很有用,但由于 Groovy 与 Java 的差别,比如原生类型的存在以及与装箱 / 拆箱的交互使得这些操作符对 Java 意义不大了。JDK 7 将提供其他方式来简化空操作(null-handling)的烦恼,如 JSR 308 的空检查。毫无疑问,天生支持 32 位以上条目的集合一直是大家所梦寐以求的。对集合的语言支持会开发一个程序库来实现这一点,这样平台就可以直接处理大的数据结构了。”

查看英文原文: Project Coin Announces Final List of Small Language Changes

2009-09-08 01:231801
用户头像

发布了 88 篇内容, 共 269.1 次阅读, 收获喜欢 8 次。

关注

评论

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

加入MOVE,一起体验Move2Earn的运动乐趣

股市老人

C++中字符三兄弟(WCHAR、CHAR、TCHAR)

liuzhen007

c c++ 5月月更

5.17电信日 | 融云积极消除数字鸿沟 助力打造数字化新基建

融云 RongCloud

架构实战营模块一作业

融冰

ffmpeg封装格式转换

Loken

音视频 5月月更

druid 源码阅读 7——keepAlive实现方式

张大彪

Flutter StatefulBuilder 示例

坚果

5月月更

如何给 kitex 贡献单元测试

baiyutang

开源 字节跳动 微服务 5月月更 kitex

Druid连接池源码阅读07

石小天

贝叶斯简介

5月月更

架构训练营第一次作业

地下地上

网站开发进阶(七十一):css伪元素::before和::after用法详解

No Silver Bullet

css3 5月月更 伪元素 伪类

听说你在写Python爬虫,你对浏览器的开发者工具了解多少?【多图预警】

梦想橡皮擦

5月月更

MAE自监督算法介绍和基于EasyCV的复现

阿里云大数据AI技术

深度学习 算法 自监督学习

直播预告丨OpenHarmony标准系统多媒体子系统之视频解读

OpenHarmony开发者

OpenHarmony 多媒体

springboot启动失败的问题('hibernate.dialect' not set)

程序员欣宸

Java 5月月更

C语言打印程序行号、日期方便调试程序

DS小龙哥

5月月更

比特币跌破27000美元!币圈大佬损失惨重,最高身价缩水近9成

CECBC

【C 语言】指针 Three 之 [赋值语句的方法、指针变量的大小、上述总结、 * 和 & 认识、对解引用(*)认识]

謓泽

5月月更

架构实战营-第一周

Asura

揭秘华为云GaussDB(for Influx):数据直方图

华为云开发者联盟

数据库 华为云 GaussDB(for Influx) 数据直方图 直方图

7件大事回顾加密史上最疯狂一周

CECBC

使用 nginx 配置项的好习惯

liuzhen007

nginx 5月月更

FFmpeg安装

Loken

音视频

区块链有什么价值?

CECBC

有了这10个GitHub仓库,开发者如同buff加持

华为云开发者联盟

GitHub 开源 Web 软件开发

Go 语言入门很简单:AES加密和解密

宇宙之一粟

AES Go 语言 5月月更

设计模式之观察者模式

乌龟哥哥

5月月更

融云 x Zervo:打造欧美 Z 世代社交的「主题幻想世界」

融云 RongCloud

druid源码学习七

Nick

【愚公系列】2022年05月 二十三种设计模式(十六)-迭代器模式(Iterator Pattern)

愚公搬代码

5月月更

Project Coin发布语言变化最终列表_Java_Charles Humble_InfoQ精选文章