设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
查看: 8936|回复: 43
打印 上一主题 下一主题

[科普知识] 简单聊聊Java 7吧

  [复制链接]
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    跳转到指定楼层
    楼主
    发表于 2011-8-10 01:05:09 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 老兵帅客 于 2011-8-9 12:35 编辑 - N- \3 a: P. ~# m& ~

    : h& {" s& j9 N$ U  v0 s咱们这里没有科技版面,那我就把这个帖子发在天下杂谈的科技分类里面好了。; E% i: r+ e, Z0 f+ h) ~
    % m9 h$ \7 i3 ]3 u$ ]4 C' Y
    Java 7已经于7月28日终于正式发布了,虽然它之前几次跳票,并且已经有很长时间的测试版存在。我抽时间看了一下这东西的新特性,找自己感兴趣的摸了摸,下面就是一点体会,贴出来抛砖引玉哈。& [7 o. v3 x+ }  `8 }; g4 I
    * ~% O% p, p2 \1 t) M) M
    Java 7的新特性有很多,但是我只关心它语言级别上的新特性,其它的我用不着,于是略过,有兴趣的读者可以补充哈。下面就是我关心的新特性:8 J; T* P. v  G) F3 d3 `+ Y: Q
    . D7 L& O0 y8 H* D* C1 m
    一。switch可以用string类型的数据作分类了。这点很好,因为有很多的时候,我们得到的是string类型的数据,希望用它来直接获得对应分类的相关处理。在以前这是不可能的,你需要把它转化为int/long这类类型,否则switch是不干活的,现在你则可以一步到位了。我没有对该特性做实现方法分析,但是我怀疑它只是用string的hash code来做障眼法,因为这样就无须在字节码方面作任何修改,直接可以用以前的jvm。- q6 f" P7 U5 {% ?3 {

    # x% a: `) `* R9 H+ J; F4 F, w二。多个Exception的同时处理。以前你需要对同级的不同Exception单个处理,现在则可以一起处理了,也就是一次写一样的代码来处理它们,而不象以前那样需要把这些代码放到一个method来重用。这个特性的具体实现我估计也是障眼法,也就是实际上还是老的字节码处理办法,只是在源程序级的编译方作了些手脚而已,但是无论如何还是方便了许多。8 M! d& T' m$ _! m7 g1 ?( E. e

    ( C1 i0 z$ x& |2 W8 o4 g9 S6 g三。数字常量的二进制/十六进制易读表示,它指的是你可以用0x16bc_1a32来表示一个十六位整数。用这样的写法你可以方便自己的阅读,可以按照字节(八位)甚至四位的方式来阅读。但是个人感觉这属于锦上添花,有没有都差不多的事情,重要性远没有前两个高。
    5 ~9 _, r. ?4 Y$ ^, H- l! e/ ]5 ^. b9 U
    个人感觉,这个版本的语言级新特性并不很多,完全没法和Java 5那样的大手笔相比,但是很实用,这个版本的关键好处在于性能提高。  V3 N% k: G. n# l
    4 f0 u5 G% p1 S1 {
    顺便说一下目前Java IDE对它的支持程度,Netbeans据说已经正式支持它了,这里的意思是对语言特性的编辑级支持。Eclipse Indigo/3.7目前的正式版本还不行,你需要用它的nightly build,这个从7月29日的nightly build开始就可以了。但是nightly build只提供基本版,其它的版本估计要等到3.7.1出来了。
    5 k+ h/ d# n3 C) V9 C- E

    评分

    参与人数 1爱元 +5 收起 理由
    万里风中虎 + 5

    查看全部评分

  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    沙发
     楼主| 发表于 2011-8-10 10:15:56 | 显示全部楼层
    回复 不感冒 的帖子
    ! p& m! @6 O" H4 N" t* d
    , d9 [+ ]! L  e' n( z' V对,就是你想象的那样。前两个很有用,第三个多余。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    板凳
     楼主| 发表于 2011-8-10 10:16:24 | 显示全部楼层
    回复 明月回春 的帖子
    / i# G% L$ B# m* S- m% k& q$ {5 c1 f
    多说两句嘛
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    地板
     楼主| 发表于 2011-8-10 21:55:29 | 显示全部楼层
    回复 明月回春 的帖子
    0 e9 w. L. b& |6 f  J8 i4 \% U) z5 U. a4 L) V$ W
    嘿嘿,探讨一下哈。
      L* i9 v# h; s, |% a4 I  f* h; ?) X8 ^4 O* p9 _
    其实Java和C#的设计理念相当不同,早先的后者只是前者的微软抄袭版本,但是后来则完全不同了,微软加进去了很多很奇怪的特性,例如在语言级别提供数据访问能力,而该类功能传统上是由类库或者函数库来提供的。也就是说,微软的设计理念出了问题,它违反了语言的基本设施应该尽可能简练,而附加的功能通过类库或者函数库来提供这一原则。- {2 l: Z* n3 y! d% s

    9 z+ a% S& H, ?8 D/ kJava和.Net的本质区别在于思想,前者是自由民主、自由竞争那套,它来自于unix世界,而后者则是唯一可用的官方资源,这里咱们不涉及政治而只论技术。其结果就是前者有大量的可替代选择,也就是第三方类库,而后者则基本没有。对于技术人来说,其实只要你掌握了思想,那些可替代资源的掌握以及选择都不困难;但是如果连选择都没有的话,有些事情就很难作了。, l& p/ P. H: q/ M* w* ?

    6 x, K2 t1 ~% R1 ^5 \至于开源,其实那只是个神话,它的主要用处是方便偷东西,对于客户化和修复错误用处并不大,因为适应曲线和regression test都是问题。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    5#
     楼主| 发表于 2011-8-11 08:49:40 | 显示全部楼层
    回复 qqq54 的帖子
    6 Y; }6 Z7 S  k. E* o2 l3 L6 {4 B. n2 e6 e0 _: j
    我这里也一样,从1.4到java 6,用上7起码是明年的事情了。另外,目前支持java7的java ee服务器只有glassfish 3.1.1,因此要等到websphere和weblogic都支持了,它才会有市场吸引力。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    6#
     楼主| 发表于 2011-8-16 03:11:29 | 显示全部楼层
    回复 明月回春 的帖子! m. G$ M2 \% W0 h9 m  u  U

    6 {5 R; }6 D5 |5 S" ?; A客气了。
    0 `3 R- K' z! W: Z5 ~
    ! i4 M( D$ ]% z9 }从运行效率上来看,.Net表现一般,没有Java服务器模式好。语言一级支持数据访问和效率无关,是为了抄袭其他语言的特性,赶时髦而已。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    7#
     楼主| 发表于 2011-8-17 10:31:41 | 显示全部楼层
    回复 并非马甲 的帖子
    - _1 f3 F: f1 ?2 l6 ]+ q7 H) l$ l) b: ^
    但是从语言设计讲是个败笔,因为数据访问不应该是语言特性。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    8#
     楼主| 发表于 2011-8-17 10:35:40 | 显示全部楼层
    回复 明月回春 的帖子9 c4 g% r. ~7 T; L* x% Y+ d' ]9 J

    " k; k" ?: P5 E! ^6 q  _7 |7 f顺便说一下,reflection不是java的发明,至迟在C++里面已经有类似的东西了,虽然比较原始。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    9#
     楼主| 发表于 2011-8-17 11:22:08 | 显示全部楼层
    回复 明月回春 的帖子, w2 O" Z) r) `4 X# _7 R9 O

    , J* p+ g# Q/ e. k  v+ S我指的是C++/RTTI
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    10#
     楼主| 发表于 2011-8-17 21:24:45 | 显示全部楼层
    回复 四处张望 的帖子
    9 ?6 ~$ s9 C1 h" Y5 m9 ~$ D- y7 y; k( C1 ~5 b. Z
    这点目前似乎有争议,据说目前的参数设置会导致问题,因此这个版本的这方面事情最好再等等看。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    11#
     楼主| 发表于 2011-8-17 21:26:58 | 显示全部楼层
    回复 并非马甲 的帖子
    . k. _0 f/ {" a, S7 R5 K" _9 I2 b# Y$ d: \$ F8 x$ H2 F( ~; _
    我说的就是linq,因为集合操作应该是类库的功能而非语言特性。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    12#
     楼主| 发表于 2011-8-18 01:31:13 | 显示全部楼层
    回复 并非马甲 的帖子
    * W% Y8 T1 \% M8 D: I: u0 @4 }% K( @
    3 q6 }0 `1 K) H) lSQL是数据库操作语言而非编程语言,不是一码事
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    13#
     楼主| 发表于 2011-8-18 21:12:27 | 显示全部楼层
    回复 四处张望 的帖子
    ) \& O) I/ ?' O- W* e" }; v- [$ m: h; t: ^6 X( p7 L4 ?
    当然不会有很明显的变化,历史上最大的变化是Java 5,那几乎是革命性的变化,虽然很多其实都是实现上的障眼法,但是在语言设施上进步巨大。跟它相比,后来的6和7的语言变化都远没有那么大,主要变化集中的其他方面,是否用得到就是你的事情了。  N; L, R4 [: _  o2 M6 I! T( U' P" o

    9 w; F  R9 v, [0 z: U至于现实使用,6已经用得比较多了,虽然1.4也还有不少地方在用。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    14#
     楼主| 发表于 2011-8-19 22:40:14 | 显示全部楼层
    回复 并非马甲 的帖子$ Y& k% G" ?) ~3 g
    $ Y  O, D+ m  @: S( [# K1 M8 G3 A
    集合操作应该是类库级别的,而在哪个级别与性能无关,体现的是设计思想。
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    15#
     楼主| 发表于 2011-8-26 03:03:10 | 显示全部楼层
    回复 李根 的帖子- o0 [$ c2 K' a# I. M

    " E' ?8 A, w6 k  B$ T10.5支持了

    点评

    问题是俺们不用这东西,俺们用IBM的RAD,这东西还且不支持Java 7呢  发表于 2011-8-26 03:22
    好啊,大大的好  发表于 2011-8-26 03:05
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    16#
     楼主| 发表于 2011-8-26 03:22:53 | 显示全部楼层
    回复 定风波 的帖子( v0 L6 c3 j* T! t! s

    3 @& t8 n$ h' q! G4 ?. _) j不用Java你进来干什么,轰了出去!
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    17#
     楼主| 发表于 2011-8-26 09:10:56 | 显示全部楼层
    回复 定风波 的帖子
    2 ]+ \1 }, H( f: s" x: w) Z
    # D- {0 G! b. O! q4 O+ O就这也好意思说,赶紧讥笑楼上一把
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    18#
     楼主| 发表于 2011-8-26 18:15:35 | 显示全部楼层
    回复 定风波 的帖子
    " ~( B( L0 G' Q9 R% D' E7 s, E( |! x4 N% v9 O6 N
    你们也忒能欺负领导了

    点评

    用java se玩并发,你们也真够可以的了,这种环境俺们一般用servlet  发表于 2011-8-26 21:22
    是领导欺负我好不好,非逼着我弄,不过还好50/秒的并发咱支持的不错,一年也有几万人用过了  发表于 2011-8-26 20:11
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    19#
     楼主| 发表于 2011-8-26 18:16:01 | 显示全部楼层
    回复 大道至简 的帖子
    8 W2 S% e' z& {2 G5 x0 @
    # w' b6 d' ~1 U" P0 a好,好,慢慢等,俺会写的哈
  • TA的每日心情
    开心
    2023-1-5 00:48
  • 签到天数: 2591 天

    [LV.Master]无

    20#
     楼主| 发表于 2011-9-23 01:10:02 | 显示全部楼层
    的名 发表于 2011-9-22 11:53
    % i6 u! q2 c; O5 q3 W4 Z: M7,8 年没有碰过Java了,看了老兵的帖子才知道自己忘的有多干净。真是汗哪。 ...

    - ?7 E' d( J7 x7 d* ^9 a0 p, T无所谓,就是个饭碗技能而已

    手机版|小黑屋|Archiver|网站错误报告|爱吱声   

    GMT+8, 2024-5-15 12:53 , Processed in 0.060008 second(s), 23 queries , Gzip On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表