- 浏览: 3048042 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
官方网站:Sun 开发者技术日 2009
这是个在北京-上海-广州三地举办的活动。我家正好就在广州站会场附近,赶上趟了。昨晚有同学给我官网链接看,
看到红色的这句我湿了,毅然决定把原本跟一个高中同学约好的活动取消掉,报名去听听讲。
好吧其实我是看到了……
嗷!那旅行背包太有吸引力了,我回到家来发现之前在学校收拾宿舍的时候漏拿了个包,正愁没包用呢 T T
好吧其实光是背包也不足以吸引我去。日程安排里还是有些我有爱的session的:(完整日程安排请见官网)
(多谢JavaEye实现了table标签的BBCode,这是我第一次在发出来的帖里试用这功能,暂时还够用)
我主要关心的果然还是编译器、VM和OS……JavaFX也可以一听,其它就在兴趣外了。
可是跑到现场去,发现现场给出的日程安排跟官网预告的不一样。DC坏了还没修,本来我用手机拍了张会场门口摆出来的日程安排,刚才要把照片拿出来的时候发现手机的红外居然也坏了……照片暂时弄不出来了,忽略它吧。
(地中海国际大酒店……会场选的地方的服务态度还不错,session间的茶歇时间有提供糕点。就是电梯诡异了点,稍微不平衡就大叫[哔——]。然后没有提供无线网络也稍微不爽。)
今天会场相当满,不知道有多少人呢,400+?我差不多上午9点进到会场,已经没剩多少座位了。下面随便写写我所看到的。Session标题我没准确记下来,下面加黑的不是标题名,只是我记的大致主题方向。
开场致辞和keynote
9点John准时开始开场致辞。然后是Naveen Asrani×Chuk-Munn Lee的keynote。主要也就是些套话,宣传Sun如何open,developer如何受益之类。确实,Sun把自己的重量级产品都开源了,连Java、Solaris和SPARC都,对开源界不可谓贡献不大。可惜这开源策略不足以支撑公司的财政收入。另外open source与open standard哪个更值得关注呢?至少在Java标准上,JSR够不够open就值得商榷。诶不过随便啦,这些政治问题……
Chuk在这个keynote里做了两次demo,第一个是JavaFX的,第二个是把CLDC profile的phoneME Feature移植到NDS上的。
在JavaFX的demo里,Chuk提到现在NetBeans还得用6.5来开发JavaFX,对应6.7的插件还没好。在嵌入了FLV录像之后,Chuk似乎总得重复build-run他的demo两次才能让FLV正确播放出来,有点奇怪。在给播放中的FLV加上旋转效果之后,程序明显变卡了,跟我之前自己试的时候一样。相对来说WPF在旋转的时候效果还好些……可能只是个案。
在演示移植CLDC到NDS的demo里,Chuk在现场用一台NDSi来演示了移植的CLDC在实机上运行的状况,包括其中自带的几个小游戏。我坐在最后一排,完全看不到他到底演示了什么,只能叹息。要是有实物投影就好了。
我知道NDS系列用的CPU是ARM架构的,而CLDC以前就可以在ARM架构的平台上运行。觉得很好奇,要把CLDC“移植”到NDS上需要做些什么工作,就在休息时间跑去问了Chuk。他回答说其实JVM本身并不需要什么修改,上面的MIDP、PCSL也不用怎么改。光是修改源码的话,主要是core Java library要做些修改,根据平台提供的API来修改核心Java类库中native的部分(这部分我听得不太清楚,希望我没听错)。然后工程量最大的是修改makefile,调整整个build tree。我一直对build各种东西感到无奈,听到这里顿时虎躯一震 =v=||||
受限于NDS那可怜的只有4MB的内存,移植过去的JVM以纯解释模式执行,而不进行JIT编译。
对了,这个移植是开源的,项目页面在这里:DoubleVision
Java EE 6
10点左右,Chuk开始了第二场演讲,主题是Java EE 6的新特性。
我已经好久没写过Java EE的应用了。天啊,我都不记得当时我用的Struts的版本是多少了。总之这部分我不是的料。
我就记得Chuk讲了Java EE 5已经大量运用annotations来做各种配置,唯独Servlet例外。在Java EE 6里,Servlet也终于用Java 5开始的新语言特性来改造,可以用annotations来对程序做默认配置。库的提供商也可以通过web-fragment.xml来提供默认配置,这样就不会污染应用特定的web.xml了。原本的web.xml还是有用的,它的配置能override掉annotations或者web-fragment.xml的配置。
然后asynchronus Servlet看起来也有点意思,可以提高程序的响应性,避免线程被数据库查询之类的操作所阻塞。不过要看到最终结果,还是得等数据库的操作完成,所以这玩儿多半不会让程序真的更快……吧?
JavaFX
接下来,11点左右是Joey做的JavaFX的session,主要介绍了JavaFX 1.2的一些东西。
这个演讲里提到了JavaFX与其它RIA平台的differentiation,但我觉得其中的信息有点没跟上时代的步伐。例如现在已经发布了的Silverlight 3就已经支持out-of-browser的运行,而Flex与AIR的整合在未来肯定也会变得更加完善,所以JavaFX要以“能拉出浏览器单独运行”为“独特之处”显然不合适。
JavaFX与浏览器DOM的整合也是如此。Silverlight 2与Flex 3也提供了不错的浏览器DOM整合,可以让它们与浏览器之间的事件挂上钩,做到双向相应。这已经算是RIA平台的标配了,算不上是“特点”。
倒是Chuk和Joey非正式透露的一些东西更有趣些,像是基于Webkit的JavaFX专用浏览器,可以对要浏览器网站像mash-up一样裁剪、提取内容、改变样式之后再显示出来;又或者是WYSIWYG的JavaFX设计器。后者在今年JavaOne上已经demo过了,不过还不够完善,离release还有距离。
我对JavaFX的了解还不够深入,说真的,没太感受到它在桌面上的strength在哪里。如果是通过WebService或者RESTful API来跟后台交互的话,那前台的表现层无论用什么都可以,不会说因为后台用Java EE,前台用JavaFX就会方便多少。JavaFX跟Java的紧密整合真正的strength在哪里?求指点。
但它在移动设备上应该会有很强的竞争力。跟桌面上不同,Java在移动设备上的部署率远超过了Flash,而Silverlight的魔掌还没有力的伸入这一领域。使用Common Profile来编写JavaFX应用,就能够让同一个程序很轻松的部署到桌面、浏览器和移动设备上。或许Sun应该更多宣传这一点?
在听Joey的session时突然觉得JavaFX的Node跟WPF的UIElement的地位好像。要是有时间系统的比较一下两者就好了;可惜兴趣不在此,多半是不会深入去做的。JavaFX Script我还挺喜欢的,至少比XAML或者MXML看起来舒服多了。就像JSON比XML看起来舒服一样?
SOA
快12点的时候,Chuk开始了SOA的session。主要是演示了在NetBeans里使用JBI(Java Business Integration)和BEPL做SOA开发。这个session我没怎么听,中途溜回家吃饭去了 OTL
原来BEPL读作“be-ple”,WSDL读作“whizdle”啊……嗯也算是个收获。
基于Sun SPOT无线传感器网络技术
中午1点半之后我回到会场,John的基于Sun SPOT无线传感器网络技术的session刚准备开始。他提到了传感器与电脑的连接方式的发展,从一台电脑只能接一个传感器的“点覆盖”,到现场总线技术的“线覆盖”,到通过开放标准连接的面覆盖,然后通过各种无线技术自动组网的“域覆盖”。他的session里所说的无线传感器网络特指使用IEEE 802.15.4标准、能自动组网的传感器组成的网络。
John提到,对这些小传感器设备来说,最重要的不是处理能力,不是内存大小,而是电源。为此他举了基于x86架构的PC-104与基于ATmega的UCB Mote的例子来比较。前者有较强的处理能力,能支持多种流行的操作系统,可以使用多种编程语言,比较容易招到程序员,但设备耗电量较大;后者处理能力较低,内存较小,使用TinyOS,主要使用C来编程,耗电量小。对那种一部署到野外就很长时间没人管的传感器设备,没电了的话显然什么也干不了,从这点看UCB Mote似乎更favorable。但C相对Java来说写起来困难些(这个不是我的观点,见仁见智),如果能保持UCB Mote的好的特性,同时引入更友好的开发环境,那就解决了不好找程序员的问题(例如Java...);于是Sun SPOT就来了。Sun SPOT的CPU是32位、180MHz的ARM902T,有5-12KB的SRAM和4MB的Flash ROM;演示板上有重力传感器,加速度计,还有啥传感器来着,忘了 =v=
接下来的几个演示跟我上个月才看过的同学的毕设答辩上的一组演示很相似,都演示了单个设备的传感器的工作,多个设备自动组网后程序行为的变化,远程对设备的控制(包括程序的热部署)等。我同学的毕设就是用UCB Mote来做的,在TinyOS上用C来编程。6月份毕设答辩,他们的设备5月才到,在一个月里学那么多东西也真够呛的 OTL 印象中我同学用的mote上的LED是有2个还是3个来着,反正没Sun SPOT的演示板上的LED多。John演示的“粘滞球”程序还是挺震撼的,会场里很多人的激动了:把Sun SPOT的一排LED当成一条管子,两端的LED亮红色来显示端点,中间根据重力传感器的数据来点亮一个LED看作在管子里滚动的小球。把两个设备靠在一起来摇晃的时候,可以根据程序模式的切换来改变“小球”滚动的行为,每个设备上的“小球”可以限制在自己那段“管子”里滚动,也可以滚动到旁边的设备的“管子”里。挺有趣的。
我留意到做热部署演示时,执行的Ant任务的log里有一项是'Starting Squawk VM'之类的字样。后来查资料才知道原来Sun SPOT里的JVM就是基于一种叫做Squawk VM的虚拟机制作的。这个JVM是种元循环解释器的实现,其中大部分都是用Java来实现的。引用Wikipedia上的一张示意图:
同样适用Java来实现JVM的还有Jikes RVM项目。我对Jikes RVM比较熟悉些,而Squawk VM还是第一次听说。呵呵,“Squawk”这名字听起来就很“Squeak”。
John说一套Sun SPOT的演示板有3件,一共3000多人民币。不知道这方面的市场情况如何,不过3000多对我来说好贵啊 T T
Java Performance Tuning
之后,下午2点50分左右的是Joey做的关于Java Performance Tuning的session。他的切入点不是遇到某个性能问题的具体解决方法,而是对各种profiler工具的介绍和演示,包括JConsole、jps、jinfo、jstat、jstack、HPROF、jhat、jmap、VisualVM等。
(我当时在纸上记的笔记没记全,不小心把Windows上支持得不好的给记漏了,上面凭印象补充了笔记里没有的几个。等投影片开放下载之后再整理完整的列表)
Joey介绍的那么多工具里,我以前只用过VisualVM。不过他把这工具放在了最后才讲,而且只是一两句话带过而已,提到它是个“all-in-one”式的有图形界面的profiler。从JDK6u7开始,VisualVM已经包含在JDK的工具包里,可以直接使用而不必单独下载。
JConsole,全称Java Monitoring and Management Console,是一个JMX客户端,可以挂接到正在运行的Java进程上,显示进程的CPU占用率、内存状况、线程状况和类加载状况,并且可以简单的检测进程当前有没有发生线程死锁状况。它检测死锁的原理是把各个线程当前持有锁的状况构造成一幅依赖图,检查里面有没有环;因此它只能检测出“当前正在发生”的死锁,而无法检测到未发生的死锁,这是JConsole的一个小限制。
Joey提到Java程序在性能上遇到的问题大都可以归为三类:计算密集的、不合理使用线程(包括死锁)、不合理使用内存。JConsole正好在这三方面都能收集数据并以图形方式显示出来,是分析Java程序的性能问题好用的轻量级工具。
jps,全称Java Virtual Machine Process Status Tool。与Unix上的ps工具可以查看当前所有正在运行的进程的信息一般,jps也是一个命令行工具,可以用于查看当前运行的所有Java进程(更准确的说,所有jps有权限访问的JVM)的概况。它可以用来查询每个JVM的lvmid(local VM identifier),为使用其它几个命令行工具提供方便——它们大都需要vmid来指定要查看哪个JVM的信息。不过这个工具现在是unsupported的,以后可能会不再随JDK发布。
jstat,全称Java Virtual Machine Statistics Monitoring Tool,可以实时的在标准输出流上显示类装载、GC与JIT的运行数据。
jmap,全称Memory Map,可以用来查看某个Java进程的内存使用状况的细节。它可以用于创建heap dump。在使用二进制方式转储(例如-dump:live.format=b选项)时,可以与下面提到的jhat配合使用。虽然在启动Java程序的时候可以传入-XX:+HeapDumpOnOutOfMemoryError参数,在遇到堆溢出的时候也会得到一个heap dump,但那必须在JVM启动时就设置好参数,而不能让任意一个JVM给出heap dump;用jmap就没有这个问题。
这个工具在Windows上支持得不太好,只能用-dump和-histo这两个选项。详细请查看官方文档。
jhat,全称Java Heap Analysis Tool,可以用一种友好的方式显示出heap dump里的内容,例如显示某个类型的所有实例,每个实例里所有成员数据,甚至可以通过类似SQL的OQL(Object Query Language)来查询对象,非常强大。用各种方式得到heap dump之后不用再对着一堆二进制数据感到无奈,用jhat就可以看到底堆上内存是个啥状况,然后猜测问题出在什么地方。
在介绍jhat的时候,Joey提了个有奖问题,关于GC如何判断对象是否存活的原理。这个我正好比较熟悉,赶紧举手回答:GC从root set开始顺着reference标记,如果从root set的reference到某个对象有一条路径,这个对象就是活的。然后Joey追问到JVM的root set是什么,我回答是栈上的和静态存储区里的引用。这个回答让我成功的获得了一个旅行背包,哈哈,怎么这也是吸引我去参加活动的动力之一,当然是很高兴。不过我还是不怎么适应场面,答完问题之后吓得全身发抖;其实回答问题的时候就已经很紧张了,紧张得语言模式还没切换回来就作答了……诶。
Joey补充到root set是局部变量和静态存储区里的引用。根据JVM规范,方法的局部变量就应该放在Java stack的栈帧上,所以我的回答应该没问题……吧。当然JVM规范只是规定了概念,不能跟实际实现混为一谈。如果说要补充的话,在采用分代式垃圾收集器的JVM里,在扫描年轻代的时候root set除了包括栈帧上的引用(包括寄存器里可能有的引用)之外,还包括从年老代指向年轻代的引用;这是分代式垃圾收集器的特征,年老代指向年轻代的引用一般是通过在JIT时生成的write barrier来记录的。
另外几个介绍的命令行工具我没有在纸上做什么笔记,这里也就不写了。
在介绍了VisualVM后,最后Joey强烈推荐了Troubleshooting Java™ SE站点,作为进一步阅读的资源。
Darkstar - Java Game Server
下午4点左右,Ada开始介绍Project Darkstar。这是一个致力于简化大型多人在线游戏的后端开发的游戏服务器实现,启动于2001年。现在的大型多人在线游戏,如MMORPG类型的,需要有low-latency、scalable、consistent等许多特性,要正确做到persistence,总之麻烦事很多。Darkstar就是为解决这些问题而提供的基础设施。
Session中很大部分是在讲API,我不太感兴趣所以没仔细听。但那容器API让我觉得它跟老的EJB一样有很强的侵入性,不知道是不是跟项目启动年代有关系,还是只是我的错觉。
OpenSolaris
最后一个session,下午5点左右由Paul做的关于OpenSolaris的介绍。他简短介绍了Solaris和OpenSolaris的历史。其中提到一个观点:现在可以把Solaris看成OpenSolaris的一个distro……这种看法对我来说挺新颖的,照这么说Sun JDK也可以看作OpenJDK的一个distro,StarOffice也可以看作OpenOffice.org的一个distro,etc。这么说也没错就是了。
Sun已经开始对OpenSolaris提供官方支持,所以现在要找OpenSolaris有两个官网:
http://opensolaris.org
http://www.opensolaris.com
前一个才是原来的OpenSolaris的社区网站,后一个是Sun提供官方支持的网站来的。Paul推荐大家访问前一个网站 ^ ^
OpenSolaris在开源发布以来已经得到了长足的发展,改善了其易用性以及与其他Unix/Linux的兼容性。列举的众多优点在投影片上都有,像DTrace、ZFS和IPS之类,这里就不重复了。(问题是我现在还不知道在哪里下载投影片……)
Paul特别提到东芝在他们的笔记本里预装了OpenSolaris,是这个操作系统的一大进步。
这个session的目标听众跟当天实际到场的人或许不太吻合?Paul问了好几个问题都没人能给出正确答案。问的问题诸如:
问题:最新的OpenSolaris的版本号是什么,在什么时候什么地方发布的?
正确答案:OpenSolaris 2009.06,是2009年6月1日在CommunityOne上发布的。
问题:Solaris的前身是哪两种操作系统?
正确答案:Sun版的BSD——Sun OS,与System V。
问题:CIFS是什么的缩写?
正确答案:Common Internet File System。OpenSolaris里的CIFS其实就是Samba的一个port。
有人问Paul,Oracle收购了Sun对Java的影响。Paul回答到他上午才看到内部email说董事会已经批准了收购案,让收购过程又进了一步。Oracle对Java很重视,让他感到有点意外。他让各位Java开发人员放心,这个技术还会继续得到大力支持的。
结束
所有session结束后,礼品中貌似还剩下6、7本OpenSolaris红宝书没送出去。John说大家可以自由上去拿,话音刚落,只见一群人蜂拥而上开始抢夺……瞬间就抢完了嗯。
总得来说活动内容很充实,去参加这么一次还是颇有收获的。如果对相关主题都比较熟悉,可能会觉得整个活动就是大的产品演示而已……但我相信没多少人会同时精通那么多东西 =v=
遗憾的是在原本的日程安排里下午Chuk做的移植phoneME的session从半小时的演示缩成了keynote里的一小段。说真的我更想听听他是如何实现这个移植的,而不只想看他拿着NDSi在上面demo……
那么 SOA 是不是念作 "刷" ……
NS老兄 T T
刚才放狗,发现有把WSDL注音为“wizzdle”的。SOA貌似有读“so-ah”的
嗯读这种词让我想起Visio,几乎所有同学都宁可把它读作“猥琐” =v=
我记得是读成“骚啊“
不是你的回复,而是每页最后一个回复,都会有广告。
天啊,居然要那么长时间……JAOO、JVM Language Summit之类的活动都很快就放资源出来了啊 T T JavaOne也很快
他要是在新加坡的技术日上有详细讲解phoneME Features的port的话,拜托分享一下信息哦~~
对了,请问技术日上的相关资料应该从哪里获取?我是说那些presentation slides之类的
好的。presentation slides一般在活动完了几个月后会放在developer day的网站上。
他要是在新加坡的技术日上有详细讲解phoneME Features的port的话,拜托分享一下信息哦~~
对了,请问技术日上的相关资料应该从哪里获取?我是说那些presentation slides之类的
Chuk不是香港人么?噢我可能猜错了……但他的主要语言看来是粤语和英语,用普通话有点不自然。如果他直接用英语来做presentation我可能听得更习惯些 =v=
Chuk在香港和新加坡都工作过,哪人我也不知道。我听的就是他用英语做的,说得很快,但新加坡口音很重。我下个星期二也要去技术日了。
啊哈哈,遇到同去的与会者了。幸会幸会。不知道JavaEye还有多少人去了那天的活动呢?
我之前在南京上学都很难去参加这些活动,要参加就得专门跑到上海去,好麻烦 T T Sun有时候也会跑来学校做活动,不过貌似比较热衷于推销SCJP……
那个session照原本安排上写的,不是应该讲Java 6在性能上的新特性么。我也是很想听听Sun的员工会如何介绍新的HotSpot里的新GC和JIT的改进。不过内容变成profiler demo也还算有趣,可以接受
Chuk不是香港人么?噢我可能猜错了……但他的主要语言看来是粤语和英语,用普通话有点不自然。如果他直接用英语来做presentation我可能听得更习惯些 =v=
经典的是 mysql~~
幸好我几天前看过,否则还真被你考倒了。
明月三千里
那么 SOA 是不是念作 "刷" ……
NS老兄 T T
刚才放狗,发现有把WSDL注音为“wizzdle”的。SOA貌似有读“so-ah”的
嗯读这种词让我想起Visio,几乎所有同学都宁可把它读作“猥琐” =v=
经典的是 mysql~~
谁来注音
那么 SOA 是不是念作 "刷" ……
NS老兄 T T
刚才放狗,发现有把WSDL注音为“wizzdle”的。SOA貌似有读“so-ah”的
嗯读这种词让我想起Visio,几乎所有同学都宁可把它读作“猥琐” =v=
那么 SOA 是不是念作 "刷" ……
这是个在北京-上海-广州三地举办的活动。我家正好就在广州站会场附近,赶上趟了。昨晚有同学给我官网链接看,
Sun中国技术社区 写道
Sun中国技术社区敬请您前来参加2009年7月即将于北京、上海和广州三地举行的Sun技术日活动。通过此次活动,您可以了解到Sun公司正在开发的最新产品和技术,以及Sun公司被Oracle公司收购之后可能的发展方向。鉴于这可能是Sun公司最后一次以Sun公司的名义举办开发者技术日活动,我们特意准备了大量印制有Sun公司标志的纪念品赠送给前来参加活动的开发人员。
看到红色的这句我湿了,毅然决定把原本跟一个高中同学约好的活动取消掉,报名去听听讲。
好吧其实我是看到了……
Sun中国技术社区 写道
所有前来参加此次活动的开发人员均可得到一套印制有Sun公司标志或者是Java标志的纪念品。这套纪念品包括一只环保购物袋(分男款和女款),一支签字笔,一个记事本,以及一只钥匙扣。除此之外,我们还将通抽奖的方式送出如下礼品:
- 50只Duke玩具
- 10只旅行背包
- 10套帽子套装
- 10只桌面电子表
- 10本《NetBeans权威指南》
- 10本《OpenSolaris红宝书》
- 10本《Solaris操作系统原理》
- 50只Duke玩具
- 10只旅行背包
- 10套帽子套装
- 10只桌面电子表
- 10本《NetBeans权威指南》
- 10本《OpenSolaris红宝书》
- 10本《Solaris操作系统原理》
嗷!那旅行背包太有吸引力了,我回到家来发现之前在学校收拾宿舍的时候漏拿了个包,正愁没包用呢 T T
好吧其实光是背包也不足以吸引我去。日程安排里还是有些我有爱的session的:(完整日程安排请见官网)
13:30 -- 14:20 | 提升Java性能 | Joey Shen | Java SE 6引入了一些新的功能和性能增强,为平台中的许多领域都提供了性能改进。这些改进包括:同步性能优化、编译器性能优化、新的并行缩并垃圾收集器 (Parallel Compaction Collector)、工效更高的并发低停顿垃圾收集器(Concurrent Low Pause Collector),以及应用程序的启动性能。 |
14:20 -- 15:10 | 您的设备之智慧 - 移植 phoneME到您的设备上 | Chuk Munn Lee | Java ME平台已经为无数数字设备提供了易于编程控制功能。phoneME是Sun为CLDC和CDC平台打造的开源实现。在这部分演讲中,我们将近距离观察这些平台,评估它们的特性并通过一个案例全程学习移植CLDC到任天堂DS游戏平台。 |
15:20 -- 16:10 | 基于Sun SPOT的无线传感器网络技术 | 蒋清野 | Sun SPOT是Sun Labs正在开发的实验室技术,简称为小型可编程器件技术(Small Programmable Object Technology,SPOT)。基于Sun SPOT的无线传感器网络技术可以广泛应用于室内和野外的远程数据采集与处理应用。Sun SPOT的一个重大突破是可以使用Java语言进行嵌入式应用开发,一举改变了以前嵌入式应用开发必须使用C语言甚至是汇编等低级编程语言的状态,大大地降低了嵌入式开发的门槛。 |
17:15 -- 18:00 | OpenSolaris | OpenSolaris 包含GNOME桌面、GNU工具和基于网络的软件管理系统,此外还有ZFS文件系统、动态跟踪(Dynamic Tracing,DTrace)框架、用于在受保护环境中运行应用程序的容器和区域,以及高级网络虚拟化功能。 |
(多谢JavaEye实现了table标签的BBCode,这是我第一次在发出来的帖里试用这功能,暂时还够用)
我主要关心的果然还是编译器、VM和OS……JavaFX也可以一听,其它就在兴趣外了。
可是跑到现场去,发现现场给出的日程安排跟官网预告的不一样。DC坏了还没修,本来我用手机拍了张会场门口摆出来的日程安排,刚才要把照片拿出来的时候发现手机的红外居然也坏了……照片暂时弄不出来了,忽略它吧。
(地中海国际大酒店……会场选的地方的服务态度还不错,session间的茶歇时间有提供糕点。就是电梯诡异了点,稍微不平衡就大叫[哔——]。然后没有提供无线网络也稍微不爽。)
今天会场相当满,不知道有多少人呢,400+?我差不多上午9点进到会场,已经没剩多少座位了。下面随便写写我所看到的。Session标题我没准确记下来,下面加黑的不是标题名,只是我记的大致主题方向。
开场致辞和keynote
9点John准时开始开场致辞。然后是Naveen Asrani×Chuk-Munn Lee的keynote。主要也就是些套话,宣传Sun如何open,developer如何受益之类。确实,Sun把自己的重量级产品都开源了,连Java、Solaris和SPARC都,对开源界不可谓贡献不大。可惜这开源策略不足以支撑公司的财政收入。另外open source与open standard哪个更值得关注呢?至少在Java标准上,JSR够不够open就值得商榷。诶不过随便啦,这些政治问题……
Chuk在这个keynote里做了两次demo,第一个是JavaFX的,第二个是把CLDC profile的phoneME Feature移植到NDS上的。
在JavaFX的demo里,Chuk提到现在NetBeans还得用6.5来开发JavaFX,对应6.7的插件还没好。在嵌入了FLV录像之后,Chuk似乎总得重复build-run他的demo两次才能让FLV正确播放出来,有点奇怪。在给播放中的FLV加上旋转效果之后,程序明显变卡了,跟我之前自己试的时候一样。相对来说WPF在旋转的时候效果还好些……可能只是个案。
在演示移植CLDC到NDS的demo里,Chuk在现场用一台NDSi来演示了移植的CLDC在实机上运行的状况,包括其中自带的几个小游戏。我坐在最后一排,完全看不到他到底演示了什么,只能叹息。要是有实物投影就好了。
我知道NDS系列用的CPU是ARM架构的,而CLDC以前就可以在ARM架构的平台上运行。觉得很好奇,要把CLDC“移植”到NDS上需要做些什么工作,就在休息时间跑去问了Chuk。他回答说其实JVM本身并不需要什么修改,上面的MIDP、PCSL也不用怎么改。光是修改源码的话,主要是core Java library要做些修改,根据平台提供的API来修改核心Java类库中native的部分(这部分我听得不太清楚,希望我没听错)。然后工程量最大的是修改makefile,调整整个build tree。我一直对build各种东西感到无奈,听到这里顿时虎躯一震 =v=||||
受限于NDS那可怜的只有4MB的内存,移植过去的JVM以纯解释模式执行,而不进行JIT编译。
对了,这个移植是开源的,项目页面在这里:DoubleVision
Java EE 6
10点左右,Chuk开始了第二场演讲,主题是Java EE 6的新特性。
我已经好久没写过Java EE的应用了。天啊,我都不记得当时我用的Struts的版本是多少了。总之这部分我不是的料。
我就记得Chuk讲了Java EE 5已经大量运用annotations来做各种配置,唯独Servlet例外。在Java EE 6里,Servlet也终于用Java 5开始的新语言特性来改造,可以用annotations来对程序做默认配置。库的提供商也可以通过web-fragment.xml来提供默认配置,这样就不会污染应用特定的web.xml了。原本的web.xml还是有用的,它的配置能override掉annotations或者web-fragment.xml的配置。
然后asynchronus Servlet看起来也有点意思,可以提高程序的响应性,避免线程被数据库查询之类的操作所阻塞。不过要看到最终结果,还是得等数据库的操作完成,所以这玩儿多半不会让程序真的更快……吧?
JavaFX
接下来,11点左右是Joey做的JavaFX的session,主要介绍了JavaFX 1.2的一些东西。
这个演讲里提到了JavaFX与其它RIA平台的differentiation,但我觉得其中的信息有点没跟上时代的步伐。例如现在已经发布了的Silverlight 3就已经支持out-of-browser的运行,而Flex与AIR的整合在未来肯定也会变得更加完善,所以JavaFX要以“能拉出浏览器单独运行”为“独特之处”显然不合适。
JavaFX与浏览器DOM的整合也是如此。Silverlight 2与Flex 3也提供了不错的浏览器DOM整合,可以让它们与浏览器之间的事件挂上钩,做到双向相应。这已经算是RIA平台的标配了,算不上是“特点”。
倒是Chuk和Joey非正式透露的一些东西更有趣些,像是基于Webkit的JavaFX专用浏览器,可以对要浏览器网站像mash-up一样裁剪、提取内容、改变样式之后再显示出来;又或者是WYSIWYG的JavaFX设计器。后者在今年JavaOne上已经demo过了,不过还不够完善,离release还有距离。
我对JavaFX的了解还不够深入,说真的,没太感受到它在桌面上的strength在哪里。如果是通过WebService或者RESTful API来跟后台交互的话,那前台的表现层无论用什么都可以,不会说因为后台用Java EE,前台用JavaFX就会方便多少。JavaFX跟Java的紧密整合真正的strength在哪里?求指点。
但它在移动设备上应该会有很强的竞争力。跟桌面上不同,Java在移动设备上的部署率远超过了Flash,而Silverlight的魔掌还没有力的伸入这一领域。使用Common Profile来编写JavaFX应用,就能够让同一个程序很轻松的部署到桌面、浏览器和移动设备上。或许Sun应该更多宣传这一点?
在听Joey的session时突然觉得JavaFX的Node跟WPF的UIElement的地位好像。要是有时间系统的比较一下两者就好了;可惜兴趣不在此,多半是不会深入去做的。JavaFX Script我还挺喜欢的,至少比XAML或者MXML看起来舒服多了。就像JSON比XML看起来舒服一样?
SOA
快12点的时候,Chuk开始了SOA的session。主要是演示了在NetBeans里使用JBI(Java Business Integration)和BEPL做SOA开发。这个session我没怎么听,中途溜回家吃饭去了 OTL
原来BEPL读作“be-ple”,WSDL读作“whizdle”啊……嗯也算是个收获。
基于Sun SPOT无线传感器网络技术
中午1点半之后我回到会场,John的基于Sun SPOT无线传感器网络技术的session刚准备开始。他提到了传感器与电脑的连接方式的发展,从一台电脑只能接一个传感器的“点覆盖”,到现场总线技术的“线覆盖”,到通过开放标准连接的面覆盖,然后通过各种无线技术自动组网的“域覆盖”。他的session里所说的无线传感器网络特指使用IEEE 802.15.4标准、能自动组网的传感器组成的网络。
John提到,对这些小传感器设备来说,最重要的不是处理能力,不是内存大小,而是电源。为此他举了基于x86架构的PC-104与基于ATmega的UCB Mote的例子来比较。前者有较强的处理能力,能支持多种流行的操作系统,可以使用多种编程语言,比较容易招到程序员,但设备耗电量较大;后者处理能力较低,内存较小,使用TinyOS,主要使用C来编程,耗电量小。对那种一部署到野外就很长时间没人管的传感器设备,没电了的话显然什么也干不了,从这点看UCB Mote似乎更favorable。但C相对Java来说写起来困难些(这个不是我的观点,见仁见智),如果能保持UCB Mote的好的特性,同时引入更友好的开发环境,那就解决了不好找程序员的问题(例如Java...);于是Sun SPOT就来了。Sun SPOT的CPU是32位、180MHz的ARM902T,有5-12KB的SRAM和4MB的Flash ROM;演示板上有重力传感器,加速度计,还有啥传感器来着,忘了 =v=
接下来的几个演示跟我上个月才看过的同学的毕设答辩上的一组演示很相似,都演示了单个设备的传感器的工作,多个设备自动组网后程序行为的变化,远程对设备的控制(包括程序的热部署)等。我同学的毕设就是用UCB Mote来做的,在TinyOS上用C来编程。6月份毕设答辩,他们的设备5月才到,在一个月里学那么多东西也真够呛的 OTL 印象中我同学用的mote上的LED是有2个还是3个来着,反正没Sun SPOT的演示板上的LED多。John演示的“粘滞球”程序还是挺震撼的,会场里很多人的激动了:把Sun SPOT的一排LED当成一条管子,两端的LED亮红色来显示端点,中间根据重力传感器的数据来点亮一个LED看作在管子里滚动的小球。把两个设备靠在一起来摇晃的时候,可以根据程序模式的切换来改变“小球”滚动的行为,每个设备上的“小球”可以限制在自己那段“管子”里滚动,也可以滚动到旁边的设备的“管子”里。挺有趣的。
我留意到做热部署演示时,执行的Ant任务的log里有一项是'Starting Squawk VM'之类的字样。后来查资料才知道原来Sun SPOT里的JVM就是基于一种叫做Squawk VM的虚拟机制作的。这个JVM是种元循环解释器的实现,其中大部分都是用Java来实现的。引用Wikipedia上的一张示意图:
Wikipedia 写道
同样适用Java来实现JVM的还有Jikes RVM项目。我对Jikes RVM比较熟悉些,而Squawk VM还是第一次听说。呵呵,“Squawk”这名字听起来就很“Squeak”。
John说一套Sun SPOT的演示板有3件,一共3000多人民币。不知道这方面的市场情况如何,不过3000多对我来说好贵啊 T T
Java Performance Tuning
之后,下午2点50分左右的是Joey做的关于Java Performance Tuning的session。他的切入点不是遇到某个性能问题的具体解决方法,而是对各种profiler工具的介绍和演示,包括JConsole、jps、jinfo、jstat、jstack、HPROF、jhat、jmap、VisualVM等。
(我当时在纸上记的笔记没记全,不小心把Windows上支持得不好的给记漏了,上面凭印象补充了笔记里没有的几个。等投影片开放下载之后再整理完整的列表)
Joey介绍的那么多工具里,我以前只用过VisualVM。不过他把这工具放在了最后才讲,而且只是一两句话带过而已,提到它是个“all-in-one”式的有图形界面的profiler。从JDK6u7开始,VisualVM已经包含在JDK的工具包里,可以直接使用而不必单独下载。
JConsole,全称Java Monitoring and Management Console,是一个JMX客户端,可以挂接到正在运行的Java进程上,显示进程的CPU占用率、内存状况、线程状况和类加载状况,并且可以简单的检测进程当前有没有发生线程死锁状况。它检测死锁的原理是把各个线程当前持有锁的状况构造成一幅依赖图,检查里面有没有环;因此它只能检测出“当前正在发生”的死锁,而无法检测到未发生的死锁,这是JConsole的一个小限制。
Joey提到Java程序在性能上遇到的问题大都可以归为三类:计算密集的、不合理使用线程(包括死锁)、不合理使用内存。JConsole正好在这三方面都能收集数据并以图形方式显示出来,是分析Java程序的性能问题好用的轻量级工具。
jps,全称Java Virtual Machine Process Status Tool。与Unix上的ps工具可以查看当前所有正在运行的进程的信息一般,jps也是一个命令行工具,可以用于查看当前运行的所有Java进程(更准确的说,所有jps有权限访问的JVM)的概况。它可以用来查询每个JVM的lvmid(local VM identifier),为使用其它几个命令行工具提供方便——它们大都需要vmid来指定要查看哪个JVM的信息。不过这个工具现在是unsupported的,以后可能会不再随JDK发布。
jstat,全称Java Virtual Machine Statistics Monitoring Tool,可以实时的在标准输出流上显示类装载、GC与JIT的运行数据。
jmap,全称Memory Map,可以用来查看某个Java进程的内存使用状况的细节。它可以用于创建heap dump。在使用二进制方式转储(例如-dump:live.format=b选项)时,可以与下面提到的jhat配合使用。虽然在启动Java程序的时候可以传入-XX:+HeapDumpOnOutOfMemoryError参数,在遇到堆溢出的时候也会得到一个heap dump,但那必须在JVM启动时就设置好参数,而不能让任意一个JVM给出heap dump;用jmap就没有这个问题。
这个工具在Windows上支持得不太好,只能用-dump和-histo这两个选项。详细请查看官方文档。
jhat,全称Java Heap Analysis Tool,可以用一种友好的方式显示出heap dump里的内容,例如显示某个类型的所有实例,每个实例里所有成员数据,甚至可以通过类似SQL的OQL(Object Query Language)来查询对象,非常强大。用各种方式得到heap dump之后不用再对着一堆二进制数据感到无奈,用jhat就可以看到底堆上内存是个啥状况,然后猜测问题出在什么地方。
在介绍jhat的时候,Joey提了个有奖问题,关于GC如何判断对象是否存活的原理。这个我正好比较熟悉,赶紧举手回答:GC从root set开始顺着reference标记,如果从root set的reference到某个对象有一条路径,这个对象就是活的。然后Joey追问到JVM的root set是什么,我回答是栈上的和静态存储区里的引用。这个回答让我成功的获得了一个旅行背包,哈哈,怎么这也是吸引我去参加活动的动力之一,当然是很高兴。不过我还是不怎么适应场面,答完问题之后吓得全身发抖;其实回答问题的时候就已经很紧张了,紧张得语言模式还没切换回来就作答了……诶。
Joey补充到root set是局部变量和静态存储区里的引用。根据JVM规范,方法的局部变量就应该放在Java stack的栈帧上,所以我的回答应该没问题……吧。当然JVM规范只是规定了概念,不能跟实际实现混为一谈。如果说要补充的话,在采用分代式垃圾收集器的JVM里,在扫描年轻代的时候root set除了包括栈帧上的引用(包括寄存器里可能有的引用)之外,还包括从年老代指向年轻代的引用;这是分代式垃圾收集器的特征,年老代指向年轻代的引用一般是通过在JIT时生成的write barrier来记录的。
另外几个介绍的命令行工具我没有在纸上做什么笔记,这里也就不写了。
在介绍了VisualVM后,最后Joey强烈推荐了Troubleshooting Java™ SE站点,作为进一步阅读的资源。
Darkstar - Java Game Server
下午4点左右,Ada开始介绍Project Darkstar。这是一个致力于简化大型多人在线游戏的后端开发的游戏服务器实现,启动于2001年。现在的大型多人在线游戏,如MMORPG类型的,需要有low-latency、scalable、consistent等许多特性,要正确做到persistence,总之麻烦事很多。Darkstar就是为解决这些问题而提供的基础设施。
Session中很大部分是在讲API,我不太感兴趣所以没仔细听。但那容器API让我觉得它跟老的EJB一样有很强的侵入性,不知道是不是跟项目启动年代有关系,还是只是我的错觉。
OpenSolaris
最后一个session,下午5点左右由Paul做的关于OpenSolaris的介绍。他简短介绍了Solaris和OpenSolaris的历史。其中提到一个观点:现在可以把Solaris看成OpenSolaris的一个distro……这种看法对我来说挺新颖的,照这么说Sun JDK也可以看作OpenJDK的一个distro,StarOffice也可以看作OpenOffice.org的一个distro,etc。这么说也没错就是了。
Sun已经开始对OpenSolaris提供官方支持,所以现在要找OpenSolaris有两个官网:
http://opensolaris.org
http://www.opensolaris.com
前一个才是原来的OpenSolaris的社区网站,后一个是Sun提供官方支持的网站来的。Paul推荐大家访问前一个网站 ^ ^
OpenSolaris在开源发布以来已经得到了长足的发展,改善了其易用性以及与其他Unix/Linux的兼容性。列举的众多优点在投影片上都有,像DTrace、ZFS和IPS之类,这里就不重复了。(问题是我现在还不知道在哪里下载投影片……)
Paul特别提到东芝在他们的笔记本里预装了OpenSolaris,是这个操作系统的一大进步。
这个session的目标听众跟当天实际到场的人或许不太吻合?Paul问了好几个问题都没人能给出正确答案。问的问题诸如:
问题:最新的OpenSolaris的版本号是什么,在什么时候什么地方发布的?
正确答案:OpenSolaris 2009.06,是2009年6月1日在CommunityOne上发布的。
问题:Solaris的前身是哪两种操作系统?
正确答案:Sun版的BSD——Sun OS,与System V。
问题:CIFS是什么的缩写?
正确答案:Common Internet File System。OpenSolaris里的CIFS其实就是Samba的一个port。
有人问Paul,Oracle收购了Sun对Java的影响。Paul回答到他上午才看到内部email说董事会已经批准了收购案,让收购过程又进了一步。Oracle对Java很重视,让他感到有点意外。他让各位Java开发人员放心,这个技术还会继续得到大力支持的。
结束
所有session结束后,礼品中貌似还剩下6、7本OpenSolaris红宝书没送出去。John说大家可以自由上去拿,话音刚落,只见一群人蜂拥而上开始抢夺……瞬间就抢完了嗯。
总得来说活动内容很充实,去参加这么一次还是颇有收获的。如果对相关主题都比较熟悉,可能会觉得整个活动就是大的产品演示而已……但我相信没多少人会同时精通那么多东西 =v=
遗憾的是在原本的日程安排里下午Chuk做的移植phoneME的session从半小时的演示缩成了keynote里的一小段。说真的我更想听听他是如何实现这个移植的,而不只想看他拿着NDSi在上面demo……
评论
19 楼
eclipse2008
2009-07-24
<div class="quote_title">iaimstar 写道</div>
<div class="quote_div">
<div class="quote_title">eclipse2008 写道</div>
<div class="quote_div">
<br><br><p> <img src="http://dist.codehaus.org/jruby/misc/duke-ruby.gif" alt=""></p>
<p> </p>
<p>Duke很可爱</p>
</div>
<p><br>其实我认为这个灰常丑如果是这个样子 我就很满意</p>
<p><br><img src="/upload/attachment/128619/b33ad86e-f739-358c-bb0e-69a1c99d57f4.jpg" alt=""></p>
</div>
<p><br>其实我想说</p>
<p> </p>
<p>Duke很可爱,宝石很漂亮</p>
<p> </p>
<p> </p>
<div class="quote_div">
<div class="quote_title">eclipse2008 写道</div>
<div class="quote_div">
<br><br><p> <img src="http://dist.codehaus.org/jruby/misc/duke-ruby.gif" alt=""></p>
<p> </p>
<p>Duke很可爱</p>
</div>
<p><br>其实我认为这个灰常丑如果是这个样子 我就很满意</p>
<p><br><img src="/upload/attachment/128619/b33ad86e-f739-358c-bb0e-69a1c99d57f4.jpg" alt=""></p>
</div>
<p><br>其实我想说</p>
<p> </p>
<p>Duke很可爱,宝石很漂亮</p>
<p> </p>
<p> </p>
18 楼
iaimstar
2009-07-24
<div class="quote_title">eclipse2008 写道</div>
<div class="quote_div">
<br><br><p> <img src="http://dist.codehaus.org/jruby/misc/duke-ruby.gif" alt=""></p>
<p> </p>
<p>Duke很可爱</p>
</div>
<p><br>其实我认为这个灰常丑如果是这个样子 我就很满意</p>
<p><br><img src="/upload/attachment/128619/b33ad86e-f739-358c-bb0e-69a1c99d57f4.jpg" alt=""></p>
<div class="quote_div">
<br><br><p> <img src="http://dist.codehaus.org/jruby/misc/duke-ruby.gif" alt=""></p>
<p> </p>
<p>Duke很可爱</p>
</div>
<p><br>其实我认为这个灰常丑如果是这个样子 我就很满意</p>
<p><br><img src="/upload/attachment/128619/b33ad86e-f739-358c-bb0e-69a1c99d57f4.jpg" alt=""></p>
17 楼
eclipse2008
2009-07-24
<p><img src="http://dist.codehaus.org/jruby/misc/duke-ruby.gif" alt=""></p>
<p> </p>
<p>Duke很可爱</p>
<p> </p>
<p>Duke很可爱</p>
16 楼
logicgate
2009-07-23
RednaxelaFX 写道
night_stalker 写道
引用
原来BEPL读作“be-ple”,WSDL读作“whisdle”啊
那么 SOA 是不是念作 "刷" ……
NS老兄 T T
刚才放狗,发现有把WSDL注音为“wizzdle”的。SOA貌似有读“so-ah”的
嗯读这种词让我想起Visio,几乎所有同学都宁可把它读作“猥琐” =v=
我记得是读成“骚啊“
引用
我的回复下面怎么出现广告了?
不是你的回复,而是每页最后一个回复,都会有广告。
15 楼
lw223
2009-07-23
<div class="quote_title">lw223 写道</div>
<div class="quote_div">
<div class="quote_title">kimmking 写道</div>
<div class="quote_div">
<div class="quote_title">RednaxelaFX 写道</div>
<div class="quote_div">
<div class="quote_title">night_stalker 写道</div>
<div class="quote_div">
<div class="quote_title">引用</div>
<div class="quote_div">原来BEPL读作“be-ple”,WSDL读作“whisdle”啊</div>
<br>那么 SOA 是不是念作 "刷" ……</div>
<br>NS老兄 T T <br>刚才放狗,发现有把WSDL注音为“wizzdle”的。SOA貌似有读“so-ah”的 <br>嗯读这种词让我想起Visio,几乎所有同学都宁可把它读作“猥琐” =v=</div>
<br>经典的是 mysql~~ <span style="color: #ff0000;">mai se er kou</span><br><br>谁来注音</div>
<p> </p>
<p> </p>
</div>
<p>我的回复下面怎么出现广告了?</p>
<div class="quote_div">
<div class="quote_title">kimmking 写道</div>
<div class="quote_div">
<div class="quote_title">RednaxelaFX 写道</div>
<div class="quote_div">
<div class="quote_title">night_stalker 写道</div>
<div class="quote_div">
<div class="quote_title">引用</div>
<div class="quote_div">原来BEPL读作“be-ple”,WSDL读作“whisdle”啊</div>
<br>那么 SOA 是不是念作 "刷" ……</div>
<br>NS老兄 T T <br>刚才放狗,发现有把WSDL注音为“wizzdle”的。SOA貌似有读“so-ah”的 <br>嗯读这种词让我想起Visio,几乎所有同学都宁可把它读作“猥琐” =v=</div>
<br>经典的是 mysql~~ <span style="color: #ff0000;">mai se er kou</span><br><br>谁来注音</div>
<p> </p>
<p> </p>
</div>
<p>我的回复下面怎么出现广告了?</p>
14 楼
lw223
2009-07-23
<div class="quote_title">kimmking 写道</div>
<div class="quote_div">
<div class="quote_title">RednaxelaFX 写道</div>
<div class="quote_div">
<div class="quote_title">night_stalker 写道</div>
<div class="quote_div">
<div class="quote_title">引用</div>
<div class="quote_div">原来BEPL读作“be-ple”,WSDL读作“whisdle”啊</div>
<br>那么 SOA 是不是念作 "刷" ……</div>
<br>NS老兄 T T <br>刚才放狗,发现有把WSDL注音为“wizzdle”的。SOA貌似有读“so-ah”的 <br>嗯读这种词让我想起Visio,几乎所有同学都宁可把它读作“猥琐” =v=</div>
<br>经典的是 mysql~~ <span style="color: #ff0000;">mai se er kou</span><br><br>谁来注音</div>
<p> </p>
<p> </p>
<div class="quote_div">
<div class="quote_title">RednaxelaFX 写道</div>
<div class="quote_div">
<div class="quote_title">night_stalker 写道</div>
<div class="quote_div">
<div class="quote_title">引用</div>
<div class="quote_div">原来BEPL读作“be-ple”,WSDL读作“whisdle”啊</div>
<br>那么 SOA 是不是念作 "刷" ……</div>
<br>NS老兄 T T <br>刚才放狗,发现有把WSDL注音为“wizzdle”的。SOA貌似有读“so-ah”的 <br>嗯读这种词让我想起Visio,几乎所有同学都宁可把它读作“猥琐” =v=</div>
<br>经典的是 mysql~~ <span style="color: #ff0000;">mai se er kou</span><br><br>谁来注音</div>
<p> </p>
<p> </p>
13 楼
RednaxelaFX
2009-07-22
logicgate 写道
好的。presentation slides一般在活动完了几个月后会放在developer day的网站上。
天啊,居然要那么长时间……JAOO、JVM Language Summit之类的活动都很快就放资源出来了啊 T T JavaOne也很快
12 楼
logicgate
2009-07-22
RednaxelaFX 写道
logicgate 写道
Chuk在香港和新加坡都工作过,哪人我也不知道。我听的就是他用英语做的,说得很快,但新加坡口音很重。我下个星期二也要去技术日了。
他要是在新加坡的技术日上有详细讲解phoneME Features的port的话,拜托分享一下信息哦~~
对了,请问技术日上的相关资料应该从哪里获取?我是说那些presentation slides之类的
好的。presentation slides一般在活动完了几个月后会放在developer day的网站上。
11 楼
RednaxelaFX
2009-07-22
logicgate 写道
Chuk在香港和新加坡都工作过,哪人我也不知道。我听的就是他用英语做的,说得很快,但新加坡口音很重。我下个星期二也要去技术日了。
他要是在新加坡的技术日上有详细讲解phoneME Features的port的话,拜托分享一下信息哦~~
对了,请问技术日上的相关资料应该从哪里获取?我是说那些presentation slides之类的
10 楼
logicgate
2009-07-22
RednaxelaFX 写道
Chuk不是香港人么?噢我可能猜错了……但他的主要语言看来是粤语和英语,用普通话有点不自然。如果他直接用英语来做presentation我可能听得更习惯些 =v=
Chuk在香港和新加坡都工作过,哪人我也不知道。我听的就是他用英语做的,说得很快,但新加坡口音很重。我下个星期二也要去技术日了。
9 楼
RednaxelaFX
2009-07-22
gembler 写道
其实我对Joey的“Java Performance Tuning”这一session有点不爽,因为对G1只字不题。
啊哈哈,遇到同去的与会者了。幸会幸会。不知道JavaEye还有多少人去了那天的活动呢?
我之前在南京上学都很难去参加这些活动,要参加就得专门跑到上海去,好麻烦 T T Sun有时候也会跑来学校做活动,不过貌似比较热衷于推销SCJP……
那个session照原本安排上写的,不是应该讲Java 6在性能上的新特性么。我也是很想听听Sun的员工会如何介绍新的HotSpot里的新GC和JIT的改进。不过内容变成profiler demo也还算有趣,可以接受
logicgate 写道
sun技术日我每次必去的,参加大概有三四年了吧。上一次的比较好,两天时间,内容很充实。比较喜欢的演讲者有两个,一个是sang shin,韩国人,还有一个doris,中国姐姐但一口纯正的美式英语。Joey Shen这哥们也是美式英语,但说的是在不够流畅,我听着累。还有那个Chuk,singlish味太浓了。
Chuk不是香港人么?噢我可能猜错了……但他的主要语言看来是粤语和英语,用普通话有点不自然。如果他直接用英语来做presentation我可能听得更习惯些 =v=
8 楼
logicgate
2009-07-22
sun技术日我每次必去的,参加大概有三四年了吧。上一次的比较好,两天时间,内容很充实。比较喜欢的演讲者有两个,一个是sang shin,韩国人,还有一个doris,中国姐姐但一口纯正的美式英语。Joey Shen这哥们也是美式英语,但说的是在不够流畅,我听着累。还有那个Chuk,singlish味太浓了。
7 楼
iaimstar
2009-07-22
我十分的想去 T_T
T_T_T__T_TT_T_
T_T_T__T_TT_T_
6 楼
gembler
2009-07-22
其实我对Joey的“Java Performance Tuning”这一session有点不爽,因为对G1只字不题。
哈哈 我也是当天才知道有这么的读法
PS: 我承认我拿的书和包包都是从Joey的问题上拿的 囧...
引用
原来BEPL读作“be-ple”,WSDL读作“whisdle”啊……嗯也算是个收获。
哈哈 我也是当天才知道有这么的读法
PS: 我承认我拿的书和包包都是从Joey的问题上拿的 囧...
5 楼
Rainbamboo
2009-07-22
4个回贴都精华了?
4 楼
night_stalker
2009-07-21
kimmking 写道
经典的是 mysql~~
幸好我几天前看过,否则还真被你考倒了。
明月三千里
3 楼
kimmking
2009-07-21
RednaxelaFX 写道
night_stalker 写道
引用
原来BEPL读作“be-ple”,WSDL读作“whisdle”啊
那么 SOA 是不是念作 "刷" ……
NS老兄 T T
刚才放狗,发现有把WSDL注音为“wizzdle”的。SOA貌似有读“so-ah”的
嗯读这种词让我想起Visio,几乎所有同学都宁可把它读作“猥琐” =v=
经典的是 mysql~~
谁来注音
2 楼
RednaxelaFX
2009-07-21
night_stalker 写道
引用
原来BEPL读作“be-ple”,WSDL读作“whisdle”啊
那么 SOA 是不是念作 "刷" ……
NS老兄 T T
刚才放狗,发现有把WSDL注音为“wizzdle”的。SOA貌似有读“so-ah”的
嗯读这种词让我想起Visio,几乎所有同学都宁可把它读作“猥琐” =v=
1 楼
night_stalker
2009-07-21
引用
原来BEPL读作“be-ple”,WSDL读作“whisdle”啊
那么 SOA 是不是念作 "刷" ……
发表评论
-
The Prehistory of Java, HotSpot and Train
2014-06-02 08:18 0http://cs.gmu.edu/cne/itcore/vi ... -
MSJVM and Sun 1.0.x/1.1.x
2014-05-20 18:50 0当年的survey paper: http://www.sym ... -
Sun JDK1.4.2_28有TieredCompilation
2014-05-12 08:48 0原来以前Sun的JDK 1.4.2 update 28就已经有 ... -
IBM JVM notes (2014 ver)
2014-05-11 07:16 0Sovereign JIT http://publib.bou ... -
class data sharing by Apple
2014-03-28 05:17 0class data sharing is implement ... -
Java 8与静态工具类
2014-03-19 08:43 16273以前要在Java里实现所谓“静态工具类”(static uti ... -
Java 8的default method与method resolution
2014-03-19 02:23 10450先看看下面这个代码例子, interface IFoo { ... -
HotSpot Server VM与Server Class Machine
2014-02-18 13:21 0HotSpot VM历来有Client VM与Server V ... -
Java 8的lambda表达式在OpenJDK8中的实现
2014-02-04 12:08 0三月份JDK8就要发布首发了,现在JDK8 release c ... -
GC stack map与deopt stack map的异同
2014-01-08 09:56 0两者之间不并存在包含关系。它们有交集,但也各自有特别的地方。 ... -
HotSpot Server Compiler与data-flow analysis
2014-01-07 17:41 0http://en.wikipedia.org/wiki/Da ... -
基于LLVM实现VM的JIT的一些痛点
2014-01-07 17:25 0同事Philip Reames Sanjoy Das http ... -
tailcall notes
2013-12-27 07:42 0http://blogs.msdn.com/b/clrcode ... -
《自制编程语言》的一些笔记
2013-11-24 00:20 0http://kmaebashi.com/programmer ... -
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22390(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局 (0): 拿在手上的是什么
2013-11-04 18:22 21489(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
Christmas Wish 2013?
2013-10-23 12:27 0For me: Apple MacBook Pro with ... -
对C语义的for循环的基本代码生成模式
2013-10-19 23:12 21871之前有同学在做龙书(第二版)题目,做到8.4的练习,跟我对答案 ...
相关推荐
社区活跃:Java有着全球范围内庞大的开发者社区和开源项目,持续推动技术进步和创新。 多线程支持:Java内建对多线程编程的支持,使并发编程变得更加简单直接。 动态性:Java可以通过反射、注解等机制实现在...
本文旨在深入探讨Sun公司如何通过其独特的云计算技术和理念,引领企业和开发者迈向更高的效率和商业机遇。 #### 二、Sun公司云计算:开启新篇章 Sun公司的云计算技术致力于为企业基础设施的扩展提供无缝支持,帮助...
### JAVA开发者应该去的20个英文网站 对于JAVA开发者来说,访问优质的英文网站不仅可以获取最新的技术资讯,还能深入理解JAVA编程的各种技巧和最佳实践。本文将详细介绍这20个网站,帮助JAVA开发者们拓宽视野、提升...
**React-Sunflower:支付宝行业技术部的高效业务流程库** React-Sunflower,由支付宝行业技术部精心打造,是一款集成了antd设计框架和React Hooks技术的业务流程库。这个库的目标是为开发者提供一套完整的解决方案...
《深入解析JDK1.7源码:补全sun包...总之,补充和完善JDK1.7中的sun包源码是提升Java开发者技术水平的重要步骤。通过深入学习和理解这些源码,不仅可以增进对Java平台底层机制的认识,也能为日常开发工作带来诸多益处。
IBM Developerworks 是 IBM 为开发者提供的一个全面的技术资源平台,其 Java 区域汇集了大量的技术文章、教程和代码示例。这些内容不仅涵盖了 Java SE 和 EE 的各个方面,还包括了 IBM 自身的产品和服务如何与 Java ...
Sun Services不仅提供了技术支持和解决方案,还涵盖了广泛的培训课程和认证计划,帮助开发者和企业充分利用Sun的技术和产品。这些服务包括了针对Java编程语言的深度培训,帮助企业构建和维护基于Java的应用程序。 #...
Sunflower的出现,无疑为开发者提供了一个高效、便捷的解决方案。 首先,我们来深入了解语音识别技术。语音识别是指将人类的口头语言转化为文字或命令的过程。这一技术涉及到多个领域的知识,包括信号处理、模式...
在Java开发领域,JDK(Java Development Kit)是不可或缺的基础工具,它包含了Java运行环境...通过学习这些源码,开发者可以提升自己的技术水平,理解Java的内部运作,更好地优化代码,甚至参与到Java的开源项目中去。
这个项目的核心目标是将Sunflower的实现从Kotlin迁移到Java,以帮助Java开发者理解和掌握Android开发的现代技术栈。以下是该项目中涉及的一些关键知识点: 1. **Android架构组件**:Sunflower应用使用了Android架构...
在Java世界里,数据访问是核心任务之一,而Sun公司的RowSet技术则是Java数据库连接(JDBC)的重要组成部分,它为开发者提供了高效、灵活的数据库操作手段。本文将深入探讨`com.sun.rowset.jar.zip`这个压缩包中的`...
学习和分析这些"sun"开头的源码,可以帮助开发者深入理解Java的底层工作原理,提升编程技能,解决一些特定场景下的问题。不过需要注意的是,由于这些源码属于Oracle私有的实现,其接口和行为可能在未来版本中改变,...
这个包在Java早期版本中被广泛使用,尽管在后续版本中,Java Sound API成为了更推荐的音频处理工具,但sun.audio包仍然保留,为那些需要简单音频功能的开发者提供便利。 在sun.audio包中,有两个主要的类:`...
这个版本是Sun ONE (Open Network Environment) 应用服务器的一部分,它提供了对ASP (Active Server Pages) 技术的支持,允许开发者使用熟悉的微软ASP语法在非Windows平台上开发和运行Web应用。 ASP,全称为Active ...
【标题】"Sun 开源技术高级...综上所述,"Sun 开源技术高级研讨班(青岛)收获分享(二)"提供了丰富的开源技术知识,包括Java、AJAX及其相关工具的深入理解和实践,对于提升开发者的技术水平和理解开源世界有着重要作用。
总的来说,"sun audio"和"media-player"的jar包为Java开发者提供了音频处理和播放的工具,使得在Java环境中实现音频功能变得更加便捷。无论是简单的音频播放还是复杂的媒体控制,这些库都能提供相应的支持。在选择...
它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run ...
3. **SUN - SL-315 JavaServer Pages Technology.pdf**:JavaServer Pages(JSP)是Web应用开发的一种技术,允许开发者在HTML中嵌入Java代码。这本书可能包含JSP语法、指令、动作元素、EL(Expression Language)和...
本文将深入探讨Sun认证资源,以及其对于Java开发者的重要性,尤其聚焦于J2SE资源与Java技术。 ### Sun认证资源概述 Sun Microsystems是Java编程语言的发源地,它不仅创造了Java,还设立了Sun认证体系,旨在提升...
"sun的phoneme"是一个与Java技术相关的主题,特别是针对Sun Microsystems(现在是Oracle Corporation的一部分)开发的Java虚拟机(JVM)的一个特定功能。在Java平台上,"phoneme"通常指的是语音合成技术,它是Java ...