社区
Java SE
帖子详情
JVM1.5和JVM1.4有什么区别?
zhousqy
2008-12-12 11:06:20
你好,请问JVM1.5和JVM1.4有什么区别? JDK1.4编译的class文件在JVM1.5运行下哪些方面会有影响?
...全文
1001
30
打赏
收藏
JVM1.5和JVM1.4有什么区别?
你好,请问JVM1.5和JVM1.4有什么区别? JDK1.4编译的class文件在JVM1.5运行下哪些方面会有影响?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
30 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lihan6415151528
2008-12-12
打赏
举报
回复
路过学习
ZangXT
2008-12-12
打赏
举报
回复
java5增加的那些新特性,基本是编译器特殊处理了,class文件格式基本没什么变化。
虚拟机的改进一般是垃圾回收,对象管理等具体处理上的优化,跟class文件的兼容关系并不大。
ZangXT
2008-12-12
打赏
举报
回复
[Quote=引用 6 楼 gongfuliang 的回复:]
就像我在1.4中定义一个变量名为:enum,这个是完全没有问题的。
但是在1.5中enum成为了关键字,那么你的class就不能在高版本中运行了。
在JDK版本升级的时候,还是需要仔细验证的。
[/Quote]
class文件中并没有enum这个东西,也是编译为特殊的类,这个没有影响。
zhousqy
2008-12-12
打赏
举报
回复
谢谢ls各位,还有没有补充的阿。
leo_bogard
2008-12-12
打赏
举报
回复
up
gongfuliang
2008-12-12
打赏
举报
回复
[Quote=引用 4 楼 java2000_net 的回复:]
JDK1.4编译的class文件在JVM1.5运行 没有任何问题
反向肯定不行
内部区别,俺没有研究过。 不过JDK和JVM是关联的,JDK的新东西,在JVM里面肯定得支持才行。
[/Quote]
并不能说没有任何问题,就像我在1.4中定义一个变量名为:
enum
,这个是完全没有问题的。
但是在1.5中
enum
成为了关键字,那么你的class就不能在高版本中运行了。
在JDK版本升级的时候,还是需要仔细验证的。
gongfuliang
2008-12-12
打赏
举报
回复
晕死,没仔细看。
Java的版本原则上是向下兼容的
,起码彼此相近的版本,高版本是兼容低版本的,如果相距太远的话,
可能有的方法被设置成,不建议使用、或者被删除的话,或者低版本中的变量名等在高版本变成的关键字
,那么就不能在高版本运行了。
但是高版本编译的文件不能在低版本上运行,会提示版本错误。
就LZ的问题来说,1.4的编译文件在1.5上运行基本来说是没有问题的。
老紫竹
2008-12-12
打赏
举报
回复
JDK1.4编译的class文件在JVM1.5运行 没有任何问题
反向肯定不行
内部区别,俺没有研究过。 不过JDK和JVM是关联的,JDK的新东西,在JVM里面肯定得支持才行。
haoxiongok
2008-12-12
打赏
举报
回复
还真没仔细了解过,关注下。。。。。
lshy168
2008-12-12
打赏
举报
回复
[Quote=引用 1 楼 gongfuliang 的回复:]
1.泛型(Generic)
Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。
2.For-Each循环
For-Each循环得加入简化了集合的遍历,并且避免了强制类型转换。
3.自动装包/拆包(Autoboxing/unboxing)
自动装包/拆…
[/Quote]
楼主问的是JVM不是JDK。
gongfuliang
2008-12-12
打赏
举报
回复
1.
泛型
(Generic)
Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。
2.
For-Each循环
For-Each循环得加入简化了集合的遍历,并且避免了强制类型转换。
3.
自动装包/拆包
(Autoboxing/unboxing)
自动装包/拆包大大方便了基本类型数据和它们包装类地使用。
自动装包:基本类型自动转为包装类.(int >> Integer)
自动拆包:包装类自动转为基本类型.(Integer >> int)
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排序的默认支持等。
fenghaolun
2008-12-12
打赏
举报
回复
学习 学习
小曦子
2008-12-12
打赏
举报
回复
学习了..呵
luoguofeng
2008-12-12
打赏
举报
回复
学习
gongfuliang
2008-12-12
打赏
举报
回复
[Quote=引用 16 楼 ZangXT 的回复:]
赞楼上的动手精神,6楼只是没有把编译和运行两个过程分开而已。
[/Quote]
... 想想就到了1.5的编译上了,不好意思,差点误导
恋空
2008-12-12
打赏
举报
回复
飘过 学习
zhousqy
2008-12-12
打赏
举报
回复
感谢ZangXT!我去看看你给的资料。
cotton5i
2008-12-12
打赏
举报
回复
学习了~~~~
ZangXT
2008-12-12
打赏
举报
回复
http://java.sun.com/j2se/1.5.0/compatibility.html
今天学到不少东西,高兴,呵呵。
fuyueyue
2008-12-12
打赏
举报
回复
学习下
加载更多回复(10)
JVM
入门实战/arthas实战/垃圾回收算法/垃圾回收器/
jvm
内存模型分析
第一节:学习
JVM
的意义和目标 1.1 意义: 1.2 目标: 第二节:
JVM
内存模型 1.1 概念 1.2
JVM
内存模型 1.3 Heap堆内存模型 第三节:定位垃圾对象的依据 1.1 引用计数法 1.2 可达性算法 第四节:垃圾回收算法 ...
JVM
调优总结
1.4
JVM
调优总结(三)-基本垃圾回收算法 9
1.5
JVM
调优总结(四)-垃圾回收面临的问题 12 1.6
JVM
调优总结(五)-分代垃圾回收详述1 14 1.7
JVM
调优总结(六)-分代垃圾回收详述 1.8
JVM
调优总结(七)-典型配置...
JVM
规范--高手总结
JVM
规范--高手总结 Java相关 1 1.1Java定义 1 1.2Java的开发流程 1 1.3Java运行的原理 2
1.4
半编译半解释 3
1.5
平台无关性 4
JVM
内存模型 4 2.1
JVM
规范 5 2.2 Sun
JVM
8 2.3 SUN
JVM
内存管理(优化) 10 2.4 SUN
JVM
...
深入java虚拟机
1.4
JVM
调优总结(四)-垃圾回收面临的问题
1.5
JVM
调优总结(五)-分代垃圾回收详述1 1.6
JVM
调优总结(六)-分代垃圾回收详述2 1.7
JVM
调优总结(七)-典型配置举例1 1.8
JVM
调优总结(八)-典型配置举例2 1.9 ...
JVM
内存结构详解
文章目录一、你了解
JVM
内存结构吗在这之前需要知道
JVM
内存结构图——JDK1.81.1、程序计数器1.2、虚拟机栈(
JVM
Stack)1.1.1、java.lang.StackOverflowError问题1.3、本地方法栈
1.4
、元空间(MetaSpace)
1.4
.1、...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章