Java技术,IBM风格: Java技术的新纪元

预计于今年秋天将最终发布的 Java 平台最新更新意义重大且倍受期待。虽然尚未通过 Java Community Process (JCP) 正式创建 Java 7 平台 Java Specification Request (JSR),并且最终特性集仍然未知,但 Oracle 推出的 Early Access 下载以及 Oracle 团队的公开声明为我们理解 Java SE 7 的内容提供了一些帮助。

预计特性分为以下四类:

非 Java 语言支持

“易于开发” 更新

模块化支持

可伸缩性更新

非 Java 语言支持和 JSR 292

Java 7 将提供一些增强,可允许动态类型语言的编译器实现程序更加轻松地为 Java 运行时生成实现,并允许这些实现以更高的性能运行。JSR 292 是变化的推动力。它引入了新的字节码和一系列新的 Java 类。

大多数情况下,Java 语言是强类型的,这需要指定在方法中传递或返回的参数类型。但是,在字节级,Java 则更加偏向于弱类型:操作数栈中的变量仅在属于相关原始类型或者一般为对象引用时才需要指定类型。在几乎所有情况中,字节级都使用弱类型。方法调用是一种例外情况,它会强制使用强类型 — 也就是说,调用方法时将使用它的完整签名,这包括参数和返回类型。在这种情况下,需要使用已知 Java 类型对 Java 方法进行调用。这会对动态语言造成问题,比如 Ruby、Python 和 Groovy,因为它们是动态类型(类型仅在运行时为可知)。

可以采用一些机制(通常基于反射或使用生成的调用程序)来避免这些问题并允许在 JVM 上运行动态语言,但它们会受到显著的性能影响。JSR 292 的引入旨在通过添加新 Java 字节码 invokedynamic 以调用动态方法,并结合 Java 语言关联机制来处理允许在运行时重写方法结构,来解决这些问题。

“易于开发” 特性

与 Java 平台之前的发行版相同,许多新语言特性将帮助简化常用结构所需的语法。

Project Coin

Project Coin 涵盖众多小变化(coins),旨在降低编写简单任务的复杂度,并改善生成代码的可读性。

switch 语句中的 String
在 Java 7 之前的发行版中,您无法在 switch 语句中使用 String 或 Object。这意味着对 String 执行 switch 式语句的唯一方法是使用一系列 if-then-else 语句或者将 String 转换为原始类型或 enum 类型。String 在 switch 语句中的使用意味着以下简单结构现在已经合法:

switch (myString) {
         case "one": <do something>; break;
         case "red": <do something else>; break;
         Default: <do something generic>;
}

改善泛型实例创建的类型推断
Java 5 引入了泛型,这使它能够对实例化过程中对一般集合类应用参数化类型,从而实现编译时安全检查。但是,在实现中,类型参数会有不必要的重复,例如:

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

改进后的类型设置更改允许推断第二个 <> 结构:

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

时间: 2024-08-02 15:28:33

Java技术,IBM风格: Java技术的新纪元的相关文章

Java技术,IBM风格: IBM Developer Kit简介

针对 Java 平台 5.0 版本的 IBM Developer Kit 标志着显著的进步,它在语言特性和底层执行技术方面有重大改进.本文是一个分 5 部分的文章系列的第一篇,概述了 IBM 对它的虚拟机技术所做的一些主要改变和改进,包括传统的垃圾收集.共享类数据,以及在监视和调试工具及 API 方面的改进.但是,在讨论 IBM 实现的改进之前,我们先看看 Java 5.0 本身的改进. Java 5.0 的改进 自从引入 Java 2 平台以来,Java 2 Standard Edition(

PHP、JAVA及.NET三种技术的区别

有朋友在问这方面的问题,整理一下给大家帖出来,供初学者在选择技术时有一个参考. 三种编程技术各有优势,我们大概可以从语言.平台这二点来区分: 一.语言: PHP:PHP产生与1994年,其语法混合了C.Java.Perl 和他自创的一些编程语法:PHP是嵌入在HTML中执行的:它也是一种解释性语言.早期的PHP并非完全的面向对象编程语言,到了PHP4以后的版本才开始有了面向对象的概念. JAVA:JAVA产生与1995年,JAVA语言和JAVA平台统称为JAVA:它语法与C语言和C++语言很接近

浅析PHP、JAVA、.NET三种技术的区别

陆续有初学者朋友在问这方面的问题,小编特此整理了其各自的特点,总体来说,三种编程技术各有优势,大体上可以从语言.平台这二点来区分: 一.语言: PHP:PHP产生与1994年,其语法混合了C.Java.Perl 和他自创的一些编程语法:PHP是嵌入在HTML中执行的:它也是一种解释性语言.早期的PHP并非完全的面向对象编程语言,到了PHP4以后的版本才开始有了面向对象的概念. JAVA:JAVA产生与1995年,JAVA语言和JAVA平台统称为JAVA:它语法与C语言和C++语言很接近,并且JA

【技术贴】java插入mysql中文乱码解决|java插入mysql数据库显示问号?

[技术贴]java插入mysql中文乱码解决|java插入mysql数据库显示问号?   在你要连接到mysql 的代码里写上?useUnicode=true&characterEncoding=UTF-8" 比如 "jdbc:mysql://localhost:3306/chenluancl1?useUnicode=true&characterEncoding=UTF-8", "root","密码"

jna java c++ dll-最近用JNA技术,实现java调用C++的DLL,如何用java模拟c++的链表结构体。

问题描述 最近用JNA技术,实现java调用C++的DLL,如何用java模拟c++的链表结构体. C++结构体 struct CUser_DataStruct { char pKKSCoding[128]; //标签点Kks编码 DWORD time; //UTC时间 WORD millisecond; //毫秒 int nDataState; //数据状态 double dValue; //数值 CUser_DataStruct* pNext; //指向下一个数据节点的指针 }; C++的入

公共技术点之 Java 反射 Reflection

转发自  :http://a.codekk.com/detail/Android/Mr.Simple/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20Java%20%E5%8F%8D%E5%B0%84%20Reflection 本文为 Android 开源项目源码解析 公共技术点中的 Java 反射 部分 分析者:Mr.Simple,校对者:Trinea,校对状态:未完成 1. 了解 Java 中的反射 1.1 什么是 Java

14位IT高管及技术大牛谈Java的生态系统

为了收集IT界对Java生态系统的见解,<DZone's Java Ecosystem research guide>收集了14位熟悉Java生态系统的高管及技术大牛的对话. 参加对话的IT大牛名单如下: Joel Depernet, E.V.P. Global Research and Development, Axway 公司 Sacha Labourey, CEO和创始人, CloudBees 公司 Rick Reich, CEO, Development Heroes 公司 Asad

转Java技术:了解Java,便了解了微软.NET

了解Java,便了解了微软.NET www.javaunion.org  2001-3-12 15:39:21 人们对于美国微软在经过精心策划后于6月宣布的"Microsoft.NET"的设想是见仁见智.在传媒中"目前还很难说"的反应居多.实际上,由于具体产品开始出笼还是2-3年以后的事,现在说三道四确实为时尚早. 这里有一把可以用来快速理解Microsoft.NET的钥匙.那就是先了解Java技术.这是因为微软自己就说过,"只要知道Java就可以更快地理

如何使用Java测试IBM Systems Director的REST API

本教程介绍了有关使用 Java 代码自动化 IBM Systems Director 的 REST API 测试的基本步骤.技巧和窍门. 在开始之前 了解可从本教程中获得的预期内容,以及如何充分利用本教程. 关于本教程 IBM Systems Director 支持三种类型的接口:http://www.aliyun.com/zixun/aggregation/18378.html">图形用户界面 (GUI).命令行界面 (CLI) 和使用 RESTful webservices 的应用程序