4

几年后,我将再次进入 Java 开发领域。我使用的语言版本是 1.4.2。我知道从那时起语言发生了重大变化,我正在寻找一个网站或一本书来详细介绍这些内容。至少,我正在寻找一种资源,该资源表明在哪个版本中添加了哪些语言功能,因此我可以一目了然地跳过我已经熟悉的部分。有什么建议么 ?

4

6 回答 6

7

Wikipedia 条目对于您想要查看的内容似乎足够简洁。

提炼:

J2SE 5.0(2004 年 9 月 30 日)

代号老虎。(最初编号为 1.5,仍用作内部版本号。)在 JSR 176 下开发,Tiger 添加了许多重要的新语言特性:

  • 泛型:为集合提供编译时(静态)类型安全,并消除对大多数类型转换(类型转换)的需求。(由 JSR 14 指定。)
  • 元数据:也称为注释;允许用附加数据标记诸如类和方法之类的语言结构,然后可以由元数据感知实用程序处理这些数据。(由 JSR 175 指定。)
  • 自动装箱/拆箱:原始类型(例如 int)和原始包装类(例如 Integer)之间的自动转换。(由 JSR 201 指定。)
  • 枚举: enum 关键字创建一个类型安全、有序的值列表(例如 Day.MONDAY、Day.TUESDAY 等)。以前,这只能通过非类型安全的常量整数或手动构造的类(类型安全的枚举模式)来实现。(由 JSR 201 指定。)
  • Swing:新的可换肤外观和感觉,称为合成器。
  • Varargs:方法的最后一个参数现在可以使用类型名称后跟三个点来声明(例如 void drawtext(String...lines))。在调用代码中,可以使用任意数量的该类型的参数,然后将它们放在一个数组中以传递给方法,或者调用代码可以传递该类型的数组。
  • 为每个循环增强:for 循环语法通过特殊语法进行了扩展,用于迭代数组或任何 Iterable 的每个成员,例如标准 Collection 类(由 JSR 201 指定。)
  • 修复之前破坏的 Java 内存模型语义,它定义了线程如何通过内存进行交互。
  • RMI 对象的自动存根生成。
  • 静态导入

  • 1.5.0_17 (5u17) 是最后一个正式支持 Microsoft Windows 9x 系列(Windows 95、Windows 98、Windows ME)的 Java 版本。1非正式地,Java SE 6 Update 7 (1.6.0.7) 是在该系列操作系统上展示的最后一个 Java 版本。

  • 包 java.util.concurrent 中的并发实用程序。

J2SE 5.0 于 2008 年 4 月 8 日进入其生命周期,自 2009 年 10 月 30 日起,Sun 将不再提供支持。

Java SE 6(2006 年 12 月 11 日)

代号野马。在此版本中,Sun 将名称“J2SE”替换为 Java SE,并从版本号中删除了“.0”。开发人员的内部编号仍为 1.6.0。这个版本是在 JSR 270 下开发的。

在开发阶段,大约每周都会发布包括增强功能和错误修复在内的新版本。Beta 版本于 2006 年 2 月和 6 月发布,最终版本于 2006 年 12 月 11 日发布。当前版本是 2009 年 2 月发布的 Update 12。

此版本中包含的主要更改:

  • 放弃了对旧 Win9x 版本的支持。非官方的 Java 6 Update 7 是最后一个显示可在这些版本的 Windows 上工作的 Java 版本。这被认为是由于更新 10 中的重大变化。
  • 脚本语言支持 (JSR 223):用于与脚本语言紧密集成的通用 API,以及内置的 Mozilla Javascript Rhino 集成
  • 核心平台 [17] [18] 和 Swing 的性能显着提升。
  • 通过 JAX-WS (JSR 224) 改进了 Web 服务支持
  • JDBC 4.0 支持 (JSR 221)。
  • Java Compiler API (JSR 199):允许 Java 程序以编程方式选择和调用 Java Compiler 的 API。
  • 将 JAXB 升级到 2.0 版:包括集成 StAX 解析器。
  • 支持可插入注释 (JSR 269)。
  • 许多 GUI 改进,例如在 API 中集成 SwingWorker、表格排序和过滤以及真正的 Swing 双缓冲(消除灰色区域效果)。

Java SE 6 更新 10

Java SE 6 Update 10(以前称为 Java SE 6 Update N)虽然没有更改任何公共 API,但在最终用户可用性方面是一项重大增强。发行版目前可供下载。

此更新的主要更改包括:

  • Java Deployment Toolkit,一组 JavaScript 函数,用于简化小程序和 Java Web Start 应用程序的部署。
  • Java Kernel,一个小型安装程序,仅包含最常用的 JRE 类。需要时下载其他软件包。
  • 增强的更新程序。
  • 增强的版本控制和 pack200 支持:不再需要服务器端支持。
  • Java Quick Starter,改善冷启动时间。
  • 使用 Direct3D 和硬件加速改进了 Windows 上 Java2D 图形基元的性能。
  • 一种新的 Swing 外观和感觉,称为 Nimbus,基于合成器。[23]
  • 下一代 Java 插件:小程序现在在单独的进程中运行并支持 Web Start 应用程序的许多功能
于 2009-04-08T11:09:56.587 回答
1

您可以查看 Sun 网站。您可以找到Java 5Java 6中的更改。我认为大多数重大的语言变化都来自 Java 5,包括泛型、自动装箱、可变参数、枚举等。

于 2009-04-08T11:10:22.467 回答
1

以下是 Sun 的Java 5 新特性列表。

有很多,而且非常基础。

相比之下,我认为 Java 6 中的语言本身根本没有任何变化。

于 2009-04-08T11:11:24.727 回答
1

大约一年前,我和你在同一条船上,发现Java 1.5 Tiger A Developer's Notebook作为 1.4 和 1.5 之间主要变化的速成课程非常有用。它会让你加快速度。然后可以使用sun的网站或者其他资源深入学习。

于 2009-04-08T12:22:44.990 回答
0

泛型

如果您熟悉 C++,那么它只是 Java 的模板。

于 2009-04-08T11:09:24.403 回答
0

Java 6 的主要功能我发现我不能没有,按重要性顺序排列:

  • 泛型:允许语言了解类型参数(集合、容器、工厂...中的成员对象类型)
  • 自动装箱:将原始类型自动转换为对象,反之亦然
  • 协变返回类型覆盖:类似于多态性,允许您使用更具体的返回类型覆盖方法。
于 2009-04-08T16:47:20.533 回答