﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Jiangshachina-随笔分类-SunTechDays</title><link>http://www.blogjava.net/jiangshachina/category/27188.html</link><description>同是Java爱好者，相逢何必曾相识！&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;a cup of Java, cheers!</description><language>zh-cn</language><lastBuildDate>Sun, 06 Apr 2008 10:48:13 GMT</lastBuildDate><pubDate>Sun, 06 Apr 2008 10:48:13 GMT</pubDate><ttl>60</ttl><item><title>Sun Tech Days 2007 -- Day 2(原)</title><link>http://www.blogjava.net/jiangshachina/archive/2007/11/08/158629.html</link><dc:creator>Sha Jiang</dc:creator><author>Sha Jiang</author><pubDate>Thu, 08 Nov 2007 00:39:00 GMT</pubDate><guid>http://www.blogjava.net/jiangshachina/archive/2007/11/08/158629.html</guid><wfw:comment>http://www.blogjava.net/jiangshachina/comments/158629.html</wfw:comment><comments>http://www.blogjava.net/jiangshachina/archive/2007/11/08/158629.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.blogjava.net/jiangshachina/comments/commentRss/158629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiangshachina/services/trackbacks/158629.html</trackback:ping><description><![CDATA[<div align="center"><strong><span style="font-size: 10pt;"><span style="font-size: 14pt;">Sun Tech Days 2007 -- Day 2</span></span></strong><br />
</div>
<span style="font-size: 10pt;">&nbsp;&nbsp;&nbsp; Sun Tech Days 2007(北京站)已经结束了，趁热打铁，在此把本次会议中我的所见、所闻、所思与所得记录下来。本文是关于我在Sun Tech Days第二天中的相关见闻思得以及总结。(2007.11.10最后更新)<br />
<br />
&nbsp;&nbsp;&nbsp; 第二天的流程与第一天的基本相同，只是在上午多了一个赢取Java茄克的活动。走上舞台，以自己的才艺(编程不算才艺 :D)表演打动台下的观众，谁得到的掌声最热烈，谁就能得到那两件(分成了两个组，每个组有一件)茄克。这个表演算是当天上午最有趣的活动了。十分佩服那些勇于走上台的朋友，嘿嘿，就算Jonathan请我上台，我也"懒"得去(Oh, oh, oh ... come on, please show yourself!)。<br />
&nbsp;&nbsp;&nbsp; 关于当天的Sun技术演示就不描述了，想说说当天的主题演讲，是由<a href="http://www.oracle.com/applications/fusion.html">Oracle Fusion Middleware</a>的一位副总裁做的，题目是"SCA/SOA Service Component Architecture"。哦哦哦，这个题目真够高深的，我可不想对它品头论足，只想提一下<a href="http://www.oracle.com/technology/products/jdev/index.html">JDeveloper</a>。相信很多朋友都知道甚至用过JDeveloper，我早前也下载过JDeveloper10，但并没有真正地使用过，主要是由于当时自己的机器只有512M内存，运行JDeveloper有些勉强。每年的STD，Oracle都会有相关主题展示使用JDeveloper开发Web/JSF应用。从Oracle的演示来看，使用JDeveloper+<a href="http://www.oracle.com/technology/products/adf/index.html">ADF</a>(Application Development Framework，Oracle的Java EE开发框架)进行Web开发确实不错。依稀记得在2005年的<a href="http://www.javapolis.com/confluence/display/JP07/Home">JavaPolis</a>，比利时Java用户会议(规模很大，并不仅限于比利时)，大会中有一个RAD(Rapid Application Development)编程比赛，结果排在前三名的团队竟然全部都是使用JDeveloper。看来JDeveloper在RAD方面确有自己的独到之处。但必须注意的是，使用JDeveloper是完全免费的，但使用ADF需要支付费用。这可能也影响到了JDeveloper的普及，毕竟免费的工具/框架足够多了。至于Fusion，我应该是第一次听到它，有兴趣的朋友可以去看看。</span><span style="font-size: 10pt;">相比较第一天而言，第二天中我所关注的主题较少，</span><span style="font-size: 10pt;">下面将介绍当天我所参加的各个技术专题。<br />
<br />
&nbsp;&nbsp;&nbsp; <span style="font-size: 12pt;"><strong>Java DB：多个层次的数据库。</strong></span><br />
&nbsp;&nbsp;&nbsp; <a href="http://developers.sun.com/javadb/">Java DB</a>是我最为关注的主题之一，今年仍然是由Sun的数据库产品经理Manyi Lu主讲。相信很多人都已经认识了Java DB，可能更多的人在更早的时候就知道了<a href="http://db.apache.org/derby/">Apache Derby</a>，而又可能有更更多的人在更更早的时候就知晓了<a href="http://www-306.ibm.com/software/data/cloudscape/">Cloudscape</a>。那么现在肯定也已经有不少朋友知道Java DB，Apache Derby和Cloudscape就是同一个数据库。实际上，Sun和IBM都各自出一部分开发员一同在Apache社区中进行Java DB/Apache Derby/Cloudspace的开发。而Sun/IBM又会为它们的产品Java DB/Cloudscape提供商业的技术服务。<br />
&nbsp;&nbsp;&nbsp; 作为一款关系型数据库，对于已经习惯于RDBMS的开发者而言，使用起来肯定不是难事(当然，凡事想做好，也不是易事)。完备的SQL引擎--视图，存储过程(Java存储过程)，函数，触发器，外键约束；ACID性；支持标准的SQL；...这些基本的RDBMS特性似乎都不需要特别地提及。我想大家最关心的肯定是它的性能(是的，我们都关心数据库的性能，更何况它是用Java写的#_#)。Manyi每次都特别地强调，与同等层次的数据库(<a href="http://www.mysql.com/">MySQ</a>L，<a href="http://www.postgresql.org/">PostgreSQL</a>)相比，Java DB的性能毫不逊色，在某些情况下甚至更高。一般地只能认为Java DB，MySQL和PostgreSQL各有所长。Java DB长于磁盘I/O；MySQL优在单表查询；PostgreSQL擅长多表查询(用它作数据分析比较好)。另外，Manyi还介绍了一些提高Java DB性能简便方法。这些方法确实既简单又实用，任何人都可以掌握它们。这些小技巧以及Manyi想但没时间为大家演示的例子，大家都可以在Java One 2007的主题"</span> <span style="font-size: 10pt;"><a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-45170&amp;yr=2007&amp;track=3">Java DB Performance</a></span><span style="font-size: 10pt;">"和"<a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-69700&amp;yr=2007&amp;track=8"><span style="font-size: 10pt;">Enabling Offline Web Applications with Java DB</span></a></span><span style="font-size: 10pt;">"中找到出处。<br />
&nbsp;&nbsp;&nbsp; 不得不说，今年的Java DB Session新意不多，当然这只是针对那些听过去年的这个Session的朋友而言。不过更正了我记忆错误的一个数据：听了去年的Java DB，我一直以为Sun内部测试时使用的数据量已经达到了300<strong>T</strong>；但今年再看，那个数据量应该是300<strong>G</strong>，目前已经达到了700G，他们的目标是1<strong>T</strong>。失之毫厘，谬以千里。不过，去年是听的，幻灯片中没有写，而T与G的读音相近，所以弄错了。而今年是在幻灯片中写着的，才得以纠正这个错误。<br />
<br />
&nbsp;&nbsp;&nbsp; <strong><span style="font-size: 12pt;">动手实验室：Java SE 故障诊断工具大全。</span></strong><br />
&nbsp;&nbsp;&nbsp;
要动手，才能把知识学牢固。每届的JavaOne和STD中都有不少的动手实验室，这对大家的帮助肯定很大。在2005年的STD中，我参加了一个使用<a href="http://www.netbeans.org/">NetBeans</a>的<a href="http://form.netbeans.org/">Matisse</a>构建Swing GUI的动手实验室。虽然在那之前，以及在那儿之后的很长一段时间内，我都没有经常地使用NetBeans。但一直认为Matisse构建GUI确实很方便，将困难的部局管理器参数的设置几乎完全可视化。不说Matisse了，还是谈谈JDK 6中带的一些工具吧。这个动手实验室介绍了<a href="http://java.sun.com/javase/6/docs/technotes/tools/share/jconsole.html">jconsole</a>，<a href="http://java.sun.com/javase/6/docs/technotes/tools/share/jinfo.html">jinfo</a>，<a href="http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html">jmap</a>，<a href="http://java.sun.com/javase/6/docs/technotes/tools/share/jstat.html">jhat</a>，<a href="http://java.sun.com/javase/6/docs/technotes/tools/share/jstat.html">jstat</a>，<a href="http://java.sun.com/javase/6/docs/technotes/tools/share/jps.html">jps</a>，<a href="http://java.sun.com/javase/6/docs/technotes/tools/share/jstack.html">jstack</a>，...，这些工具看起来虽小，但功能却很实用。用它们可以查看当前系统中的Java进程，查找对象，分析内存泄漏，找到可能的线程缺陷(如死锁)，...虽然分析应用程序的工具很多，如NetBeans的<a href="http://profiler.netbeans.org/">Profiler</a>也可以做相同的工作，而且能够做得更多更好，但有时候手边一时没有那些大玩意儿，或者只能使用命令行界面，那么这些小玩意儿就能派上大用场了。<br />
&nbsp;&nbsp;&nbsp; 关于这个动手实验室，大家还可以参见JavaOne 2007中的一个动手实验室"<a href="http://developers.sun.com/learning/javaoneonline/j1lab.jsp?lab=LAB-1420&amp;yr=2007&amp;track=5">Monitoring and Troubleshooting using JMX and JConsole Lab</a>"。<br />
&nbsp;&nbsp;&nbsp; 通过这个动手实验室，我的收获确实不少。这时也想到，要把一件事情做好需要做很多的工作，也就需要花很多的时间。在开发的过程可能需要做单元测试、静态分析、代码检查、性能测试与优化、...，但在实际的工作中恐怕没有那么多的时间与精力去做这么多的事情，而且这里的每件事情都需要细心与耐心。这样到了项目的结束时，我想很多人心中都会有很多遗憾。为什么我们不认认真真地做完一件事情呢？至少让自己少遗憾一次吧。<br />
<br />
&nbsp;&nbsp;&nbsp; <span style="font-size: 12pt;"><span style="font-size: 10pt;"><span style="font-weight: bold;"><span style="font-size: 12pt;">开放的Sun SPOTs，Ericsson技术专题，In-Time Java<span style="font-size: 12pt;">。</span></span></span></span></span><br />
&nbsp;&nbsp;&nbsp; 这是我当天听的另外三个Session。说实话，我对它们都没什么兴趣，也没认真听，所以就放在一起混说吧。前两个主题都是关于Java ME的。正如前面我所说的，Java ME不是我关心的领域，但看着讲师们在那儿玩弄着各种器件(机器人，掌中设备，...)，像变魔术似，也不禁有些心动。纯Java似乎虚了些，Java+粗笨的服务器也不好玩，Java+手机之类的器件才有趣嘛。对Java ME有兴趣的朋友可以参考Java One中<a href="http://developers.sun.com/learning/javaoneonline/j1online.jsp?track=4&amp;yr=2007">关于ME的Session</a>。<br />
&nbsp;&nbsp;&nbsp; 再谈谈In-Time Java，No，no，no，我可不懂什么In-Time Java，但我知道讲师提到的<a href="http://mpfwww.jpl.nasa.gov/default.html">Mars Pathfinder</a>(火星探路者)飞行器。著名的<a href="http://www.jpl.nasa.gov/index.cfm">JPL</a>(美国喷气动力推进实验室，诞生过多位诺贝尔奖获得者)的著名的火星探路者当然是飞到了火星上，还在火星上工作了很长的时间。但这与Java有什么关系吗？当然有关系了，而且关系大着呢。这个飞行器的软件系统就是用Java写的!Oh，a cup of Java, cheers!哈哈，Java在火星上都能运行良好，更何况在地球上呢。Mars Pathfinder是Java发展历程中的一件大事，我想每位Java人都应该知道它。<br />
&nbsp;&nbsp;&nbsp; 随便提一句，我本人也"有幸"与JPL"沾"上点儿关系。在猴年马月的寅时卯分，我这个超级无敌菜鸟级兼职系统管理员手下的两台公网服务器不知被哪位贪吃的黑客相中，成为他/她/它盘中的"肉鸡"，然后被利用去攻击JPL的服务器，还因此收到了<a href="http://www.fbi.gov/">FBI</a>的警告信!吾在中国，岂能受你山姆大叔的恐吓！！！但从中美两国人民友谊的大局出发，我还是请来了一位高手，问题很快就解决了。现今吾已经专责于Java程序开发，恐日后再难遇到类似事件了 @_@<br />
&nbsp;&nbsp;
<br />
&nbsp;&nbsp;&nbsp; <strong><span style="font-size: 12pt;">小结</span></strong><br />
&nbsp;&nbsp;&nbsp; 上周四、周五开完会之后，确实有些累，每天奔波于南五环外与北四环之间，算是体会到了公司里很多同仁们每天都要遭受的煎熬(本人的住所与公司离得很近)。不过，心情很愉悦。趁着这股兴奋劲儿，利用上周末的两天，以及最近三天的晚上(每天都是凌晨1点左右才睡觉)完成了这两篇关于STD的随笔，相信看到本篇随笔的朋友已经看过我的<a href="http://www.blogjava.net/jiangshachina/archive/2007/11/06/158334.html">上一篇随笔</a>了。<br />
&nbsp;&nbsp;&nbsp; 今年参会人数(约1500人)比去年多，为此会务组特意安排了两个主会场。熟话说，人上一百，形形色色。参加STD的朋友们各自的"特性"肯定不尽相同，甚至相差很大。但我想说，只要大家怀着学习的心态就都会认为在STD中定有所收获。不论，你的Java技术水平高或低，喜欢/从事Java Web或桌面或嵌入式应用开发，我想大家都会各有所需，各有所得。毫无疑问，STD的讲师们(基本上都是Sun的Technology Evangelist)不可能在如此短的时间内把一个主题完全讲清楚。比如Concurrency，这就是一个十分复杂的主题，恐怕与会的朋友们中的大多数都不能清晰地描述它(反正我是不太懂，但我正在<a href="http://www.blogjava.net/jiangshachina/archive/2007/10/28/156522.html">研究并发编程</a>)。因此，就算讲师是<a href="http://www.briangoetz.com/">Brian Goetz</a>/<a href="http://g.oswego.edu/">Doug Lea</a>/<a href="http://www.blogjava.net/jiangshachina/archive/2007/06/11/123283.html">Joshua Bloch</a>，也不可能讲得很深。但我们不能因此而说，参加此类技术活动还不如自己在家里看书。记得在上小学时，教师就告诫过我们：你听老师讲，比你自己看书效率要高很多。<br />
&nbsp;&nbsp;&nbsp; 但同样要说，如果只是听别人讲，也是远远不够的。STD不是技术培训班，这本来就是大家的一个交流与沟通的平台。与会者和讲师之间，与会者和与会者之间都应该有交流和互动。很惭愧，我在这一点上做的很不好。不过，我会改进的。实际上我已经有改进了，这回我就多次"举手"，只是运气不好，讲师没有点到我(当然，这些也只是小的进步罢了)。<br />
&nbsp;&nbsp;&nbsp; 说到交流，就不能不说到英语。相信这是很多技术朋友们的一块心病，me too！虽然自己平时看英文技术文章比较多，也<a href="http://www.blogjava.net/jiangshachina/category/27200.html">翻译过若干篇文章</a>，但听/说仍然是一大难题。不过，长期的努力还是会有一些进步的。记得今年4月26日在北京第一次参加<a href="http://www.db4o.com/">db4o</a>的用户会议时，db4o的CEO Christof很热情地与每一位参会者进行一对一的交谈。可惜我的英语听/说都很差，结果基本上都是Christof在说，而我只说了不到十句话，并且我也听不懂他所说的大部分内容(How shame I am!!!)。不过，到了9月30日去武汉第二次参加db4o用户会议时，我就能和Christof聊上一会儿了。当然，这种进步并不算大，但一次小小的进步就是一次大大的鼓励。<br />
&nbsp;&nbsp;&nbsp; 最后祝我自己每天都有新的进步，每年都有大的进步！<br />
&nbsp;&nbsp;&nbsp; 最最后祝大家都有大大地进步！！！<br />
<br />
&nbsp;&nbsp;&nbsp; 同是Java爱好者，相逢何必曾相识！ -- <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#105;&#97;&#110;&#103;&#115;&#104;&#97;&#99;&#104;&#105;&#110;&#97;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;">江莎</a><br />
&nbsp;&nbsp;&nbsp; a cup of Java, cheers！-- <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#105;&#97;&#110;&#103;&#115;&#104;&#97;&#99;&#104;&#105;&#110;&#97;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">Sha Jiang</a><br />
&nbsp;&nbsp;&nbsp; <a href="http://www.blogjava.net/jiangshachina">jiangshachina</a><br />
</span>
<img src ="http://www.blogjava.net/jiangshachina/aggbug/158629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiangshachina/" target="_blank">Sha Jiang</a> 2007-11-08 08:39 <a href="http://www.blogjava.net/jiangshachina/archive/2007/11/08/158629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sun Tech Days 2007 -- Day 1(原)</title><link>http://www.blogjava.net/jiangshachina/archive/2007/11/06/158334.html</link><dc:creator>Sha Jiang</dc:creator><author>Sha Jiang</author><pubDate>Tue, 06 Nov 2007 01:15:00 GMT</pubDate><guid>http://www.blogjava.net/jiangshachina/archive/2007/11/06/158334.html</guid><wfw:comment>http://www.blogjava.net/jiangshachina/comments/158334.html</wfw:comment><comments>http://www.blogjava.net/jiangshachina/archive/2007/11/06/158334.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/jiangshachina/comments/commentRss/158334.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiangshachina/services/trackbacks/158334.html</trackback:ping><description><![CDATA[<div align="center"><strong><span style="font-size: 10pt;"><span style="font-size: 14pt;">Sun Tech Days 2007 -- Day 1</span></span></strong><br />
</div>
&nbsp;&nbsp;&nbsp; <span style="font-size: 10pt;">Sun Tech Days 2007(北京站)已经结束了，趁热打铁，在此把本次会议中我的所见、所闻、所思与所得记录下来。本文是关于我在Sun Tech Days第一天中的见闻思得。(2007.11.10最后更新)<br />
<br />
&nbsp;&nbsp;&nbsp; 如我的上一篇<a href="http://www.blogjava.net/jiangshachina/archive/2007/10/30/144709.html">介绍Sun Tech Days 2007的随笔</a>所提及的，这已是我连续第三年参加<a href="http://www.suntechdays.cn/">Sun科技日</a>了。必须说，每年的体验都都有很大的不同，把这些不同的体验记下来，至少也是一种回忆。我也希望与朋友们分享的我的所见、所闻、所思与所得。<br />
&nbsp;&nbsp;&nbsp; 与过去两年我所参加的STD不同，Sun CEO--目前是Jonathan Schwartz，以前是Scott McNealy和Java之父--James Gosling这次都没有来中国。那两次时任Sun CEO的Scott McNealy都有讲话(2005年时是正式致辞；2006年时只作简短讲话)，Gosling则都是做主题演讲(Keynote)。虽然他们肯定不是会议的全部，也不一定是会议的关键部分，但我仍然为他们没有出席而感到一点失望。<br />
&nbsp;&nbsp;&nbsp; 我想参加过此类活动的朋友一定都能猜到主题演讲的内容 :-) 简言之，主题演讲就是描述了Sun的关键软件技术/产品(Java，Solaris，....)当前的状态，展示了Sun作为创新的领导者为发展这些技术所做的巨大贡献，这些技术在改进人们生活的过程中所发挥的重要作用，并努力使大家相信这些技术在未来拥有非常美好的前景。<br />
&nbsp;&nbsp;&nbsp; 按照贯例，在每天上午的议程中都有一个Sun技术演示(Sun Technical Demo)的环节*。Sun的讲师分成两个组，每位讲师用五分钟的时间展示他们各自领域中的一个酷炫应用，然后由我们大家用掌声选出最好的那个组(当然，每个组都很棒*_*)。当天共展示了关于Swing(Joey Shen)，JavaFX(Chuk-Munn Lee)，AJAX/Web 2.0(Doris Chen)和嵌入式(Angela Caicedo)这四个领域的"小"应用。让我印象深刻的就是Angela的嵌入式应用演示--两个小机器人之间的交互；Joey展示的炫目Swing应用也十分吸引我，他还向大家留了一个悬念(Oh，就是Angela和Joey搭档的小组获得大家最热烈的掌声)。下面将介绍当天我所参加的各个技术专题。<br />
<br />
&nbsp;&nbsp;&nbsp; <span style="font-size: 12pt;"><strong>Java SE 6十大特性，探讨Java SE 7以及OpenJDK。</strong></span><strong></strong><br />
&nbsp;&nbsp;&nbsp; 类似于这种"昨天，今天与明天"的主题也是每年都有的。Java SE 6提高了Java桌面应用的性能，并为GUI开发提供了很多的增强型新特性：Desktop API；Splash Screent；支持Vista L&amp;F；Tray Icon；GroupLayout；...。我最近刚开始做Swing/AWT方面的开发，所以对这一块比较关注。classpath通配符是一个很实用的新特性：可以把某个目录下的所示jar文件使用通配符(*)将它们全部加载到classpath环境变量中。Compiler API，让应用程序在运行时能够编译源代码，我还不清楚它的应用场景。Scripting API，目前在JVM上已经可以运行JavaScript(Mozzila 1.2)和JRuby这些脚本语言了。...其实讲师(Chuk-Munn Lee)并没有特别地指明Java SE 6的十大新特性，但实际上很多朋友可能早已知道<a href="http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/beta2.html">Java SE 6的十大新特性</a>了。<br />
&nbsp;&nbsp;&nbsp; JDK 7可能的新特性：新的Swing跨平台Look&amp;Fell--<a href="https://nimbus.dev.java.net/">Nimbus L&amp;F</a>(Metal L&amp;F太土了？)；Consumer JRE(下面有一节专门讲它)；Closure(不明白为什么要增加如此"奇怪"的语法)；<a href="https://appframework.dev.java.net/">Swing Application Framework</a>(Sun对Swing的支持果然是一如既往)；Super Package(我也不能理解为什么需要这种语法)；...<br />
&nbsp;&nbsp;&nbsp; 让我十分遗憾的是，讲师并没有提到OpenJDK的情况？!<br />
</span><span style="font-size: 10.5pt; font-family: '宋体';"><font face="宋体"><span style="font-size: 10pt;"><span style="font-size: 10.5pt; font-family: '宋体';"><font face="宋体"><span style="font-size: 10pt;"><span style="font-size: 10.5pt; font-family: '宋体';"><font face="宋体"><span style="font-size: 10pt;">&nbsp;&nbsp; 关<span style="font-size: 10pt;">于该主题的内容还可以参见JavaOne&nbsp;2007中的相关主题：</span></span><a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-2383&amp;yr=2007&amp;track=5">Java&nbsp;SE&nbsp;Present&nbsp;and&nbsp;Future</a>，<a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-2800&amp;yr=2007&amp;track=5">The&nbsp;OpenJDK&nbsp;Project&nbsp;Report</a></font></span></span></font></span><span style="font-size: 10pt;">。<br />
<br />
</span></span></font></span><span style="font-size: 10pt;"><strong>
</strong>&nbsp;&nbsp;&nbsp; <strong><span style="font-size: 12pt;">消费版JRE：更小巧，更强劲。</span></strong><br />
&nbsp;&nbsp;&nbsp; <span style="font-size: 10pt;">Consumer JRE与Java Kernel的出现主要是基于解决发布或运行Java程序时遇到的几个问题：<br />
&nbsp;&nbsp;&nbsp; [1]不知道目标用户机器上的JRE是什么版本；<br />
&nbsp;&nbsp;&nbsp; [2]Java程序的启动速度慢，特别是当冷启动时；<br />
&nbsp;&nbsp;&nbsp; [3]JRE较大，不方便下载；<br />
&nbsp;&nbsp;&nbsp; [4]安装Java程序的时间可能较长。<br />
&nbsp;&nbsp;&nbsp; Consumer JRE(大约在一个月之前，Consumer JRE已经更名为"<a href="http://weblogs.java.net/blog/chet/archive/2007/10/early_access_gr.html">Java SE 6 Update N</a>"，非常有趣的名字)将会在2008年的早些时候正式发布，它会拥有：<br />
&nbsp;&nbsp;&nbsp; [1]更快的启动服务。一般会认为解释运行字节码会比较慢，但实际上并非如此，因为JVM很早就引入了JIT(Just-In Time)编译器，许多常用字节码已经被编译成了二进制代码。但冷启动时，确实比较慢，主要是因为JRE还未存入内存中；而对于热启动，它的速度还不错，所以目前需要特别地解决冷启动的问题。要解决冷启动的问题可以采用如下方法：启动一个后台进程，周期性的读取文件，并把它们存储到磁盘缓存中，从磁盘缓存中读取文件就相当于是热启动了。尽可能载入较少的jar文件也有利于提高启动速度(见下一条)。<br />
&nbsp;&nbsp;&nbsp; [2]Java Kernel。目前的JRE都比较大，而且核心的rt.jar也很大(JRE 6中的rt.jar就有40M左右)。Java Kernel则非常的小(2M左右)，而且高度模块化。rt.jar被分割成许多小的jar文件。默认情况下，Java Kernel只能运行"Hello World"这样的程序，如果运行的程序需要更多的JRE中的jar文件，则会根据需要适时地下载。使用Java Kernel运行SwingSet2这样的程序，在下载了所需的jar文件后其大小也仅有4M左右。<br />
&nbsp;&nbsp;&nbsp; [3]Java Technology Deployment Kit。这个工具集就是用于回答"用户机器是否安装了JRE？安装了何种版本的JRE？"这样的问题。<br />
&nbsp;&nbsp;&nbsp; [4]改进的安装器(指图形用户界面的安装向导)。这个安装程序更方便，界面也更友好。<br />
&nbsp;&nbsp;&nbsp; 我个人对Consumer JRE是比较关注的，主要就是由于我目前正从事着Java桌面应用开发。桌面程序要直接运行在用户的操作系统中，这就要求尽最大努力减少对用户的影响(易用，界面友好，节约用户机器的性能，...)。目前才刚接触Applet，就已经感到安装插件是一个十分棘手的问题。...是的，安装Applet浏览器插件应该是很容易的，但不是每个人都这么认为。<br />
&nbsp;&nbsp;&nbsp; 关于该主题的内容还可以参见JavaOne 2007中的相关主题：<a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-3160&amp;yr=2007&amp;track=2">Desktop Java Technology Today</a>，<a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-2383&amp;yr=2007&amp;track=5">Java SE Present and Future</a>。还可以看看<a href="http://weblogs.java.net/blog/chet/">Chet Haase的Blog</a>中的<a href="http://weblogs.java.net/blog/chet/archive/2007/05/consumer_jre_le.html">相关内容</a>。<br />
<br />
</span></span><span style="font-size: 10pt;">
&nbsp;&nbsp;&nbsp; <span style="font-size: 12pt;"><strong>Java脚本编程：JavaFX脚本以及JRuby。</strong></span><br />
&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt;">虽然我对JavaScript深恶痛绝(跨平台的梦魇 Orz)，对JRuby/Ruby不屑一顾(因为我不会 ^_^)，但我对<a href="https://openjfx.dev.java.net/">JavaFX</a>还是有几分兴趣的。JavaFX作为Java家族中的新技术，在今年JavaOne上受到了大家的热捧。<br />
&nbsp;&nbsp;&nbsp; 本来我对RIA(Rick Internate Application)应用也没什么兴趣的，但近期加入了一个金融门户网站的项目。目前我接手开发一个基于Applet的客户端工具，该项目中的其它部分则可能会使用RIA方面的技术(<a href="http://www.adobe.com/products/flex/">Flex</a>？JavaFX ？？)。不过，做RIA应用，程序员只是其中的一部分罢了，UI设计才是首当其冲。<br />
&nbsp;&nbsp;&nbsp; 这个主题的讲师就是前面提到过的演示了Java ME机器人应用的Angela Caicedo。由于我的英文听力不太好，而且本来对JavaFX知之甚少，所以近1个小时下来似乎没收获到什么 :-(<br />
&nbsp;&nbsp;&nbsp; 关于该主题的内容还可以参见JavaOne 2007中的相关主题：<a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-3160&amp;yr=2007&amp;track=2">Desktop Java Technology</a>。<br />
<br />
<span style="font-size: 10pt;">
</span></span><span style="font-size: 10pt;">&nbsp;&nbsp;&nbsp; <strong><span style="font-size: 12pt;">如何有效地在Java平台上进行并发编程。</span></strong><br />
&nbsp;&nbsp;&nbsp;
</span><span style="font-size: 10pt;">我对并发/多线程应用十分感兴趣，目前正在翻译<a href="http://java.sun.com/docs/books/tutorial/">Java Toturials</a>中<a href="http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html">Concurrency一章</a>。但不得不说，目前讨论并发编程还是超出了我的能力。而且讲师Doris Chen使用的幻灯片与今年JavaOne的一个主题"<a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-2388&amp;yr=2007&amp;track=5">Effective Concurrency for The Java Platform</a>"所使用幻灯片十分相似，所以大家可以参考JavaOne中的那个主题的幻灯片，就不用我废话了。另外，JavaOne中还有一个关于测试并发应用程序的主题"<a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-2220&amp;yr=2007&amp;track=5">Testing Concurrent Software</a>"，也可一并参考。<br />
&nbsp;&nbsp;&nbsp; 再推荐一本书，<a href="http://www.china-pub.com/computers/common/info.asp?id=34825">Java Concurrency in Practice</a>，肯定有很多朋友已经知道这本书了。该书在去年刚出版后，就在当年的JavaOne大会中就受到追捧，成为当届JavaOne的书籍销售冠军。我早前就买过一本，但很快就转卖给了另一位同事(因为她很想要)，故在STD的现场又买了一本 :D<br />
<br />
</span>
<span style="font-size: 10pt;">
&nbsp;&nbsp;&nbsp; <strong><span style="font-size: 12pt;">充满活力的Swing回来了。</span></strong><br />
&nbsp;&nbsp;&nbsp;
</span><span style="font-size: 10pt;">正如我早前所说的，Swing是我最喜欢的Java"表现层"。与许多基于无状态的HTTP协议的Web应用相比，毫无疑问，作为纯Java程序的Swing可以更方便，更高效地实现各种炫目的GUI(当然，它们关注于不同的应用场景，实际上没有可比性)。<br />
&nbsp;&nbsp;&nbsp; 今年，Joey Shen(去年，前年也是他)为大家带来了一个展示了多种炫目GUI技术的Swing Demo。这个Demo是Sun Swing Team开发的，Oh-oh-oh，Swing核心开发者做的Java GUI果然不同凡响--华丽的界面，动画，透明，重影，半透明拖放，....，一个都不能少。<br />
&nbsp;&nbsp;&nbsp; 但实事求是地说，Joey演示的这些先进的GUI特效在我的工作中一时还用不上。不过，我还是对他介绍的在Swing中制作动画效果的框架--<a href="https://timingframework.dev.java.net/">Timing Framework</a>产生了兴趣，...另外，我在第二天(注意，是第二天)的下午会议快要结束时，趁着参加动手实验室"Java SE故障诊断大全"的机会向Joey(他主讲那个动手实验室)问了一个我在工作中遇到的使用AWT画线时出现的问题。<br />
&nbsp;&nbsp;&nbsp; 在今年JavaOne中关于Swing/Desktop开发的主题有很多，大家可以选择<a href="http://developers.sun.com/learning/javaoneonline/j1online.jsp?track=2&amp;yr=2007">Java Desktop</a>中的你所感兴趣的主题。<br />
<br />
&nbsp;&nbsp;&nbsp; <span style="font-size: 12pt;"><strong>GC友好的Java编程</strong></span><strong></strong><br />
&nbsp;&nbsp;&nbsp; 我并没有听这个主题，因为它与并发编程的主题在时间上冲突了(可惜！)。但我可以看今年JavaOne中的一个同名主题<a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-2906&amp;yr=2007&amp;track=5"><span style="font-size: 10pt;">Garbage-Collection-Friendly Programming</span></a></span><span style="font-size: 10pt;">中的幻灯片。该幻灯片介绍了并发编程的一些基本原则。<br />
<br />
<span style="font-size: 10pt;"><span style="font-size: 10pt;"> &nbsp; &nbsp; </span><strong><span style="font-size: 12pt;">照片</span></strong><br />
&nbsp;&nbsp;&nbsp; 去一趟肯定要有些留念，但借的相机质量不太好，我用的也不太习惯，所以很多照片质量欠佳(Www，去年也是这样)，比较遗憾。我就只帖了几张照片到<a href="http://www.flickr.com/photos/jiangshachina/sets/72157602844861081/">我的Flickr</a>上，有兴趣的朋友可以去看看。另外，STD中国官方网站已经帖出了不少关于<a href="http://www.suntechdays.cn/Snapshots_BJ.htm">STD北京站</a>的图片(我也把这些图片copy到了<a href="http://www.flickr.com/photos/jiangshachina/sets/72157602844861081/">我的Flickr</a>中*_*)。<br />
&nbsp;&nbsp;&nbsp; 注：根据以前的经验，从大陆地区应该无法直接访问Flickr中的图片(图片都是红<span style="color: red;">x</span>，只能看到文字)，所以需要通过代理服务器。使用FireFox的朋友(包括我自己)就很方便了，只要安装FireFox的插件--<a href="https://addons.mozilla.org/en-US/firefox/addon/4286">Acess Flickr!</a>，就可以自由浏览Flickr了^_^ 不过，我刚才用IE测试了一下，似乎现在又可以直接访问Flickr了，但只能访问到较近一段时间内的图片。难道GFW又放过了Flickr？还好，我的图片都是老少咸宜的，身正不怕影子歪嘛。<br />
</span></span>
<span style="font-size: 10pt;"><br />
<span style="font-size: 8pt;"><span style="font-size: 10pt;"><span style="font-size: 12pt;">&nbsp;&nbsp; <strong><span style="font-size: 12pt;"><span style="font-size: 14pt;"><span style="font-size: 12pt;"><a href="http://www.blogjava.net/jiangshachina/archive/2007/11/08/158629.html">敬请关注我的下一篇随笔：Sun Tech Days 2007 -- Day2</a></span></span></span></strong></span></span></span><br />
</span>
<img src ="http://www.blogjava.net/jiangshachina/aggbug/158334.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiangshachina/" target="_blank">Sha Jiang</a> 2007-11-06 09:15 <a href="http://www.blogjava.net/jiangshachina/archive/2007/11/06/158334.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sun Tech Days 2007 -- Preview(原)</title><link>http://www.blogjava.net/jiangshachina/archive/2007/10/30/144709.html</link><dc:creator>Sha Jiang</dc:creator><author>Sha Jiang</author><pubDate>Tue, 30 Oct 2007 08:28:00 GMT</pubDate><guid>http://www.blogjava.net/jiangshachina/archive/2007/10/30/144709.html</guid><wfw:comment>http://www.blogjava.net/jiangshachina/comments/144709.html</wfw:comment><comments>http://www.blogjava.net/jiangshachina/archive/2007/10/30/144709.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.blogjava.net/jiangshachina/comments/commentRss/144709.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiangshachina/services/trackbacks/144709.html</trackback:ping><description><![CDATA[<div align="center"><strong><span style="font-size: 12pt;"><span style="font-size: 14pt;">
Sun Tech Days 2007 -- Preview</span></span></strong><br />
</div>
<span style="font-size: 10pt;">&nbsp;&nbsp;&nbsp; 一年一度的<a href="http://www.suntechdays.cn/">Sun Tech Days</a>又将开幕了，</span><span style="font-size: 10pt;">本文回顾了我前两年参会的体验，并分析了本次会议中我个人所感兴趣的几个主题。<span style="font-size: 10pt;">(2007.10.12最后更新)</span></span><br />
<br />
<span style="font-size: 10pt;">&nbsp;&nbsp;&nbsp; 从上周三开始，本年度的Sun科技日(Sun Tech Days，STD)就开始接受报名了。官方网址：<a href="http://www.suntechdays.cn">http://www.suntechdays.cn</a>，优惠期截止到9月29日之前(我想应该就是到9月28日为止吧)。在优惠期内，单个人的会费是195元，和去年的会费一样(Well，没有随社会物价的上涨而上涨 ^_^)。<br />
&nbsp;&nbsp;&nbsp; 今年，将是我连续第三年参加STD了。<br />
&nbsp;&nbsp;&nbsp; <strong>2005年</strong>，当时还在武汉上大学(我本身也是湖北人)。那时学习Java不到1年，断断续续的，满打满算就11个月，学习也不努力，连门都没入(在学校里自学，效率太低了) :-( 但不知道为什么，对Java/软件开发非常感兴趣，而对自己的本专业--通信，就是一点兴趣都没有(呜呜呜，浪费了7年时间啊！)。2005年恰逢Java 10周年，从CSDN上看到要在北京举办JavaChina 2005(其实也就是STD)的消息，就报名参加了。对2005年的感觉就是，规模很大，北京主会场有4000多人，另外8个城市的分会场也有4000人左右。毕竟是Java 10周年嘛，其它年份的STD都达不到这个规模(当然，JavaOne的规模每年都会超过STD)。2005年时的我，对Java只是一知半解，在会议的众多session中，我也不知道应该听哪些主题，只是选择了一些Java语言级方面的session去听了。现在回想起来，也不知道当时听到了些什么。<strong>当年的最大收获就是和Java之父James Gosling有一张集体合影</strong>。哈哈，这难倒就是获得Sun认证的最大好处吗 *_* 因为我是在顺便参加"Sun认证群英会"时有幸得到了这个机会。</span><span style="font-size: 10pt;">这次活动大大激励了我学习和应用Java的热情。</span><br />
<span style="font-size: 10pt;">
&nbsp;&nbsp;&nbsp; <strong>2006年</strong>，我刚刚毕业，目前一直在北京的一家电子商务类的公司工作。虽然在当时还没有直接地参与Java项目的开发，不过项目都是和Java相关的(我当时做系统方面的工作)，并且一直坚持对Java技术的学习。其实，我自感自己的Java基础还是不错的，2004年，通过"Sun认证Java程序员 SCJP"(88%得分率)，2005年通过"Sun认证Java开发员 SCJD"(97%得分率)，而且平常学习时很注重基础知识。出于不断学习Java技术的想法，我又参加了当年的STD。此时，毕竟有些经验了，知道的东西也多了些，再听STD，就会有自己的选择了。我仍然对Java语言的基础部分比较关注(Java 5的新特性，Java 6的新特性)，另一个很关注的就是数据库方面(Java DB)。Java DB的session，我认为是当年最好的。2006年的收获确实不少，很多场景我现在还有很深的回忆。另外，发现在自己的英语水平又有提高了，这个收获可能更大啊 @_@<br />
&nbsp;&nbsp;&nbsp; <strong>今年</strong>，我已工作一年有余，有了一些实际的Java项目开发经验，并且学到了更多的Java方面的知识，有了新的提高。关于今年的STD，其中有几个session确实是我本人十分期待的，如关于：<br />
&nbsp;&nbsp;&nbsp; <strong>Open JDK</strong>。Java是真的开源了，而不是"半"开源(javac、core API、...，all of them have "Full" Sources)。目前我们使用的Sun JDK，不能debug Java API(因为src.zip中的源文件与实际使用的rt.jar中的class文件无法完全对应上，它们不是"一脉同生"的。"Who"动的手脚，FT!)，这让我很多次的很、很、很不爽。Well，现在我们可以用OpenJDK了。OpenJDK就是Java，而不是Java的一个分支(<a href="http://harmony.apache.org">Apache Harmony</a>？)，JDK 7的新特性将首先在Open JDK中实现。OpenJDK与Sun JDK的关系，就如OpenSolaris与Sun Solaris之间的关系。一个是开源社区主导的开源项目，另一个是Sun公司的产品。但Sun的产品(JDK，Solaris)是从开源项目(OpenJDK，OpenSolaris)中来的，只不过Sun在内部另外再做了一些测试。可能Sun产品的稳定性更强些，但差别应该很小，因为Sun这些产品的源代码最终还是要放到相关的开源项目中。<br />
&nbsp;&nbsp;&nbsp; <strong>Consumer JRE</strong>。当前的JDK/JRE太大了？Java程序的启动(特别是冷启动)太慢了？Consumer JRE很快就要来了。还有Java Kernel，它能像Linux Kernel那样出众嘛？<br />
&nbsp;&nbsp;&nbsp; <strong>Java DB</strong>。我一向关注数据库应用，去年听了，今天还要听。超级小(但比<a href="http://www.db4o.com/">db4o</a>大N倍)、可嵌入(不一定就是"嵌入式")，做大型数据库的前端Cache，方便使用、无需DBA，...。看起来都很吸引人，不是吗，哈哈哈...。在去年的STD中就听了Sun的数据库产品经理(华人，能够讲中文，就是讲中文，太棒了！)讲的这个session，今年又将有<br />
新玩意儿(也许这次要换讲师了？！)。<br />
&nbsp;&nbsp;&nbsp; <strong>Swing</strong>。我个人(or，一个人？)最喜欢的Java"表现层"。"UI"可能是Java最弱的方面了。Web方面的表现层框架，用起来都不方便(和M$ .Net的WebForm差太远了)；由于Java的桌面应用不受多数人的关注，而且还受SWT的冲击，Swing/AWT的应用面只能很小了。但我就是喜欢这种纯Java的"表现层"，它那如此优秀的组件化恐怕是其它Web表现层框架无法达到的(JSF的组件化是在模仿Swing)。在Java使用GPL v2协议开源之后，可以与Linux系统兼容(目前Ubuntu 7.0.4已默认安装JRE 6)，这为Java桌面应用提供了更多机会。<br />
&nbsp;&nbsp;&nbsp; <strong>Concurrency</strong>。</span><span style="font-size: 10pt;">该主题是今年Java One的session之一。</span><span style="font-size: 10pt;">java.util.concurrent包是JDK 5的重要新特性。在JDK 5之前，大家在编写Java多线程应用时，只能使用Thread，Runnable和wait，notify，notifyAll，...等少数几个类/接口和方法。大量的工作都需要应用程序员自己去完成。现在有了concurrent包，相信会给大家提供更多的便利。该包目前受到大师们的广泛重视。关于它，已经有了专题书籍<span style="font-size: 10pt;">"JAVA CONCURRENCY IN PRACTICE"(主要作者Brain Goetz是JSR 166--"</span></span><font size="-1">Concurrency Utilities</font><span style="font-size: 10pt;"><span style="font-size: 10pt;">"的核心成员，合作者还包括Joshua Bloch这样的Java Guru)和"<span style="font-size: 10pt;">Concurrent Programming in Java: Design Principles and Patterns</span></span></span><span style="font-size: 10pt;"><span style="font-size: 10pt;">"(作者Doug Lea是JSR 166和OpenJDK项目的领导，concurrent包的创始人)；Bruce Eckel的"Think in Java 4th"有一章专门讲它；Joshua Bloch在他的"Effective Java"第二版(尚未完成)中也将会为concurrent单辟一章。虽然在实际的工作中还没有机会编写多线程应用，但一直对它十分感兴趣。早前在参加SCJD考试时，做的一个C/S应用就使用了多线程。但那时是使用JDK 1.4，没能用到concurrent包。而且整个多线程机制也十分简单：由RMI分派线程，自己写一个Lock管理器，再加上同步。已经买了一本"JAVE CONCURRENCY IN PRACTICE"中文版，将会继续研究多线程应用。</span></span><br />
<span style="font-size: 10pt;">
&nbsp;&nbsp;&nbsp; <strong>Garbage Collector</strong>。我不得不关注的Java Coding基本功，该主题也是今年JavaOne的session之一(看来世界上的Guru、牛X、高手们都是很重视基础的，I love :-)。(如果有Exception Handle方面的session就好了，这也是Java的关键基础之一)。<br />
&nbsp;&nbsp;&nbsp; <strong>JSF</strong>。不得不说，我在Java Web表现层开发方面的"造诣"颇小。因为我认为Web表现层应用并不是纯Java的(如前所述，我喜欢Swing的原因之一就是它的纯Java性)，做Web表现层开发，不是完全在做Java开发(JSP，JavaScript，HTML，CSS，...)。在主流的几种Java Web表现层框架中，JSF也不是最常用的。不过，由于JCP把JSF作为Java EE 5规范的一部分，那么所有要兼容Java EE 5规范的应用服务器就必须提供自己的JSF实现。既然主流的应用服务器都已经(如WebLogic 10，Kingdee Apusic 4--关注一下国货撒)或将要(如JBoss 5)默认提供JSF框架，那么我们也许可以想当然的认为，使用JSF的比率将来肯定会有所提升。大厂商们的这种做法，还真有点"霸权主义"、"强权政治"的意味。不过，公道自在人心，还是要相信群众哦。<br />
&nbsp;&nbsp;&nbsp; <strong>Java FX</strong>。M$ Silverlight的"杀手"？但我似乎没必要去做那些炫目的RIA。<br />
&nbsp;&nbsp;&nbsp; ...<br />
<br />
&nbsp;&nbsp;&nbsp; 为STD打了一次广告，但是免费的。个人认为多参加一些此类技术活动，对自己的技术发展是十分有利的。<br />
&nbsp;&nbsp;&nbsp; 在参加完</span><span style="font-size: 10pt;">今年的</span><span style="font-size: 10pt;">STD和Netbeans Day之后，我会为每一天的活动写一篇随笔，以飧众友。<br />
<br />
&nbsp;&nbsp;&nbsp; See you at <a href="http://www.suntechdays.cn/">Sun Tech Days</a></span><span style="font-size: 10pt;"> 2007！</span><span style="font-size: 10pt;">
</span>
<img src ="http://www.blogjava.net/jiangshachina/aggbug/144709.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiangshachina/" target="_blank">Sha Jiang</a> 2007-10-30 16:28 <a href="http://www.blogjava.net/jiangshachina/archive/2007/10/30/144709.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>