我试了一下,下面的代码用JDK1.4编译后,在JVM5.0的环境下是可以正常运行的。import java.util.Vector; import java.util.Enumeration;public class MiniTest { public static void main(String[] args) { Vector list = new Vector();
http://java.sun.com/javase/technologies/compatibility.jsp The Java Platform, Standard Edition(Java SE) is strongly compatible with previous versions of the Java platform. Each version of Java SE has upwards binary-compatibility with the previous version, except for the incompatibilities noted in the documentation. Java SE does not support downward source compatibility, however: If source files use new language features or Java SE platform APIs, they will not be usable with an earlier version of the Java platform.The documentation describes any compatibility issues between the current version and the version immediately preceding it. 下面有相关的不兼容的说明。 自己看看吧。
4.枚举(Enums) JDK1.5加入了一个全新类型的“类”-枚举类型。为此JDK1.5引入了一个新关键字enmu. 我们可以这样来定义一个枚举类型。
枚举类型还提供了两个有用的静态方法values()和valueOf(). 我们可以很方便地使用它们,例如
5.可变长参数(Varargs) 可变参数使程序员可以声明一个接受可变数目参数的方法。注意,可变参数必须是函数声明中的最后一个 参数。假设我们要写一个简单的方法打印一些对象, util.write(obj1);
util.write(obj1,obj2);
util.write(obj1,obj2,obj3);
…6.静态导入(Static Imports) 要使用用静态成员(方法和变量)我们必须给出提供这个方法的类。使用静态导入
可以使被导入类的所有静态变量和静态方法在当前类直接可见,使用这些静态成员无需
再给出他们的类名。 import static java.lang.Math.*;
…….
r = sin(PI * 2); //无需再写r = Math.sin(Math.PI); 不过,过度使用这个特性也会一定程度上降低代码地可读性。
另外就是对组件功能的增强,比如对JTabel排序的默认支持等。
并不能说没有任何问题,就像我在1.4中定义一个变量名为:enum,这个是完全没有问题的。但是在1.5中enum成为了关键字,那么你的class就不能在高版本中运行了。在JDK版本升级的时候,还是需要仔细验证的。
虚拟机的改进一般是垃圾回收,对象管理等具体处理上的优化,跟class文件的兼容关系并不大。
import java.util.Enumeration;public class MiniTest
{
public static void main(String[] args)
{
Vector list = new Vector();
list.add("AAAAAAA");
list.add("BBBBBBB");
list.add("CCCCCCC");
Enumeration enum = list.elements();
while (enum.hasMoreElements())
{
System.out.println(enum.nextElement());
}
}
}
找不到官方的说明,客户要求调查JVM1.4和JVM1.5的差异,有没有权威文档来作为证据阿。
这有一个老版本向新版本的迁移指南。
自己在sun的java网站上找找吧,可以看一些白皮书之类的资料。
The Java Platform, Standard Edition(Java SE) is strongly compatible with previous versions of the Java platform. Each version of Java SE has upwards binary-compatibility with the previous version, except for the incompatibilities noted in the documentation. Java SE does not support downward source compatibility, however: If source files use new language features or Java SE platform APIs, they will not be usable with an earlier version of the Java platform.The documentation describes any compatibility issues between the current version and the version immediately preceding it.
下面有相关的不兼容的说明。
自己看看吧。
今天学到不少东西,高兴,呵呵。