写点什么

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

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

关注

评论

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

细节的问题

将军-技术演讲力教练

16.  《重学JAVA》--1.8新日期类

杨鹏Geek

Java 25 周年 28天写作 12月日更

[Pulsar] Producer 流控

Zike Yang

Apache Pulsar 12月日更

【LeetCode】换酒问题Java题解

Albert

算法 LeetCode 12月日更

保护自己电脑绝对不做黑客肉鸡

喀拉峻

网络安全 安全

反射

Nydia

模块二作业

whoami

「架构实战营」

抬头看天

xujiangniao

知识梳理

.NET 6新东西--高性能日志

喵叔

28天写作 12月日更

存量经营

张老蔫

演绎法、归纳法、辩证法

mtfelix

28天写作

Turbine

李子捌

微服务 28天写作 12月日更

学生管理系统架构文档

drizzle

「架构实战营」

HTTP超时处理

JavaEdge

12月日更

分布式锁及其实现

xcbeyond

分布式锁 28天写作 12月日更

TCP报文发送的那些事

程序员历小冰

网络 TCP/IP 28天写作 12月日更

面向WEB开发人员的Docker(七):使用 Docker 开发Node应用程序

devpoint

node.js Docker 12月日更

架构实战营 4 期第二模块作业

jialuooooo

架构实战营

性能工具之linux三剑客awk、grep、sed详解

zuozewei

Linux 性能测试 12月日更

文本编辑器GNU Nano 6.0 发布!

Ethereal

Nano

Dubbo框架学习笔记五

风翱

dubbo 12月日更

读《思辨与立场》-05批判性思维发展的四个层级

wood

28天写作 批判性思维 思辨与立场

如何在 CentOS 8 服务器上安装 ISP Config 3.2?

Ethereal

服务器 ISP CentOS 8

不太推荐 《沟通的方法》(17/28)

赵新龙

28天写作

如何在 Debian 11 上使用 Nginx 安装 HTTP Git 服务器

Ethereal

nginx git HTTP Debian 11

吹水的6大坏习惯

搬砖的周狮傅

沟通艺术

React 任务调度

贝壳大前端技术团队

前端 React

20强诞生!2021 OceanBase 数据库大赛决赛酣战在即!

OceanBase 数据库

开源 oceanbase 高校 OceanBase 数据库大赛

Go+ URL 解析教程(5.6)

liuzhen007

28天写作 12月日更

详解PON基础知识:OLT、ONU、ONT和ODN,建议收藏

Ethereal

pon 光纤 弱电工程师

47 K8S之 Ingress资源

穿过生命散发芬芳

k8s 28天写作 12月日更

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