NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Java SE 6 Update 10 发布,有何新特性呢?

  • 2008-11-02
  • 本文字数:2741 字

    阅读完需:约 9 分钟

Java SE 6 Update 10(6u10)在 Beta 版发布一年、下载量超过 100 万之后终于发布了,它被称为“ Consumer JRE ”。该版本主要关注于 Java Plug-In ,Sun 借助此版本兑现了对增强的富客户端用户体验的承诺,并为即将到来的 JavaFX Desktop 1.0 做好了准备。

在 Java 6u10 中, Java Plug-In 采用了完全重新设计的架构。它运行一或多个 Java 虚拟机实例,这些实例可以连接到浏览器以与周围的 Web 页面进行完全的交互,而不像以前在运行浏览器的那个操作系统进程中执行 applets。这种架构上的变化具有很多优点,同时引入了几个新特性

  • 增强的可靠性。运行 applet 的 JVM 在操作系统层次上与浏览器隔离开来。如果在运行 applet 的过程中出现了问题,或者是某个 applet 无法关闭,新的 JavaPlug-In 就会检测到问题并优雅地处理错误情况;而 Web 浏览器并不会受到影响。
  • 内置的 JNLP 支持。新的 plug-in 可以直接从 JNLP 文件中加载 applets,这统一了浏览器内和浏览器外(通过 Java Web Start)Java 内容的部署。开发者现在可以重用 JNLP 扩展以获得高级功能,如 JavaFX 运行时库通过OpenGL 实现的3D 图形及applets 中的 planetary-scale terrain 可视化。Applets 现在可以访问 JNLP APIs 以进行持久化数据存储、本地文件系统访问、并完成其它有用的功能(通过沙箱代码)。
  • 基于单个 applet 的命令行参数。JVM 命令行参数可以指定给单个 applet,这就提供了更加精细的控制,如堆大小及 Java 2D 硬件加速特性。从 JNLP 中加载的 applets 将命令行参数与(或)系统属性合并到了 JNLP 文件中。旧式的 applets 可以在 Web 页面的 HTML 中嵌入这些参数。
  • 支持多个 JRE 版本。每个单独的 applet 实例都可以运行在不同的 JRE 上。该特性是面向企业用户的,他们更想让他们的 applets 运行在某个特定版本的 JRE 上,或者是特定的 JRE 家族上。新的 plug-in 既可以选择特定版本的 JRE,也可以选择特定的 JRE 家族。
  • 增强的 Java/JavaScript 通信。Web 浏览器中的 JavaScript 引擎与 Java 编程语言之间的桥梁已 被完全改写了。新的实现向后兼容,并且对 Java 与 JavaScript 之间相互调用的可靠性、性能和跨浏览器问题进行了重大改进。过去只能用在 Mozilla 中的“LiveConnect”功能,如调用静态的 Java 方法、实例化新的 Java 对象以及从 JavaScript 中引用第三方包,现在已被所有的浏览器支持了。
  • 改善的用户体验。新的 Java Plug-In 在后台启动 applets,这样 Web 浏览器就会一直保持响应。当 applets 出现在 Web 页面上时,它们就真的可以运行了。
  • 改进的 applet 生命周期管理。对 applet 生命周期方法init、start、stop 及 destroy的调用更加确定了,同时跨浏览器的行为也得到了改进。Applet 的类加载器缓存和以前的 applet 生命周期(保留其是为了向后兼容)都得到了完全支持,并且其行为也都得到了改进。
  • 更好的大容量堆的支持。此前,通过 Java 控制面板指定的 applets 最大堆空间很有限。新的 Java Plug-In 中修复了这种限制;applets 现在可以使用与命令行应用一样大的堆空间。
  • 对 Windows Vista 的支持更好。运行在 Windows Vista 中 IE 保护模式下的签名 applets 现在与常规的用户应用有着同样的权限,这减少了向 Windows Vista 移植的代价。

Java Plug-In 可用在 Internet Explorer 6 & 7 中,同时也可用在 Windows XP、Windows Vista、Solaris 及 Linux 上的 Firefox 3 中。现在 Mac 用户还无法使用它, Kirk Pepperdine 认为还需要再过一段时间

从过去的经历来看,Mac 用户还需要再等上一段时间才能使用上 Java Plug-In。

Jim Weaver设法在Google Chrome Beta 中运行了JavaFX applets 。看起来Chrome需要 Java 6u10:

根据 Google 所述, Chrome 浏览器必须使用 Java SE 6 Update 10 才能在其中运行 Java 。 正如我之前提到的,Java SE 6 Update 10 的一个目标就是解决 JRE 和 Java/JavaFX 的部署问题。Google Chrome 是一个很棒的、跨平台的浏览器,由于它需要该版本的 Java 以使得富客户端的 Java/JavaFX 程序更加灵活,因此这将提高 JavaFX applets 和应用的使用率。

之前版本的 JRE 已经达到了 14.5MB,因此其发布包常被 Java 社区所诟病。借助于 6u10,Sun 对部署进行了增强。Java Kernel 在线安装器可以使用户首次运行 applets 和 Java Web Start 应用时更快,而无需等待下载整个 Java 平台,因为默认的 Kernel 才 4-5MB。这种安装方式满足了大多数 Java applets 和应用的需要,同时也符合其他库的需要(在运行时可能会需要下载一些库以完成 Java Kernel 的安装)。此外,Java 的自动更新也得到了改进,这是通过即需即补(patch-in-place)的机制完成的,该机制使得用户可以更新 Java 平台中的特定组件而不是每次都下载并安装一个全新的 JRE。

Java Deployment Toolkit 还提供了基于 Java 的 Web applet/ 应用部署工具,该工具有一个简单的 JavaScript 接口,有助于检测用户的 Java 环境并确保使用了正确的 Java 版本

下面的 HTML 代码用来确保 Java 1.6 已被安装,然后会加载一个 Java applet: ```

复制代码

你可以查看 deployJava.js 来深入了解 deployJava 对象。

Java 6u10 的一个主要新特性就是 Java Quick Starter (JQS) ,它改善了大多数 Java applets 和应用的初始启动时间:

Windows XP 和 Windows 2000 默认会启动 JQS,在 Windows Vista 中则不是必需的,因为 Vista 有自己的预加载机制。一个叫做 jqs.exe 的进程会在后台运行以便快速启动。在 Window 重启后会加载 jqs.exe。 通过周期性地将一些常用的 Java 文件预先读取到内存中(不会超过 20Mb),实现了启动性能的改进。接下来加载 Java 时,只需要很少的磁盘 I/O,而这会使启动速度明显变快。

继续来谈性能,Java 6u10 充分利用了基于 Microsoft Direct3D 9 API 的硬件加速图形管道来改进 Swing 应用的渲染,而这是由多种因素决定的,包括半透明度、倾斜度、任意的转换及其它的更多高级 2D 操作。

Java 6u10 还提供了一个新的跨平台感官,叫做 Nimbus ,它是由 2D 矢量图绘制的。Nimbus 基于 Synth , 从 1.5 版开始 Synth 就是 Java 的一部分了,同时它为 Java UIs 提供了一个漂亮且现代感十足的感官。由于 Nimbus 完全用 Java 2D 矢量图而不是静态位图来绘制,因此它的大小只有 56KB,而且可以用任何方式进行渲染。有两种方式可以使用 Nimbus 感官,第一种是调用 UIManager.setLookAndFeel,第二种是在运行 Java 应用时传入 -Dswing.defaultlaf 命令行选项。

请查看 InfoQ 的 Java 社区以了解更多关于 Java 平台的信息。

查看英文原文: Java SE 6 Update 10 is out but what does it deliver?

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2008-11-02 06:42730
用户头像

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

关注

评论

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

iOS 中的 Protocol

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

OAI L3与L2接口分析

柒号华仔

5G 7月月更

浅入浅出Mybatis(二)

ES_her0

7月月更

3000字11张图硬核科普:什么是边缘计算?与云计算有什么联系和区别?

wljslmz

云计算 边缘计算 7月月更

自定义spring boot starter三部曲之一:准备工作

程序员欣宸

spring springboot 7月月更

《高绩效教练》:如何用提问激发潜能?

郭明

读书笔记

接口测试进阶接口脚本使用—apipost(预/后执行脚本)

Xd

接口测试

到底应不应该使用 lombok

HoneyMoose

查找——顺序表的查找和有序表的查找

乔乔

7月月更

重温算法之颜色分类

自由

算法刷题 7月月更

shell脚本定时备份mysql数据库

乌龟哥哥

7月月更

Ark UI 中的问题汇总【系列 2】

坚果

HarmonyOS OpenHarmony Open Harmony 7月月更

深入浅出 eBPF|你要了解的 7 个核心问题

阿里巴巴云原生

阿里云 云原生 k8s ebpf

【Docker 那些事儿】关于Namespace隔离机制的奥秘

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

redis安装

想要飞的猪

飙车资深老教练-手撸一个EventBus

芝麻粒儿

android EventBus 7月月更

分布式——Maven多模块管理

Java学术趴

7月月更

读书笔记之数据密集型应用的可靠性

宇宙之一粟

读书笔记 7月月更

LeetCode第二题,裂开了..

为自己带盐

LeetCode 7月月更

Qt中 connect的多种方式

小肉球

qt 7月月更

小程序容器对工业互联网平台建设的加速的体现

Geek_99967b

小程序

企业级容器安全风险与最佳实践

明亮安全观

网络安全 安全架构 容器安全

【萌新解题】两数之和

面试官问

LeetCode 哈希表 两数之和

新星计划Day5【数据结构与算法】 链表

京与旧铺

7月月更

密码密钥硬编码检查

Tom(⊙o⊙)

密码 软件安全 信息泄露 静态代码检查 密钥管理

记一次uniapp的经历

是乃德也是Ned

uni-app 7月月更

jQuery

Jason199

jquery js 7月月更

Ceph分布式存储初步认识(一)

Lansonli

私有云 Ceph 云存储 7月月更

解读《深入理解计算机系统(CSAPP)》第8章异常控制流

小明Java问道之路

操作系统 异常 csapp 异常机制 7月月更

斐波拉契数最小步数与合法括号序列判断

未见花闻

7月月更

zookeeper-认识zookeeper

zarmnosaj

7月月更

Java SE 6 Update 10发布,有何新特性呢?_Java_Dio Synodinos_InfoQ精选文章