Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483068
  • 博文数量: 120
  • 博客积分: 3052
  • 博客等级: 中校
  • 技术积分: 1755
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-01 09:43
文章分类

全部博文(120)

文章存档

2011年(20)

2010年(3)

2009年(52)

2008年(45)

我的朋友

分类: Java

2008-11-15 12:31:41

在 linux 下用 jdk 1.6 写了个程序,编译打包后,一切正常,拿到 win 下,同样是 1.6 的jdk,居然说什么不兼容的编译类型,非法的 magic number.

只好在 linux 下用 jdk 1.4.2 这个经典的版本重新编译一下,结果就发现了下面两个不同:
1. 在 1.4.2 中, assert 是 keyword ,不可以 assert (boolean expression):(String) 这样来用,而在 1.6 中是可以的。
在 1.4.2 下编译时,会给出
warning: as of release 1.4, assert is a keyword, and may not be used as an identifier,
并且会报错,说是分号的错误(其实是编译器把 assert 当作 identifier 来处理报的错)。

2. 在 1.4.2 中,不可以如下这样来 override clone() 方法

public NewClass clone(){
     ...

   return NewClass;
}

这在 1.6 中是允许的,也是方便的。
在 1.4.2 中只能

public Object clone(){
...
return ...;
}

于是就有了 N 多的强制类型转换。
阅读(979) | 评论(0) | 转发(0) |
0

上一篇:伪懒惰

下一篇:impossible mission

给主人留下些什么吧!~~