陈树义的博客

分享我的所思所想

JVM规范系列第6章:Java虚拟机指令集

一条 Java 虚拟机指令由一个特定操作的操作码和零至多个操作所使用到的操作数所构成。虚拟机指令 = 操作码 + 操作数。其中,操作码值分别为 254(0xfe)和 255(0xff),助记符分别为 impdep1 和 impdep2的两个操作码是作为“后门”和“陷阱”出现,目的是在某些硬件和软件中

JVM规范系列第5章:加载、链接与初始化

加载是根据特定名称查找类或接口类型的二进制表示(Binary Representation),并由此二进制表示创建类或接口的过程。加载,就是指去寻找类或接口的过程。链接是为了让类或接口可以被 Java 虚拟机执行,而将类或接口并入虚拟机运行时状态的过程。链接,就是将类或接口与JVM链接起来的过程。类

JVM规范系列第4章:Class文件格式

这一章节讲的是字节码的整个组成格式,读懂了这一章,就读懂了字节码文件。对于这一章的学习,我更推荐作为工具书去查找。最好是找一个最简单的Hello World例子,一个字节一个字节去分析其含义。在分析过程中,把这个章节当成工具来查询每个字节的含义。我写了一篇文章来带你一个字节一个字节分析,有兴趣的可以

JVM规范系列第3章:为Java虚拟机编译

Oracle 的 JDK 包括两部分内容:一部分是将 Java 源代码编译成 Java 虚拟机的指令集的编译器,另一部分是用于Java 虚拟机的运行时环境。第一部分应该说的是 Javac 这个前置编译器,用于将Java源代码编译成字节码。第二部分是说 JIT 即时编译器,用于在JVM运行时进行进一步

JVM规范系列第2章:Java虚拟机结构

本规范描述的是一种抽象化的虚拟机的行为,而不是任何一种(译者注:包括 Oracle 公司自己的 HotSpot 和 JRockit 虚拟机)被广泛使用的虚拟机实现。记住:JVM规范是一种高度抽象行为的描述,而不是具体虚拟机的实现。所有在虚拟机规范之中没有明确描述的实现细节,都不应成为虚拟机设计者发挥

JVM规范系列第1章:引言

如果你还没下载《Java虚拟机规范》这本书,那么先点击这里下载再一块儿看吧。前言Java 虚拟机是一个抽象化的机器,整个规范中提及的 Java 虚拟机都是抽象化的概念,而不是特指 Oracle 或者其他某一间公司的 Java 虚拟机实现。可以看到JVM其实就是一个虚拟机的机器,与我们的普通PC一样,

JVM规范系列开篇:为什么要读JVM规范?

博主个人独立站点开通啦!欢迎点击访问:https://shuyi.tech许多人知道类加载机制、JVM内存模型,但他们可能不知道什么是《Java虚拟机规范》。对于Java开发来说,《Java虚拟机规范》才是最为官方、准确的一个文档,了解这个规范可以让我们更深入地理解JVM。我们平常说的JVM其实更多

开发小哥的困惑:为何要用第三方推送?

在《测试妹子的呐喊:为什么总是收不到推送?》这篇文章中,小树解决了测试妹子收不到推送的反馈后,小树对推送就异常感兴趣,把项目里面所有有关推送的代码都阅读了一遍。但细心的小树发现这里面并没有请求苹果 APNS 接口的代码,只有一些类似于极光推送,友盟推送,腾讯信鸽等推送的注释。带着这些疑惑,小树又找到

树结构系列(四):MongoDb 使用的到底是 B 树,还是 B+ 树?

MongoDb 的索引是 B 树,还是 B+ 树?

树结构系列(三):B树、B+树

B树、B+树,解决了平衡二叉树的大数据量问题。