写点什么

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

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

关注

评论

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

一文详解Kafka API

华为云开发者联盟

kafka API 拦截器 Consumer API Producer API

美景本天成,妙笔偶得之——“妙笔”是怎样炼成的?

百度大脑

等保级别最高为几级?市面上常见吗?

行云管家

网络安全 等保 等级保护 过等保

做好云管理一定要云管平台吗?云管理平台应具备什么功能?

行云管家

云服务 云管平台 云资源 云管理

SENSORO基于TDengine助力基层政府打造数字化应用标杆

TDengine

数据库 tdengine 开源 物联网

Worktile 权限设计

阿杰

权限控制 rbac 权限设计

Apsara Stack 技术百科 | 可运营的行业云,让云上资源跑起来

阿里云 科技 混合云

[JAVA冷知识]什么是逆变(contravariant)与协变(covariant)?数组支持协变&逆变吗?泛型呢?

山河已无恙

Java 2月月更

在线脑图思维导图生成工具

入门小站

工具

netty系列之:channel,ServerChannel和netty中的实现

程序那些事

Java Netty nio 程序那些事 2月月更

开源最佳实践

LinuxSuRen

开源 最佳实践

巧用这几种文本检索工具,节省80%的时间!

优麒麟

Linux 操作系统 grep 检索 优麒麟

设计模式【14】-- 从智能音箱中学习命令模式

秦怀杂货店

Java 设计模式

百度智能云开物再收“一个奖状”

百度大脑

加入科学计算SIG,挑战最前沿的AI+Science研发与创新

百度大脑

聚焦业务价值:分众传媒在 Serverless 上的探索和实践

Serverless Devs

阿里云 Serverless 运维管理 分众传媒 2月月更

大数据培训:Hadoop HDFS 实现原理

@零度

hadoop 大数据开发

上市商业银行推进智慧银行建设,全方位赋能零售业务数字化转型

易观分析

商业银行 智慧银行

Client-go源码分析之SharedInformer及实战| 社区征文

雪雷

Kubernetes Informer 新春征文

前端培训:3 个可能有用JavaScript 类

@零度

JavaScript 前端开发

语义级代码克隆检测数据集的评估与改进

华为云开发者联盟

软件工程 代码克隆检测 代码克隆 语义代码克隆 BigCloneBench

Hango Rider:网易数帆开源 Envoy 企业级自定义扩展框架

网易数帆

开源 云原生 envoy Hango Rider

PingCode Wiki 权限设计之ACL

阿杰

权限系统 权限控制 acl 权限设计

你会写java脚本吗?-JShell

蜜糖的代码注释

Java 后端开发 2月月更

天数智芯携手龙蜥社区,以高性能算力助力开源发展

OpenAnolis小助手

Linux 开源 芯片

阿里云服务器搭建halo博客从0到1

乌龟哥哥

阿里云 2月月更 halo博客

Springboot中,如何读取配置文件中的属性

华为云开发者联盟

数据库 springboot 映射 配置文件

Linux中Shell重定向

入门小站

Linux

这个Dubbo注册中心扩展,有点意思

捉虫大师

dubbo 注册中心

程序员必知的8个Java开源IDE工具

编程江湖

ide

在阿里,我们如何管理测试环境

阿里云云效

阿里云 DevOps 云原生 敏捷开发 研发提效

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