硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

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

关注

评论

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

大语言模型评估全解:评估流程、评估方法及常见问题

Baihai IDP

人工智能 白海科技 LLMOps 大模型评估 企业号 7 月 PK 榜

IPD(集成产品开发)跟敏捷、DevOps一样吗?有什么区别?

禅道项目管理

DevOps 敏捷开发 IPD

龙蜥社区首次突破!高性能存储 SIG 现身 LSF/MM/BPF 2023 分享 EROFS 的演进路线

OpenAnolis小助手

开源 高性能存储 龙蜥社区 sig EROFS

虚拟平台中的“有意”/“无意”故障注入

DevOps和数字孪生

故障注入 虚拟平台

WorkPlus AI助理:结合ChatGPT对话能力与企业数据,助力企业级AI构建!

BeeWorks

Flink 在新能源场站运维的应用

Apache Flink

大数据 flink 实时计算

华为云CodeArts Check IDE插件体验之旅

云计算 软件开发 华为云 华为开发者大会2023 代码检查

联通 Flink 实时计算平台化运维实践

Apache Flink

大数据 flink 实时计算

运输车辆超时停车预警难?TDengine 流式计算助力吉科软轻松解决

爱倒腾的程序员

数据库

带你掌握利用Terraform不同数据源扩展应用场景

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 7 月 PK 榜

测试工程师如何做到初级测试管理(个人思考)?

团队管理 测试 测试管理 测试部门职责

在 Go 中如何编写测试代码

江湖十年

golang 测试 后端 单元测试 go语言

当代数据库与数据管理技术的先驱者之一 Mohan 教授指导 IoTDB 时序数据库 Timecho 研发团队

Apache IoTDB

IoTDB Apache IoTDB

关于 Elasticsearch 不同分片设置的压测报告

极限实验室

索引 压测 ES

私有化的即时通讯软件能给企业带来什么好处?

BeeWorks

如何使用openEuler WSL sideload

openEuler

Linux 前端 操作系统 wsl openEuler

“数字孪生”:为什么要仿真嵌入式系统?

DevOps和数字孪生

数字孪生 嵌入式系统仿真

虚拟ECU实践:汽车发动机控制器仿真

DevOps和数字孪生

软件定义汽车 虚拟ECU

虚拟ECU:助力汽车故障诊断

DevOps和数字孪生

软件定义汽车 虚拟ECU

火山引擎A/B测试“广告投放实验”基础能力重构实践 (DataFunTalk渠道)

字节跳动数据平台

Leangoo领歌敏捷工具提供哪些Scrum敏捷培训?

顿顿顿

敏捷开发 敏捷开发管理工具 scrum工具 scrum培训 敏捷培训

什么是“软件定义汽车”

DevOps和数字孪生

软件定义汽车 汽车仿真

MobPush:Android客户端SDK厂商通道回执配置指南

MobTech袤博科技

程序员 前端 sdk 客户端开发 Andrdoid

河南理工大学高校专区入驻飞桨AI Studio,优质教育资源等你来学!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

Python如何获取页面上某个元素指定区域的html源码?

Python 源码 HTML5, CSS3

每日站会如此简单,为什么总是开不好?

敏捷开发

项目管理 Scrum 敏捷开发 每日站会

享受云原生技术红利,大数据不应该被落下

智领云科技

云原生 Kubernetes 集群 云原生大数据平台 智领云

区块链第一代系统——比特币概念及业务流程

TiAmo

比特币 区块链

红队攻防之JS攻防

权说安全

网络攻防

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