• 2004-02-06

    咖啡猛虎、状态机和不认识的师兄

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/83364.html

    JDK 1.5 Beta版正式出炉是昨天的消息了,懒惰的我昨天就应该写这篇Blog,就像我应该在2003圣诞节那天把JDK 1.5试用版出炉的消息写出来一样,遗憾的是,我都没做。
    我赶在得知此消息的第一时间就把它down了下来,用了一个下午的时间,写了几个例子,体验了一下。

    虽然所谓的新特性早在去年年中的时候,我就已经有知晓,但真正编写几个这样的程序还是感觉不错。
    仔细想想,其实新东西并不多。
    泛型是C++早就拥有的特性,近两年泛型比较火,以致于Java、C#这些后起之秀也不得不把它加进来。同C++的泛型不同,Java的泛型只是语法上的简化,经过编译器之后,还是和原来的直接用Object的方式没有区别,而C++则是直接展开,相对来说,效率要高一些。时间和空间的问题,Java通常会不吝惜时间的。
    for循环的增强在去年刚接触的时候还有一些好奇,经过对C#的了解,就不足为奇了。学过Perl,才知道原来两家都是抄别人的东西。
    经过《Effective Java》的谆谆教导和自己经常定制枚举的实践,类型安全的枚举也已深入我心了。
    变参虽然用得少,从C过来的我也不会对此有何惊讶。
    了解一点C#,接受基本类型的Autoboxing和Auto-unboxing就显得那么自然而然,不过是语法上的一个sugar而已。
    静态导入是稍微新鲜点的东西,同普通的导入只导入类相比,它导入了类的成员,鉴于通过类访问,所以只能导入静态成员,因为非静态成员必须通过类的实例才能访问。
    唯一让我感觉难以理解的是Metadata,虽然对Metadata的耳闻也算不少,但真正用遇见了才觉得很神奇,照着例子抄了一遍,运行了一下,没问题,但一点没看懂。只好去down JSR的规范来看看究竟神奇何在。等研究一下再说吧!
    至于库的扩展,只是一个多了一些API而已,需要的时候才会用到,我对此并不是很关心。

    昨天的说完了,该今天的了。
    早在去年我们系统刚刚开始做1.0版的时候,我就提出了一个状态机的想法,但究竟如何运用状态机来做,我也不知道。系统逐步改进到了现在,我忽然发现状态机确实是个不错的想法,于是,以状态机实现的念头又冒了出来。
    一个同事推荐给我一个状态机的框架Unimod,我用了一下午时间研究,理出一个大概思路。鉴于Unimod刚刚出了Alpha版,我们不会把它真正用到系统中,但其中对于状态机的实现倒是可以参考一下。说起来很简单,就是来了一个事件之后,根据当前的状态做相应处理得到一个新的状态。
    Unimod真正有趣的是它可以利用UML来生成状态机,其中集成了ArgoUML,我的兴趣不在于此,所以,没有深入进去。

    晚上在网上闲逛,发现了一个网站http://www.linuxsports.com,站长居然在和我的大学老师一起翻译《Linux Kernel Development》,曾经听老师提起过,算起来,也算是我的师兄,可惜大学里有这样的高人我却不曾认识。于是,赶紧发了mail过去,希望能够结识不曾相识的师兄。

    分享到:
    引用地址:

    评论

  • 做个链接如何?我已把你的链接加入了:)