Java SE 6 Beta 2 (Mustang) 有什么新东西? 有什么值得开发者关注?简化Web ServicesMustang 将 简化Web services 的开发和发布. XML和Web服务一直都是Mustang的关注重点.. Mustang为此引入了JAX-WS(Java Architecture for XML-Web Services) 2.0 以及JAXB(Java Architecture for XML Binding) 2.0.. 同时还有Streaming API for XML (STaX), 它提供了一个双向API,<wbr>这个API可以通过一个事件流来读取或者写入XML,<wbr>其中包括跳过某个部分,<wbr>然后直接关注与文档中的另外一个小部分的能力。 <br><br><br><strong>Scripting,整合脚本语言</strong><br>目前来讲,Java 开发者们必须在Java之外独立地额外编码来使用non-<wbr>Java 脚本语言。这个头痛的问题将被Mustang 消灭,开发者将更加轻松的使用Perl、PHP、Python、<wbr>JavaScript 和Ruby等脚本语言。新的框架将允许人们操作任意的脚本语言,<wbr>和使用Java 对象。<br><br>Java SE6中实现了JSR223。这是一个脚本框架,<wbr>提供了让脚本语言来访问Java内部的方法。<wbr>你可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本。<wbr>这个脚本API允许你为脚本语言提供Java支持。另外,Web Scripting Framework允许脚本代码在任何的Servlet容器(<wbr>例如Tomcat)中生成Web内容。<br><br><strong>Database,绑定Derby</strong><br>开源嵌入式数据库 Derby(JavaDB) 绑定在JDK 1.6中.具体可以参考:<a href="http://www.matrix.org.cn/resource/news/Derby_785.html" target="_blank" rel="nofollow"><u><font color="#0000ff">JDK 1.6 将绑定开源数据库 Derby</font></u></a><br><br><strong>更丰富的Desktop APIs</strong><br>Mustang中拥有更多强的桌面API提供给开发者, 开发者可以更简单地开发更强大的桌面应用, 比如启动界面的支持,系统托盘的支持,JTable排序等等<br><br><strong>监视和管理</strong><br>Java SE 6中对内存泄漏增强了分析以及诊断能力。当遇到java.<wbr>lang.OutOfMemory异常的时候,<wbr>可以得到一个完整的堆栈信息,并且当堆已经满了的时候,<wbr>会产生一个Log文件来记录这个致命错误。另外,<wbr>JVM还添加了一个选项,允许你在堆满的时候运行脚本。(<wbr>这也就是提供了另外一种方法来诊断错误)<br><br>增强的JMX 监视API在MBean的属性值传入了一个特定的参数的时候,<wbr>允许这个应用程序发送一个事件通告。(<wbr>这里的属性值可以在很复杂的类型中)<br><br>对于Solaris 10的用户,为Solaris提供的Hotspot JVM中,提供了一种通过Solaris DTrace(这是个系统的调试工具)<wbr>来追踪显示JVM内部的活动情况,包括垃圾收集,类装载,线程,<wbr>锁等等。<br><br><strong>Pluggable Annotations</strong><br>从Java SE 5 带来得新特性Annotations,<wbr>将在Mustang继续扮演重要角色.. <br><br><strong>Compiler API:访问编译器</strong><br>对于Java开发工具, 或者Web框架 等的开发者来说, 利用编译器编译动态生成的代码, 是一个普遍的需求.<br><br>Mustang实现了JSR 199, 提供了Java编译器API(应用程序接口),<wbr>允许你从一个Java应用程序中去编译其他的Java源程序--<wbr>比如在应用程序中动态生成的一些源代码..<br><br><strong>Security:安全性</strong><br>Java SE 6的安全部分,增加了 XML-Digital Signature (XML-DSIG) APIs, 整合了GSS/Kerberos的操作API,<wbr>LDAP上的JAAS认证。
<p><strong>Instrumentation </strong><br> 利用 Java 代码,即 java.lang.instrument 做动态 Instrumentation 是 Java SE 5 的新特性,它把 Java 的 instrument 功能从本地代码中解放出来,使之可以用 Java 代码的方式解决问题。在 Java SE 6 里面,instrumentation 包被赋予了更强大的功能:启动后的 instrument、本地代码(native code)instrument,以及动态改变 classpath 等等。在 Java SE 5 当中,开发者只能在 premain 当中施展想象力,所作的 Instrumentation 也仅限与 main 函数执行前,这样的方式存在一定的局限性。在 Java SE 6 的 Instrumentation 当中,有一个跟 premain“并驾齐驱”的“agentmain”方法,<wbr>可以在 main 函数开始运行之后再运行。<br><br><strong>Http</strong><br> 在 Java SE 6 当中,围绕着 HTTP 协议出现了很多实用的新特性:NTLM 认证提供了一种 Window 平台下较为安全的认证机制;JDK 当中提供了一个轻量级的 HTTP 服务器;提供了较为完善的 HTTP Cookie 管理功能;更为实用的 NetworkInterface;DNS 域名的国际化支持等等。<br> HTTP Cookie管理可以应用客户操作临时变量的保存,如查询条件,<wbr>当前状态等</wbr></wbr></p>
<p><br><strong>JMX与系统管理</strong></p>
<p><span>管理系统的构架</span><br>图 1. 管理系统构架</p>
<p></p>
<div><img src="http://wenda.tianya.cn/wenda/void.gif" border="0"></div>
<p>上图分析了管理系统的基本构架模式。其中 Agent / SubAgent 起到的就是翻译的作用:把 IT 资源报告的消息以管理系统能理解的方式传送出去。</p>
<p>也许读者有会问,为什么需要 Agent 和 SubAgent 两层体系呢?这里有两个现实的原因:<br><br>管理系统一般是一个中央控制的控制软件,而 SubAgent 直接监控一些资源,往往和这些资源分布在同一物理位置。当这些 SubAgent 把状态信息传输到管理系统或者传达管理系统的控制指令的时候,<wbr>需要提供一些网络传输的功能。</wbr></p>
<ol><li>管理系统的消息是有一定规范的,<wbr>消息的翻译本身是件复杂而枯燥的事情。 </wbr>
</li></ol>
<p>一般来说,管理系统会将同一物理分布或者功能类似的 SubAgent 分组成一组,由一个共用的 Agent 加以管理。在这个 Agent 里封装了 1 和 2 的功能。</p>
<p><span><strong>JMX 和管理系统</strong></span></p>
<p>JMX 既是 Java 管理系统的一个标准,一个规范,也是一个接口,一个框架。图 2 展示了 JMX 的基本架构。<br>图 2. JMX 构架<img src="http://wenda.tianya.cn/wenda/void.gif" border="0">和其它的资源系统一样,JMX 是管理系统和资源之间的一个接口,<wbr>它定义了管理系统和资源之间交互的标准。<code><font face="NSimsun">javax.<wbr>management.MBeanServer</wbr></font></code> 实现了 Agent 的功能,以标准的方式给出了管理系统访问 JMX 框架的接口。而 <code><font face="NSimsun">javax.management.MBeans</font></code> 实现了 SubAgent 的功能,以标准的方式给出了 JMX 框架访问资源的接口。而从类库的层次上看,JMX 包括了核心类库 <code><font face="NSimsun">java.lang.management</font></code> 和 <code><font face="NSimsun">javax.management</font></code> 包。<code><font face="NSimsun">java.lang.management</font></code> 包提供了基本的 VM 监控功能,而 <code><font face="NSimsun">javax.management</font></code> 包则向用户提供了扩展功能。 JMX帮助开发者监控JVM的信息。<br><strong><br>编辑器API</strong><br> JDK 6 提供了在运行时调用编译器的 API。在传统的 JSP 技术中,服务器处理 JSP 通常需要进行下面 6 个步骤:</wbr></p>
<ol>
<li>分析 JSP 代码;
</li>
<li>生成 Java 代码;
</li>
<li>将 Java 代码写入存储器;
</li>
<li>启动另外一个进程并运行编译器编译 Java 代码;
</li>
<li>将类文件写入存储器;
</li>
<li>服务器读入类文件并运行; </li>
</ol>
<p> 但如果采用运行时编译,可以同时简化步骤 4 和 5,节约新进程的开销和写入存储器的输出开销,提高系统效率。<wbr>实际上,在 JDK 5 中,Sun 也提供了调用编译器的编程接口。然而不同的是,<wbr>老版本的编程接口并不是标准 API 的一部分,而是作为 Sun 的专有实现提供的,而新版则带来了标准化的优点。<br> 新 API 的第二个新特性是可以编译抽象文件,理论上是任何形式的对象 —— 只要该对象实现了特定的接口。有了这个特性,上述例子中的步骤 3 也可以省略。整个 JSP 的编译运行在一个进程中完成,同时消除额外的输入输出操作。<br> 第三个新特性是可以收集编译时的诊断信息。<wbr>作为对前两个新特性的补充,<wbr>它可以使开发人员轻松的输出必要的编译错误或者是警告信息,<wbr>从而省去了很多重定向的麻烦</wbr></wbr></wbr></wbr></wbr></p>
<p><strong>一些有趣的新特性:</strong> <br><br>1 本地行为 java.awt.Desktop <br>比如用默认程序打开文件,用默认浏览器打开url,<wbr>再也不用那个browserlauncher那么费劲 <br>了 <br>Desktop desk=Desktop.getDesktop(); <br>desk.browse(new URI("<a href="http://www.google.com/" target="_blank" rel="nofollow"><u><font color="#0000ff">http://www.google.com</font></u></a>")); <br>desk.open(file) <br>desk.print(file) <br><br>2 console下密码输入 java.io.Console <br>再也不用自己写线程去删echo字符了 <br>Console console = System.console(); <br>char password[] = console.readPassword("Enter password: "); <br><br>3 获取磁盘空间大小 java.io.File的新方法 <br>File roots[] = File.listRoots(); <br>for (File root : roots) { <br>System.out.println(root.<wbr>getPath()+":"+root.<wbr>getUsableSpace() <br>+"/"+root.getTotalSpace()); <br>} <br><br>4 专利过期,可以提供合法的lzw的gif encoder了 <br>ImageIO.write(input, "GIF", outputFile); <br><br>5 JAXB2.0 增加了java-to-xml schema,完成java bean,xml间转换非常容易 <br><br>6 xml数字签名 javax.xml.crypto,<wbr>记得以前似乎只有ibm有个类库实现了 <br><br>7 编译器,以前是com.sun.tools.javac,<wbr>现在是javax.tools.JavaCompiler <br>有人写了完全在内存里的生成源文件,编译,反射运行的过程,<wbr>比较好玩。 <br><br>8 脚本引擎,javax.script,内嵌的是Mozilla Rhino1.6r2 支持ECMAScript1.6</wbr></wbr></wbr></wbr></wbr></wbr></p>
</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
相关推荐
Java SE 6,代号 Mustang,是Java发展过程中的一个重要版本,它在性能上有所提升,并引入了一系列新特性,尤其是在API库方面。其中,Instrumentation是Java SE 6的一个亮点,它允许开发者创建独立于应用程序的代理...
Java SE 6通过Java Tool API中的attach机制解决了这一问题,允许开发者在运行过程中动态地设置加载代理类,从而实现Instrumentation的目的。 ##### 2.2 本地代码Instrument 对本地代码(native code)的支持是Java...
标题中的“mustang-98234-ghal8yh2k3.jpeg_java_work_document_”似乎是一个组合,可能代表一个项目或任务的唯一标识符,后跟编程语言(Java)和工作文档的提及。这暗示了这个压缩包可能包含与Java编程相关的开发...
2005年,Sun公司宣布Java SE 6(代号Mustang),支持脚本语言,并增强了安全性。Java EE 6在2009年发布,继续优化Web服务和企业级应用的功能。Oracle接手后,虽然面临社区关系的挑战,但Java仍然保持着强劲的发展...
尽管题目主要聚焦于Java 9,Java 10也带来了一些值得关注的新特性: - **局部变量类型推断** Java 10引入了一个新的特性,允许开发者使用`var`关键字声明局部变量,而无需显式指定类型。编译器会根据赋值自动推断...
Java Derby数据库是一个轻量级、完全用Java语言编写的开源数据库管理系统,被集成在Java SE 6(代号Mustang)中,为开发者提供了一种简单、易用且免费的数据库解决方案。Derby来源于Apache软件基金会的项目,体积...
它不仅适合于想要快速掌握Java SE 6新特性的开发者,也是一本对Java平台有兴趣的技术人员和研究人员的重要参考材料。通过深入探讨这些新功能,本书有助于读者更好地理解Java平台的发展趋势和技术优势。
Java SE,全称为Java Standard Edition,是Java平台的核心部分,主要面向桌面应用和服务器端开发。对于初学者来说,理解并正确配置JDK环境变量是学习Java编程的基础步骤。本文将详细阐述JDK的不同版本、安装过程以及...
3. **mustang**:这个文件名可能代表一个项目或者模块,因为"Mustang"是Java SE 6的代号,这可能是一个演示如何利用Java 6特性的示例项目。 综上所述,这个压缩包提供了一个学习和研究的机会,让开发者能够了解如何...
每个新版本的Java框架都有其特定的目的、优势和新特性,这些是什么?Java在图形开发方面为何比C++等其他语言更容易,其机制又是如何? 为了回答这些问题并达成我们的目标,即全面理解Java的设计初衷及其多年来的...
Java的发展速度非常快,2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升,开发代号为Merlin(隼);2004年9月30日18:00PM,代号为“Tiger”,J2SE1.5发布,成为Java语言发展史上的又一里程碑。 Java的...
后续的版本,如Java SE 6(Mustang)、JDK7,以及Oracle在2011年发布的JDK7,进一步增强了Java的性能和功能。 Java运行时环境(JRE)是执行Java程序的基础,它包含Java虚拟机(JVM)和核心类库。JDK(Java ...
### 你应该知道的10件关于Java 6的事情 #### 1. Web Services Java 6(代号为Mustang)引入了对Web Services的重要改进。它提供了原生支持用于开发XML Web服务的注解API,这使得开发人员能够更轻松地创建与.NET Web...
- **2006年**:Java 6(代号Mustang)推出,进一步提升了性能和安全性。 - **2011年**:Oracle收购Sun Microsystems后,发布了Java 7。 - **2014年**:Java 8发布,带来了lambda表达式和流处理等功能,极大地提高了...
EA_Mustang_v_3.3_fix_ea_MUSTANGea_EA_Mustang_v_3.3_ 是一个在外汇交易中广泛使用的Expert Advisor(EA),也被称为自动化交易策略或机器人交易。这个EA在myfxbook平台上运行了两年的实盘交易,表现出相当稳定的...
6. Java SE 6 "Mustang":这个版本继续优化了JVM,引入了Swing的改进,提升了Java应用程序的用户体验。 7. Java SE 7 "Dolphin":Java 7带来了try-with-resources语句、钻石操作符(简化泛型创建)、开关语句支持字符...
Java 6(代号Mustang)继续优化性能,增强了对Web服务的支持,引入了改进的脚本语言支持,如JSR 223(Scripting for the Java Platform)。 7. Java 7(2011) Java 7(代号Dolphin)引入了try-with-resources语句...
Java SE:Java Standard Edition Java ME: Java Mobile Edition Java EE:Java Enterprise Edition Java 是由Sun 公司推出的(今年初被Oracle 公司收购) 收购价格:74 亿美金 J2SE、J2ME、J2EE JDK:...