JDK5新特性(与1.4相比)【转】
1 循环
for (type variable : array){ body}
for (type variable : arrayList){body}
而1.4必须是:
for (int i = 0; i < array.length; i++){ type variable = array[i]; body}
for (int i = 0; i < arrayList.size(); i++){type variable = (type) arrayList.get(i); body}
2 泛型
以ArrayList为例,包括创建一个容器对象和取得容器内对象操作:
1.5 ArrayList<Type> arrayList =new ArrayList<Type>(); arrayList.get(i)
1.4 ArrayList arrayList =new ArrayList(); (Type) arrayList.get(i)
3 自动装箱拆箱
在JDK5.0以前,在原始类型与相应的包装类之间的转化是不能自动完成的。要完成这种转化,需要手动调用包装类的构造函数,在JDK5.0环境中,可以自动转化:
1.5 Integer wrapper = n; int n = wrapper;
1.4 Integer wrapper = new Integer(n); int n = wrapper.intValue();
4 可变的返回类型
在JDK5.0以前,当覆盖父类方法时,返回类型是不能改变的。现在有新的规则用于覆盖方法。如下,一个典型的例子就是clone()方法:
1.5 public Employee clone() { ... }
...
Employee cloned = e.clone();
1.4 public Object clone() { ... }
...
Employee cloned = (Employee) e.clone();
5 静态导入
静态导入功能对于JDK 5.0以前的版本是不支持的。
import static java.lang.Math;
import static java.lang.System;
...
1.5 out.println(sqrt(PI));
1.4 System.out.println(Math.sqrt(Math.PI));
6 控制台输入
JDK 5.0先前的版本没有Scanner类,只能使用JOptionPane.showInputDialog类代替。
1.5 Scanner in = new Scanner(System.in);
System.out.print(prompt);
int n = in.nextInt();
double x = in.nextDouble();
String s = in.nextLine();
1.4 String input = JOptionPane.showInputDialog(prompt);
int n = Integer.parseInt(input);
double x = Double.parseDouble(input);
s = input;
7 格式化输出
JDK5.0以前的版本没有printf方法,只能使用NumberFormat.getNumberInstance来代替。
1.5 System.out.printf("%8.2f", x);
1.4 NumberFormat formatter= NumberFormat.getNumberInstance();
String formatted = formatter.format(x);
for (int i = formatted.length(); i < 8; i++)
System.out.print(" "); System.out.print(formatted);
8 内容面板代理
在JDK5.0先前的版本中,JFrame,JDialog,JApplet等类没有代理add和setLayout方法。
1.5 add(component); setLayout(manager);
1.4 getContentPane().add(component);getContentPane().setLayout(manager);
9 StringBuilder类
jDK 5.0引入了StringBuilder类,这个类的方法不具有同步,这使得该类比StringBuffer类更高效。
JDK6的新特性(转)
1 SystemTray类
在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray,前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序.
2 使用JAXB2来实现对象与XML之间的映射
JAXB是Java Architecture for XML Binding的缩写,可以将一个Java对象转变成为XML格式,反之亦然。
3 新增StAX
StAX(The Streaming API for XML)是JDK6.0中除了DOM和SAX之外的又一种处理XML文档的API
4 新增Compiler API
可以用JDK6 的Compiler API去动态编译Java源文件。这个特性对于用到动态编译的应用程序相当有用, 比如JSP Web Server,当我们手动修改JSP后,是不希望需要重启Web Server才可以看到效果的,这时候我们就可以用Compiler API来实现动态编译JSP文件
5 轻量级Http Server
JDK6提供了一个简单的Http Server API,,程序员必须自己实现HttpHandler接口,HttpServer会调用HttpHandler实现类的回调方法来处理客户端请求。
6 插入式注解处理API(Pluggable Annotation Processing API)
插入式注解处理API提供一套标准API来处理Annotations,它把method, package, constructor, type, variable, enum, annotation等Java语言元素映射为Types和Elements, 从而将Java语言的语义映射成为对象。
7 用Console开发控制台程序
JDK6中提供了java.io.Console类专用来访问基于字符的控制台设备.
8 Web服务元数据(Web Services metadata)
9 更简单,更强大的JAX-WS
Java Architecture for XML Web Services的缩写,是一种用Java和XML开发Web Services应用程序的框架。
10 脚本语言支持(Scripting)
JDK6增加了对脚本语言的支持,原理上是将脚本语言编译成bytecode,这样脚本语言也能享用Java平台的诸多优势,包括可移植性,安全等,另外,由于现在是编译成bytecode后再执行,所以比原来边解释边执行效率要高很多。
11 JTable的排序和过滤
原来的JTable基本上是只能显示数据,在JDK6新增了对JTable的排序和过滤功能
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yakihappy/archive/2009/03/11/3979981.aspx
分享到:
相关推荐
总结来说,JDK 1.5中引入的一系列新特性极大地改善了Java语言的灵活性和安全性,同时也使得开发者的编程工作变得更加高效和简便。这些特性不仅提高了代码的质量,还增强了程序的可维护性和可读性。
使用到了JDK1.6中新特性的透明窗体,所以必须要使用JDK1.6或以上版本的 功能如下: 1.窗体出现时逐渐清晰 2.停留一会儿时间之后会自动逐渐模糊直至消失 3.点击关闭按钮后逐渐模糊直至消失 4.提示内容支持html...
2. **安装JDK**:安装JDK 1.5或更高版本(推荐1.6),确保Java环境的正常运行。 3. **配置环境变量**:设置JAVA_HOME和PATH环境变量指向JDK的安装路径。例如,如果你的JDK安装在`C:\Program Files\Java\jdk1.6.0_03`...
### Java 6 Collection Framework 新特性概览 ...以上就是Java 6 Collection Framework中新特性的详细介绍,这些新特性和改进极大地增强了Java集合框架的功能性和灵活性,为开发者提供了更多的选择和便利。
本书首先概述了计算机和网络安全概念并解释了Java安全模型,并在此基础上,详细描述了Java 2平台中新增加的许多安全结构方面的措施,同时对Java安全性的实施提出了使用指导,描绘了如何定制、扩展和精化安全结构以及...
在这个名为"swift-展示Swift4.2中新特性示例的Xcodeplayground"的压缩包中,我们可以通过Xcode Playground来探索和学习这些新特性。Xcode Playground是一个非常实用的学习工具,它允许开发者实时查看代码执行结果,...
2. C++语言的版本和特性,例如Visual Studio 2010 C++,指出了特定的开发环境和可能涉及的C++版本的特性。 3. 关键字和语法元素,如const,表示会讲解C++中的关键字使用和语法规则,const在C++中用于定义常量或者...
同时,基于最新Java SE 7平台,它详细介绍了Java SE 7中新加入的lnvokeDynamic指令和方法句柄机制,给出了在Java SE 6期间引入的类型检查检验器的原理证明。本书还介绍了Java SE 5中对class文件格式的扩展变动,例如...
Java 8 中引入的新特性显著地改进了编程体验,尤其是对于Optional、接口中默认方法和静态方法的引入。Optional 类的出现旨在解决经典的空指针异常问题,它提供了一种更安全的方式来处理可能为空的对象。下面我们将...
本文将详细介绍这些新特性,并分析它们如何让QQ音乐在IE9中的使用更加便捷和个性化。 首先,新特性中的“任务栏固定与快速访问”极大地提升了用户的启动和切换效率。用户不再需要通过浏览器打开QQ音乐,只需在IE9...
这一版规范包含了对Java 7中新特性的详细描述,例如改进的垃圾回收机制、新的并发工具等,对于理解现代Java虚拟机的行为具有重要意义。 #### 三、Java虚拟机规范的内容概述 1. **概念模型与实际实现的区别**:Java...
- Hibernate 是一个 ORM(对象关系映射)框架,它允许开发者用 Java 对象来操作数据库,简化了数据库操作,提供了缓存机制、事务管理和查询语言等特性。 8. **Spring** - Spring 是一个全面的 Java 应用框架,...
书中特别强调了Java 1.4版本中新引入的I/O和网络功能,这些新特性为本书的编写提供了进一步的理由。 #### 传统与新式Java I/O 本书首先涵盖了“传统”Java流式I/O和所谓的“新式I/O”,后者基于缓冲区和通道支持非...
本书由Java技术的创建者编写,对Java 2平台标准版v1.2中新增加的包及类进行了全面、系统的描述,主要包括包概述和类描述。包概述是对每个包及其所有类的简要概括;而每个类描述独立成节,从类层次结构示意图、类示例...
此外,为了实现自动检测U盘插入,开发者可能会使用`java.awt.Robot`类来模拟用户的行为,定期检查系统中新的设备。或者,他们可能使用`java.util.concurrent`包中的定时任务,如`ScheduledExecutorService`,每隔...
总之,Java Web爬虫是数据获取的重要工具,通过合理的实现和优化,可以高效地从互联网上获取并处理海量信息。这份"Java-Web-crawler-spider.rar"源码提供了一个实践学习的机会,对于想深入理解Web爬虫的开发者来说,...
Java 安全性编程概念是非常重要的,Java 平台提供了多种支持安全编程的特性和库扩展,如 JCE、JSSE、CertPath API 和 JAAS 等。学习这些概念和技术可以帮助开发者编写更加安全的 Java 应用程序。
Java编程语言在笔试题目中经常会涉及许多核心概念和特性,以下是对这些知识点的详细说明: 1. **访问修饰符的区别**: - `public`:任何地方都可以访问。 - `private`:只能在同一个类中访问。 - `protected`:...
9. 投资建议:本报告给予中新集团“推荐”评级,预测了公司在2021、2022和2023年的EPS(每股收益)分别为1.05、1.21和1.37元,对应的市盈率(PE)分别为9、8和7倍。这说明中新集团在市场中具有较好的投资价值。 10....