写点什么

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?

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

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

关注

评论

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

让虞书欣、李诞拍到停不下来!AR+AI双引擎的互动小游戏,如何打开IP新玩法?

爱奇艺技术产品团队

DPDK大页内存原理

赖猫

Linux DPDK

TCP 协议灵魂问题,巩固你的网路底层基础

Hive HMS Canary 时间较长异常分析

kwang

大数据 hadoop hive

使用 Tye 辅助开发 k8s 应用竟如此简单(三)

newbe36524

Docker 微服务 k8s dotnet

Elasticsearch Search API 基础语法

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

LeetCode题解:1143. 最长公共子序列,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

竞猜商城系统软件制作

v16629866266

数据中心决策如何快人一步?一块大屏轻松实现3D数据可视化

一只数据鲸鱼

物联网 数据中心 数据可视化 IDC 机房管理

最新Hadoop的面试题总结

大数据老哥

诊所数字化:就诊流程标准化和产品SOP设计

boshi

数字化转型 医疗 七日更

一、MongoDB简介

Kylin

数据库 mongodb 学习 七日更 二月春节不断更

技术秘籍 | 如何简单优雅的适配textview行间距?

百度开发者中心

大前端 TextView

架构师week12心得

Geek_xq

万字长文:解读区块链7类共识算法

华为云开发者联盟

区块链 公有链 拜占庭容错 共识算法 公式算法

linux内核协议栈 邻居协议之ARP协议处理初始化

赖猫

Linux 协议栈 Linux内核

CoralCache:一个提高微服务可用性的中间件

华为云开发者联盟

数据库 微服务 中间件 内存 CoralCache

GitHub上爆火的Java性能优化100+小技巧!(干货建议收藏)

Java架构师迁哥

地表建筑物识别Dayo1

IT蜗壳-Tango

七日更 2月春节不断更

15. Python 程序运行速度如何提高十倍?第一遍滚雪球学 Python 收工

梦想橡皮擦

Python 2月春节不断更

对DevOps的九大误解,是时候纠正了!

禅道项目管理

开源 DevOps 敏捷 自动化 持续交付

DIY一款4路USB转TTL串口调试模块

不脱发的程序猿

DIY 电路设计 硬件设计 USB电路 USB转TTL

前端学习总结,经验分享,项目经验分享过程

我是哪吒

学习 程序员 Vue 大前端 2月春节不断更

【STM32】ST-LINK下载器下载后需复位,程序才运行的问题

AXYZdong

硬件 stm32 2月春节不断更

架构师week12作业

Geek_xq

开源数据库管理系统现在比商业产品更受欢迎

PostgreSQLChina

数据库 postgresql 软件 开源社区

如何提升网页核心指标

Vincent

如何读懂CNN、BBC、经济学人、卫报、纽约时报?看完这本经典即可事半功倍!

wbliu85

学习 英语

日记 2021年2月19日(周五)

Changing Lin

2月春节不断更

【LeetCode】最大连续1的个数三Java题解

Albert

算法 LeetCode 2月春节不断更

Kafka.01 - 简介

insight

kafka 2月春节不断更

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