TA的每日心情![](source/plugin/dsu_paulsign/img/emot/kx.gif) | 开心 2023-1-5 00:48 |
---|
签到天数: 2591 天 [LV.Master]无
|
本帖最后由 老兵帅客 于 2011-8-9 12:35 编辑
5 p( |5 s$ L9 d0 ~8 |* h! w6 C' \" n, a& K' ?* ^6 Z$ h, B% q$ S
咱们这里没有科技版面,那我就把这个帖子发在天下杂谈的科技分类里面好了。
* J i4 j5 p/ [* P, l) f3 r
5 P& k1 K) R( tJava 7已经于7月28日终于正式发布了,虽然它之前几次跳票,并且已经有很长时间的测试版存在。我抽时间看了一下这东西的新特性,找自己感兴趣的摸了摸,下面就是一点体会,贴出来抛砖引玉哈。
' L, j+ |4 R8 m6 @9 i9 O5 J/ x+ A! H( M7 L3 t( }
Java 7的新特性有很多,但是我只关心它语言级别上的新特性,其它的我用不着,于是略过,有兴趣的读者可以补充哈。下面就是我关心的新特性:: ~ \2 P% B8 k; a6 v
3 Q1 V5 ^- a5 {* o" a一。switch可以用string类型的数据作分类了。这点很好,因为有很多的时候,我们得到的是string类型的数据,希望用它来直接获得对应分类的相关处理。在以前这是不可能的,你需要把它转化为int/long这类类型,否则switch是不干活的,现在你则可以一步到位了。我没有对该特性做实现方法分析,但是我怀疑它只是用string的hash code来做障眼法,因为这样就无须在字节码方面作任何修改,直接可以用以前的jvm。3 E9 S0 }! B' B, ~
* n: v4 ?* p! B9 T6 h; ]二。多个Exception的同时处理。以前你需要对同级的不同Exception单个处理,现在则可以一起处理了,也就是一次写一样的代码来处理它们,而不象以前那样需要把这些代码放到一个method来重用。这个特性的具体实现我估计也是障眼法,也就是实际上还是老的字节码处理办法,只是在源程序级的编译方作了些手脚而已,但是无论如何还是方便了许多。
6 i' r, `' R3 o9 ^6 C7 ]4 G" e2 \5 _
3 n( G9 b) A+ i3 c$ L2 n4 l' u三。数字常量的二进制/十六进制易读表示,它指的是你可以用0x16bc_1a32来表示一个十六位整数。用这样的写法你可以方便自己的阅读,可以按照字节(八位)甚至四位的方式来阅读。但是个人感觉这属于锦上添花,有没有都差不多的事情,重要性远没有前两个高。' d* U1 _$ N! n0 C# t2 L, h" g3 g
) v5 z9 o) \7 [个人感觉,这个版本的语言级新特性并不很多,完全没法和Java 5那样的大手笔相比,但是很实用,这个版本的关键好处在于性能提高。4 g% v* }6 H3 N* R! w* Y. |5 V" H- U
6 c1 \: S% ~2 _9 k) Z2 j顺便说一下目前Java IDE对它的支持程度,Netbeans据说已经正式支持它了,这里的意思是对语言特性的编辑级支持。Eclipse Indigo/3.7目前的正式版本还不行,你需要用它的nightly build,这个从7月29日的nightly build开始就可以了。但是nightly build只提供基本版,其它的版本估计要等到3.7.1出来了。3 [& g( z$ E3 _+ T& v; M
|
评分
-
查看全部评分
|