![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java虚拟机精讲随笔
zhtttylz
这个作者很懒,什么都没留下…
展开
-
java字节码文件魔数的由来
关于魔数的解释和疑问java字节码文件的前4个字节是0xCAFEBABE,也被称呼为魔数,但是为什么要使用魔数来进行字节码文件的判断呢,为什么不适用后缀名进行判断呢 其实使用后缀也是可以的,只不过无法确保用户会不会手动修改文件的后缀名,所以使用了魔数来进行判断 魔数内容的由来CAFEBABE象征着著名的咖啡品牌 Peet' s Coffee 中 深受欢迎的Barista...原创 2018-10-29 11:53:53 · 729 阅读 · 0 评论 -
java的字节码编译原理-词法解析器
java的编译结果为什么不是类似于c/c++的机器码呢 这是java实现了与平台无关性的体现,字节码就类似于一种通用的契约,提供给jvm进行运行,虽然不同的jvm内部实现的细节不同,但是他们执行的字节码的内容却是相同的java的编译屏蔽了与底层操作系统和物理硬件相关的一些信息,使得开发人员更加的可以关注于业务的本身 java都必须使用javac进行编译吗并不是,其实常用...原创 2018-10-26 01:25:32 · 349 阅读 · 0 评论 -
HotSpot销毁和内部结构的简单分析
前言 想要分析一个项目的源码,首先要知道这个项目的目录结构,然后再根据结构进行拆分分析,HotSpot在解压后发现,主要由四个子目录组成了整个项目agent:包含了Serviceability Agent 的 客户 端 实现; make:包含了用户build出HotSpot的各种组件 src:最重要的目录,包含了源码实现,如果说cpu实现,操作系统实现,与平台无关性实现 test...原创 2018-10-30 16:47:52 · 229 阅读 · 0 评论 -
HotSpot的解释器和JIT编译器
什么是解释执行,什么是编译执行,有什么区别要理解解释器和编译器,就要先知道什么是解释执行,什么是编译执行编译执行:顾名思义,先编译再执行,所以就需要编译器现将代码编译成机器码,然后在进行执行,因为是整体编译,所以会产生编译后的机器码文件 解释执行:解释器会将代码一句一句的进行解释,每解释一句就运行一句,在这个过程中,不会产生机器码文件解释运行优缺点分析从启动效率来看解释运行...原创 2018-11-07 16:16:35 · 1212 阅读 · 0 评论