- 浏览: 3047884 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (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分享的概要
上周六参加程序员圆桌会议第二期--关于JVM的那些事的活动,做了一次“简略”的分享……
对里面的每个知识点来说都确实是相当简略,但我太贪心了,想一口气把相关的内容多说一些,结果没控制住时间,不小心连着废话了4个小时……
期待以后能听到校长和毕玄本来要在这次活动做的分享~
Anyway,那4个小时的内容有现场录像,毕玄老大已经将视频上传,并在他的博客放出,地址是:杭州程序员圆桌交流第二期视频
现在视频文件的有效链接是:
Part I
Part II
Part III
Part IV
Part V
Part VI
(国内的同学打不开的话请自备梯子喔)
现场的讲解过程中有些口误的状况,主要原因当然是我水平有限。各位同学如果发现错误的话请积极反馈哦~
仍在不断演化中的那演示稿可以在这里的附件下载到。没有JavaEye帐号的同学可以从115网盘下载:http://u.115.com/file/t03916e70a
其中有几张GIF图在转成PDF后就变静态了,可以到我这边的原帖去看相应的图。
演示稿中有很多地方还是空白的……觉得有些概念还是画个图来比较容易解释,但画出能清晰解释概念的图也挺烧时间的,所以很抱歉,只能把现在“as-is”的稿发出来了。
真正有意思的我觉得不是我写的字,是演示稿里嵌的链接;可以把这个演示稿看成资料堆的粘合剂之类的 >_<
另外这演示稿与其说是为做presentation用还不如说是资料的一顿乱堆……以后要是再有机会做presentation的话得从里面抽出确定的主题出来精简下才行 T T
===============================================================
这次分享的主题是Java程序的执行。以Sun JDK的实现为例,从Java语言的源码开始,通过源码级编译器(javac)编译为Class文件,再由底下的JVM来执行;其中JVM在概念上是怎样的,HotSpot VM是一个怎样的JVM,为“执行程序”提供了怎样的运行时支持,解释器与JIT编译器各自又是怎样的。内容可能有点分散、冗长、在某些点过于钻到细节里。请各位有耐心阅读演示稿的同学在遇到觉得不清晰、或是觉得有错误的地方时不啬指点一下,让我们能共同学习进步 ^_^
更新:
新版本请在另一帖的附件里下载:Java虚拟机分享演示稿2010-12-28版
我是用FireWorks做多帧PNG然后导出为GIF的。每帧都是人肉做的嗯,方法很土鳖 =_=
如果是有些页只有标题下面没东西的话,那些是原本就还没写完的地方……也就是TODO/FIXME
有兴趣的话我可以发原始PPTX给你 ^_^ 可惜最近都没怎么添加内容进去。
同感,后面都没有看了,不知道在前面提到的一个可以嵌入“注解解释器”还是什么来着,后面的视频有没有提到怎么嵌入,这个还估计还能玩一玩。。。
呃,那么夸张……抱歉哈,确实不是所有内容都“实用”的。本来应该跳着看的,挑自己感兴趣的看了就OK。
对主要写Java应用的程序员来说,JVM本身就是个良好的抽象层,本意就是屏蔽过多早“噪音”,让程序员能安心的实现业务逻辑。换句话说那底下是怎么实现的,本身并不是一般工作上会需要特别关注的地方。
大概……我只是想出点力气,把实现方式总结出来,去对冲掉一些对JVM“实现”方面的误解吧,例如说“局部变量在循环内定义比在循环外定义多耗内存”之类的。本来这种内容就已经穿过JVM的抽象层而试图向更接近底层的方向去探,所以如果停留在JVM抽象层以上来分析的话就会有问题。
我是觉得这种本来就不需要Java程序员去关心的部分,跟工作没关系的话不去碰就是最好了,不然留下错误的印象反而不好。
经常被老大说我在错误的地方花费了过多精力。我承认也同意在现在的工作上是这样的。所以说那视频……原本兴趣不大的话,全部看完确实是比较浪费时间的,而且很多问题也没说清楚。抱歉了哈 <(_ _)>
对里面的每个知识点来说都确实是相当简略,但我太贪心了,想一口气把相关的内容多说一些,结果没控制住时间,不小心连着废话了4个小时……
期待以后能听到校长和毕玄本来要在这次活动做的分享~
Anyway,那4个小时的内容有现场录像,毕玄老大已经将视频上传,并在他的博客放出,地址是:杭州程序员圆桌交流第二期视频
现在视频文件的有效链接是:
Part I
Part II
Part III
Part IV
Part V
Part VI
(国内的同学打不开的话请自备梯子喔)
现场的讲解过程中有些口误的状况,主要原因当然是我水平有限。各位同学如果发现错误的话请积极反馈哦~
仍在不断演化中的那演示稿可以在这里的附件下载到。没有JavaEye帐号的同学可以从115网盘下载:http://u.115.com/file/t03916e70a
其中有几张GIF图在转成PDF后就变静态了,可以到我这边的原帖去看相应的图。
演示稿中有很多地方还是空白的……觉得有些概念还是画个图来比较容易解释,但画出能清晰解释概念的图也挺烧时间的,所以很抱歉,只能把现在“as-is”的稿发出来了。
真正有意思的我觉得不是我写的字,是演示稿里嵌的链接;可以把这个演示稿看成资料堆的粘合剂之类的 >_<
另外这演示稿与其说是为做presentation用还不如说是资料的一顿乱堆……以后要是再有机会做presentation的话得从里面抽出确定的主题出来精简下才行 T T
===============================================================
这次分享的主题是Java程序的执行。以Sun JDK的实现为例,从Java语言的源码开始,通过源码级编译器(javac)编译为Class文件,再由底下的JVM来执行;其中JVM在概念上是怎样的,HotSpot VM是一个怎样的JVM,为“执行程序”提供了怎样的运行时支持,解释器与JIT编译器各自又是怎样的。内容可能有点分散、冗长、在某些点过于钻到细节里。请各位有耐心阅读演示稿的同学在遇到觉得不清晰、或是觉得有错误的地方时不啬指点一下,让我们能共同学习进步 ^_^
更新:
新版本请在另一帖的附件里下载:Java虚拟机分享演示稿2010-12-28版
评论
33 楼
RednaxelaFX
2011-12-10
ydpiaoyun 写道
gif图片是怎么做的啊
我是用FireWorks做多帧PNG然后导出为GIF的。每帧都是人肉做的嗯,方法很土鳖 =_=
32 楼
ydpiaoyun
2011-12-09
gif图片是怎么做的啊
31 楼
dollordoll
2011-08-27
谢谢分享 学习了
30 楼
0704681032
2011-01-06
很好的资料,就是水平不够,到后来就听不懂了...
29 楼
arcko
2011-01-04
杭州西湖好风光
28 楼
dplead
2010-11-28
RednaxelaFX好厉害,我这阵子也在学习这方面相关的知识,谢谢共享
27 楼
kingsvinus
2010-08-24
请问
杭州程序员圆桌交流第三期:GC Tuning Case
的视频在哪里下载呀?
u115网盘不能下了。谢谢了。
杭州程序员圆桌交流第三期:GC Tuning Case
的视频在哪里下载呀?
u115网盘不能下了。谢谢了。
26 楼
copy
2010-06-30
看了一下挺好的
本人菜鸟
虽然有的东西没听过
但大体不影响
本人菜鸟
虽然有的东西没听过
但大体不影响
25 楼
lurker0
2010-06-23
PDF内容好多啊 再展开一下都可以写书了
24 楼
RednaxelaFX
2010-06-02
ZangXT 写道
先谢谢博主提供这么有价值的分析、学习资料。
pdf文件中好像有些图片显示不出来。
pdf文件中好像有些图片显示不出来。
如果是有些页只有标题下面没东西的话,那些是原本就还没写完的地方……也就是TODO/FIXME
有兴趣的话我可以发原始PPTX给你 ^_^ 可惜最近都没怎么添加内容进去。
23 楼
ZangXT
2010-06-02
先谢谢博主提供这么有价值的分析、学习资料。
pdf文件中好像有些图片显示不出来。
pdf文件中好像有些图片显示不出来。
22 楼
lgdlgd
2010-05-31
sesame 写道
经老大要求,看那长长的4个小时视频,化了我整整1下午时间。前面100页PPT还听的懂,能理解,感觉有用;后面100页感觉和java程序的工作实在是没有联系,看不下去。大家觉得如何?
同感,后面都没有看了,不知道在前面提到的一个可以嵌入“注解解释器”还是什么来着,后面的视频有没有提到怎么嵌入,这个还估计还能玩一玩。。。
21 楼
RednaxelaFX
2010-05-30
sesame 写道
经老大要求,看那长长的4个小时视频,化了我整整1下午时间。前面100页PPT还听的懂,能理解,感觉有用;后面100页感觉和java程序的工作实在是没有联系,看不下去。大家觉得如何?
呃,那么夸张……抱歉哈,确实不是所有内容都“实用”的。本来应该跳着看的,挑自己感兴趣的看了就OK。
对主要写Java应用的程序员来说,JVM本身就是个良好的抽象层,本意就是屏蔽过多早“噪音”,让程序员能安心的实现业务逻辑。换句话说那底下是怎么实现的,本身并不是一般工作上会需要特别关注的地方。
大概……我只是想出点力气,把实现方式总结出来,去对冲掉一些对JVM“实现”方面的误解吧,例如说“局部变量在循环内定义比在循环外定义多耗内存”之类的。本来这种内容就已经穿过JVM的抽象层而试图向更接近底层的方向去探,所以如果停留在JVM抽象层以上来分析的话就会有问题。
我是觉得这种本来就不需要Java程序员去关心的部分,跟工作没关系的话不去碰就是最好了,不然留下错误的印象反而不好。
经常被老大说我在错误的地方花费了过多精力。我承认也同意在现在的工作上是这样的。所以说那视频……原本兴趣不大的话,全部看完确实是比较浪费时间的,而且很多问题也没说清楚。抱歉了哈 <(_ _)>
20 楼
sesame
2010-05-29
经老大要求,看那长长的4个小时视频,化了我整整1下午时间。前面100页PPT还听的懂,能理解,感觉有用;后面100页感觉和java程序的工作实在是没有联系,看不下去。大家觉得如何?
19 楼
ssooss
2010-05-10
各位都是大大,咱实在是看不懂
18 楼
wujiazhao88
2010-05-05
从毕玄的博客上看到的,特意过来看,果然是好分享啊。谢啦兄弟!
17 楼
landslide
2010-05-04
感谢分享~
16 楼
xiaolongfeixiang
2010-05-04
非常感谢你们的无私奉献!!
15 楼
lbfhappy
2010-05-04
<p>如果视频下载不了的,可以到如下地址下载,我已经上传到我的QQ中转站去了。<br>不知道QQ中转站可以被下载多少次,如果下载不了的,可以发email给我(hadeslee#vip.qq.com),我再发给你们。<br>感谢楼主对知识的无私奉献。<br><br>1,<span style="font-family: 'lucida Grande', Verdana; color: #8396b7; line-height: 19px;">(提取码 ca938849)</span><br><a href="http://mail.qq.com/cgi-bin/ftnExs_download?k=2a613933329b9fcb754d4a321e380616010709550a0f010a4e510e000a15005b5754145209080c1405505856000f570f5a020805382c3474513409030b0f05143a0e4c674d5a5117050d4f337f&t=exs_ftn_download&code=ca938849" target="_blank">http://mail.qq.com/cgi-bin/ftnExs_download?k=2a613933329b9fcb754d4a321e380616010709550a0f010a4e510e000a15005b5754145209080c1405505856000f570f5a020805382c3474513409030b0f05143a0e4c674d5a5117050d4f337f&t=exs_ftn_download&code=ca938849</a><br><br>2,<span style="font-family: 'lucida Grande', Verdana; color: #8396b7; line-height: 19px;">(提取码 6e0e947f)</span><br><a href="http://mail.qq.com/cgi-bin/ftnExs_download?k=7f65306595079b94204943641f3405490e560355585601571b01565c0819035501571d5c0e56024b5206535d0b5254045003005d3920372b043000550a03054b6f0a45314c565248500946657e&t=exs_ftn_download&code=6e0e947f" target="_blank">http://mail.qq.com/cgi-bin/ftnExs_download?k=7f65306595079b94204943641f3405490e560355585601571b01565c0819035501571d5c0e56024b5206535d0b5254045003005d3920372b043000550a03054b6f0a45314c565248500946657e&t=exs_ftn_download&code=6e0e947f<br></a><br>3,<span style="font-family: 'lucida Grande', Verdana; color: #8396b7; line-height: 19px;">(提取码 6a83e9d8)</span><br><a href="http://mail.qq.com/cgi-bin/ftnExs_download?k=7f613833c968d5ca204d4b324339561753580156520f53081b030d00511450010403150a5209521552020e005258010106575b56652d647504340803560e57156f0e4d67105b0116500d4e3322&t=exs_ftn_download&code=6a83e9d8" target="_blank">http://mail.qq.com/cgi-bin/ftnExs_download?k=7f613833c968d5ca204d4b324339561753580156520f53081b030d00511450010403150a5209521552020e005258010106575b56652d647504340803560e57156f0e4d67105b0116500d4e3322&t=exs_ftn_download&code=6a83e9d8</a><br><br>4,<span style="font-family: 'lucida Grande', Verdana; color: #8396b7; line-height: 19px;">(提取码 8ac6dc78)</span><br><a href="http://mail.qq.com/cgi-bin/ftnExs_download?k=7161633687f09cca2e4d1037426305170b0305555454065915520706024e030e5e034e0e075506150e5902075d54525d0f565a57647737750a34530657540315610e1662110152165e0d153623&t=exs_ftn_download&code=8ac6dc78" target="_blank">http://mail.qq.com/cgi-bin/ftnExs_download?k=7161633687f09cca2e4d1037426305170b0305555454065915520706024e030e5e034e0e075506150e5902075d54525d0f565a57647737750a34530657540315610e1662110152165e0d153623&t=exs_ftn_download&code=8ac6dc78<br></a><br>5,<span style="font-family: 'lucida Grande', Verdana; color: #8396b7; line-height: 19px;">(提取码 04bfb1fe)</span><br><a href="http://mail.qq.com/cgi-bin/ftnExs_download?k=79346266bc05b691261811674431544a010d54575a0154541d030103511c520403504f5e5b0853485556560350075f5306555051622566280261525651065348695b17321753034b5658146625&t=exs_ftn_download&code=04bfb1fe" target="_blank">http://mail.qq.com/cgi-bin/ftnExs_download?k=79346266bc05b691261811674431544a010d54575a0154541d030103511c520403504f5e5b0853485556560350075f5306555051622566280261525651065348695b17321753034b5658146625&t=exs_ftn_download&code=04bfb1fe<br></a><br>6,<span style="font-family: 'lucida Grande', Verdana; color: #8396b7; line-height: 19px;">(提取码 c9c0d124)</span><br><a href="http://mail.qq.com/cgi-bin/ftnExs_download?k=2a3963306828cdcb751510314231001b520e5101025402014e5f0709051c0607010c4e095d030619515c005507030055560b500164253279516c5300570604193a5616641153571a0555153023&t=exs_ftn_download&code=c9c0d124" target="_blank">http://mail.qq.com/cgi-bin/ftnExs_download?k=2a3963306828cdcb751510314231001b520e5101025402014e5f0709051c0607010c4e095d030619515c005507030055560b500164253279516c5300570604193a5616641153571a0555153023&t=exs_ftn_download&code=c9c0d124</a></p>
<p> </p>
<p> </p>
14 楼
dargoner
2010-05-03
PDF我看的一楞一楞的,太牛逼了
发表评论
-
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 ... -
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22390(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对C语义的for循环的基本代码生成模式
2013-10-19 23:12 21871之前有同学在做龙书(第二版)题目,做到8.4的练习,跟我对答案 ... -
Java的instanceof是如何实现的
2013-09-22 16:57 0Java语言规范,Java SE 7版 http://docs ... -
oop、klass、handle的关系
2013-07-30 17:34 0oopDesc及其子类的实例 oop : oopDesc* ... -
Nashorn各种笔记
2013-07-15 17:03 0http://bits.netbeans.org/netbea ... -
《深入理解Java虚拟机(第二版)》书评
2013-07-08 19:19 0值得推荐的中文Java虚拟机入门书 感谢作者赠与的样书,以下 ... -
豆列:从表到里学习JVM实现
2013-06-13 14:13 48359刚写了个学习JVM用的豆列跟大家分享。 豆列地址:http: ...
相关推荐
【标题】"毕业设计(java程序2005new).rar"是一个关于Java编程语言的毕业设计项目,其中包含了2005年的一个新版本的Java程序。这个项目可能是针对计算机科学或软件工程专业学生的,旨在展示他们在学习Java编程过程...
这份"Java程序设计+PPTjavalearnsa资料分享"集合了关于Java学习的重要资源,旨在帮助初学者和进阶者提升Java编程能力。资料包含PPT教程,可能涵盖了从基础语法到高级特性的全面讲解。 1. **Java基础知识**:Java是...
Java以其“一次编写,到处运行”的跨平台特性,深受开发者喜爱。本文将深入探讨Java源程序的相关知识点,以及如何利用编辑器进行高效开发。 首先,我们要明白Java源程序是由Java编程语言编写的文本文件,其扩展名...
标题“记录一次Java爆掉之后的日志”暗示了这是一个关于Java程序运行时出现严重问题的案例,可能是由于内存溢出、线程死锁或者系统资源耗尽等原因导致的程序崩溃。这种问题通常会生成一个名为“hs_err_pid[进程ID]....
总的来说,这个JVM分享20101228.pdf资料提供了关于JVM基础的详细信息,适合初学者入门,同时也对有经验的开发者有所帮助,深入理解JVM的工作原理对于优化Java应用程序的性能至关重要。通过学习这些基础知识,开发者...
1. **跨平台能力**:Java编写的程序可以在任何支持Java虚拟机(JVM)的平台上运行,这意味着开发者只需编写一次代码即可在多个操作系统上部署。 2. **丰富的类库支持**:Java拥有大量的开源库和框架,如LibGDX、...
Java字节码是一种平台无关的中间语言,使得Java程序能在任何安装了相应JRE的平台上运行,实现了“一次编写,到处运行”的目标。JRE 6.0.450中的JVM可能包含了针对该版本的性能优化和安全更新。 除了JVM,JRE还包含...
在Java中,线程是程序执行的独立路径,可以并发运行,提高程序的执行效率。 首先,实验的第一个任务是通过继承Thread类创建线程。线程类MyNewThread需要重写run()方法,此方法包含了线程的具体执行逻辑。在run()...
Java是一种跨平台的编程语言,它的“一次编写,到处运行”特性使得五子棋可以在多种操作系统上运行。在Java中,程序由类组成,类是对象的蓝图,而对象则是程序的基本实体。五子棋游戏的每个棋子、棋盘以及游戏规则都...
【标题】"JAVA实现讯友桌面通讯录源码分享"是一个关于使用Java编程语言开发桌面通讯录应用的项目。这个项目对于那些希望深入理解Java GUI(图形用户界面)设计、数据存储以及通信录管理逻辑的开发者来说,是一份宝贵...
在标签"jdk"中,我们可以明确这是关于Java开发工具包的讨论。JDK是Java语言的核心组成部分,它提供了编写、编译、调试和运行Java应用程序所需的所有工具和库。 压缩包内的两个文件如下: 1. "jdk_8u73_windows_i586...
Java是一种广泛使用的面向对象编程语言,以其“一次编写,到处运行”的特性著称。在构建博客网时,Java主要负责后端逻辑处理。开发者会使用Java的Servlet和JavaBeans技术来处理用户的请求,执行业务逻辑,与数据库...
3. Tomcat5.0:作为Apache Jakarta项目的一部分,是一个开源的Servlet容器,用于部署运行Java Servlet和JSP页面的应用程序服务器。 4. SqlServer2005:微软推出的一个中型企业级数据库管理系统,提供了数据存储、...
1. **确保兼容性**:通过规定Java虚拟机的行为标准,使得开发者编写的Java程序能够在不同的平台上(如Windows、Linux、Mac OS等)运行一致,保证了Java语言的“一次编写,到处运行”的承诺。 2. **促进技术创新**:...
1. packVersion.bat:这通常是一个批处理文件,用于自动化执行某些任务,如编译、打包或部署程序。在这个上下文中,可能是用于构建或更新项目版本的脚本。 2. softigalib.html、softigalib.src.html:这些可能是...
Java以其“一次编写,到处运行”的特性,成为跨平台应用开发的首选语言。Java的基础部分主要包括以下几个方面: 1. **语法基础**:Java的语法与C++类似,但更简洁。它包括变量声明、数据类型(如整型、浮点型、字符...
它以其平台无关性(一次编写,到处运行)、安全性、可移植性和丰富的类库而闻名。Java在企业级应用开发、移动应用开发(特别是Android应用)等领域有着不可替代的地位。 #### 二、JDK 1.7.0 32位版本概述 JDK ...