在学习一门语言时,我们通常用来解决问题,比如处理一些日志,做一个管理网站等。我们粗略的知道怎么去用这些工具,但很少去深入学习这个工具的内在。当你需要更深层次的使用这个工具,或对这个工具进行改行扩展的时候,就需要向下深入学习了。而理解Java虚拟机就是学习Java开发语言的深入。从垃圾回收,到指令重排序,从内存管理到线程安全,到虚拟调优等等,理解虚拟机的本质就显得尤其重要了。但我们习惯使用tomcat, spring, struts等框架的时候,是否有足够的时间去想想这些框架的本质,这些框架又是在虚拟机上如何处理的。Java虚拟机就像是Java语言的基石,理解也是很有必要的。