jdk1.4 和JDK1.5的区别(整理自网络)

从语法层面上讲。
1. 1.5增加并发包(java.util.concurrent)
2. 泛型。
3. 增强的for循环
4. 增加可变参数,例如:public static void main(String[] args)现在可以写成public static void main(String... args) ;

不确定参数到底有几个时倒是可以用这种方式来代替以往传递一个数组的方式。
可变参数同时可以跟固定的参数混合使用。
但同时可变参数有一些限制:一个方法的参数中不能同时拥有2种类型的可变参数,也就是说:
public void foo(String ... str,Integer ... i)这样是不行的
5. 枚举
6. Annotation


性能层面上,
1. 自动选择垃圾收集器,Heap大小和运行时编译器。
2. 高精度的时间测量。以前使用System.currentTimeMillis,现在可使用System.nanoTime,精度更高一些。

 

  System.currentTime(),它的精度是毫秒,返回值 是 从1970.1.1的零点开始到当前时间的毫秒数,理论上这个可以用来算当前的时间,而且可以用这个值来构造一个Date对象。但是 System.nanoTime()却是不同,代码注释上有这么一句: The value returned represents nanoseconds since some fixed but arbitrary time (perhaps in the future, so values may be negative).

这个返回值是一个从确定的值算起的,但是这个值是任意的,可能是一个未来的时间,所以返回值有可能是负数。

所以说这个System.nanoTime()方法只能用来计时,例如:

long s = System.nanoTime();

....

System.out.println(System.nanoTime() - s);


3. 增加了StringBuilder
4. 针对于X86,X64 CPU做的优化。例如System.arrayCopy
5. 在X86和AMD64上支撑大的内存页。
6. 锁粗化。


应用场景层面上,
在jdk1.5之前,java多用于中小企业应用和手机应用。很少用语大型高并发场景。
一方面是基于java本身的性能担心。
另一方面是成功案例也不多。
现在几乎各家互联网网站都在使用java,只是承担的角色可能不同。
比如阿里系的网站,Facebook的hadoop集群,搜狐,ebay这些都是基于java搭建的典型。
也反映了java在大型高并发的应用场景是可行的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值