陈树义的博客

分享我的所思所想

JVM基础系列第3讲:到底什么是虚拟机?

我们都知道在 Windows 系统上一个软件包装包是 exe 后缀的,而这个软件包在苹果的 Mac OSX 系统上是无法安装的。类似地,Mac OSX 系统上软件安装包则是 dmg 后缀,同样无法在 Windows 系统上安装。为什么不同系统上的软件无法安装,这是因为操作系统底层的实现是不一样的。对

JVM基础系列第2讲:Java 虚拟机的历史

说起 Java 虚拟机,许多人就会将其与 HotSpot 虚拟机等同看待。但实际上 Java 虚拟机除了 HotSpot 之外,还有 Sun Classic VM、Exact VM、BEA JRocketit、IBM J9 等等。今天我们就来简单回顾下 Java 虚拟机的发展历史。虚拟机始祖:Sun

JVM基础系列第1讲:Java 语言的前世今生

Java 语言是一门存在了 20 多年的语言,其年纪比我自己还大。虽然存在了这么长时间,但 Java 至今都是最大的工业级语言,许多大型互联网公司均采用 Java 来实现其业务系统。大到国际电商巨头阿里巴巴,小到无名小公司,我们均可看到 Java 的身影。我是 2010 年开始接触 Java 语言的

JVM基础系列开篇:为什么要学虚拟机?

跟许多人一样,我一开始接触 Java 虚拟机只是因为面试需要用到,所以硬着头皮看看。所以很多人对于为什么要学虚拟机这个问题,他们的答案都是:因为面试。但我经过了几年的学习和实战,我发现其实学习虚拟机并不仅仅在于面试,而在于更深入地理解 Java 这门语言,以及为未来排查线上问题打下基础。先聊聊我的第

如何唯一确定一个 Java 类?

今天偶然想起之前和朋友讨论过的一个问题:如何唯一确定一个 Java 类?我相信大多数朋友遇到这个问题的回答都是:类的全路径呗。但事实上,唯一确定一个 Java 类,单单靠类路径是不够的,还要多加上一个东西:类加载器。也就是说,类加载器 + 类路径才唯一确定一个 Java 类。为了证明我所说的,我们来

不读大学也能成功,七个读大学的备用选择

随着毕业季的来临,我收到许多年轻读者的询问,他们问我是否应该上大学或者读研究生。答案是?要看情况。尽管读大学或研究生能够增加你的竞争力,但它们并不适合所有人。尽管主流社会告诉你,如果你想要经营成功企业、实现财务自由,那么上大学、上MBA是必须的。但在很多情况下,从财务、时间和经验这几个方面评估,上大

策略模式与SPI机制,到底有什么不同?

这里说的策略模式是一种设计模式,经常用于有多种分支情况的程序设计中。例如我们去掉水果皮,一般来说对于不同的水果,会有不同的拨皮方式。此时用程序语言来表示是这样的:if(type == apple){ //deal with apple } else if (type == banana){

【超实用】面对枯燥的源码,如何才能坚持看下去?

一个软件开发人员,工作到了一定的年限(一般是3、4年左右),如果他还没学会阅读源码,那么他就会遇到瓶颈。因为到了这个时候的开发,他应该不仅仅只会做那些 CURD 的业务逻辑,而应该会根据公司的实际情况去写框架。而基本上没有谁能像天才一样从零写出一个框架,很多人写框架其实都是从模仿开始的。而你要模仿,

从字节码层面,解析 Java 布尔型的实现原理

最近在系统回顾学习 Java 虚拟机方面的知识,其中想到一个很有意思的问题:布尔型在虚拟机中到底是什么类型?要想解答这个问题,我们看 JDK 的源码是无法解决源码的,我们必须深入到 class 文件中才能解决问题。于是他给出了这么一道题:public class Foo{ static boo

努力到底是不是天赋?

本文是《请停止无效努力:如何用正确的方法快速进阶》的第 1.1 章节的分享。「微信读书」新用户通过文末二维码可以获得优惠券,以超低价格在「微信读书」App 上阅读。这篇拆书将分享下面几点:本节思维导图天赋的三个误区快速成长的两个要素衡量天赋最佳领域的两要素大部分人都在挥霍自己的天赋练习本节思维导图天