陈树义

聚焦于 Java 程序员的技术成长、职业规划、认知升级。欢迎关注公众号:陈树义。
160 篇文章
41 人订阅

全部文章

陈树义

为抖音而生的多闪,如何获取抖音的用户数据?

一周前,多闪、马桶 MT 和聊天宝三款社交 App 同一天上线,被社交媒体渲染成「三英打战吕布」。但在这三款产品中,只有头条的「多闪」是稍有发展前景的,因为其有...

1172
陈树义

你分得清楚Maven的聚合和继承吗?

用了 Maven 好几年了,许多人还是只懂得简单的依赖坐标。对于 Maven 的聚合和继承还是一知半解,甚至很多人以为是同一个东西。但其实聚合是用于快速构建项目...

754
陈树义

JVM系列第5讲:字节码文件结构

前面我们说到 Java 虚拟机使用字节码实现了跨平台的愿景,无论什么系统,我们都可以使用 Java 虚拟机解释执行字节码文件。但其实字节码是有一套规范的,而规定...

642
陈树义

Java并发编程:同步容器

  为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDow...

1085
陈树义

每周分享第4期

我们都知道在JDK1.8的HotSpot虚拟机中已经没有永久代这个内存区域了,但许多人其实并不知道在JDK1.7的时候这项工作就在悄悄进行了。

682
陈树义

JVM规范系列:总结

我们花了几天的时间来阅读《Java虚拟机规范》,了解要实现一个虚拟机应该包括什么内容。通过这么一次阅读,我们大致了解了虚拟机规范的内容。

662
陈树义

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

简单地说,虚拟机通过链接初始类,由此会调用其他类或接口,从而开始整个庞大Java项目的运行。

662
陈树义

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

这一章节讲的是字节码的整个组成格式,读懂了这一章,就读懂了字节码文件。对于这一章的学习,我更推荐作为工具书去查找。最好是找一个最简单的Hello World例子...

993
陈树义

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

第一部分应该说的是 Javac 这个前置编译器,用于将Java源代码编译成字节码。第二部分是说 JIT 即时编译器,用于在JVM运行时进行进一步优化,将字节码编...

982
陈树义

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

简单地说,就是《JVM规范》中提到的内容,你一定要遵守。但没有提到的内容,你就自由发挥。所以我们要知道,我们经常听到的老年代、年轻代、永久代,其实只是HotSp...

862
陈树义

JVM规范系列第1章:引言

可以看到JVM其实就是一个虚拟机的机器,与我们的普通PC一样,有内存、有CPU。JVM的内存就是运行时数据区,其CPU就是Java虚拟机指令集。

911
陈树义

消息中间件系列第3讲:使用消息队列需要考虑的几个问题

放在消息队列中,消息幂等性的意思是:一条完全一样的消息,它消息一次和消费无数次的结果是一样的。

1112
陈树义

消息中间件系列第2讲:如何进行消息队列选型?

要做技术选型,那么必须对现今的各个消息中间件有个深入的理解才能做技术选型。否则别人问你,你为什么要用这个消息中间件,你说不出个所以然来,怎么做架构师呢?

961
陈树义

消息中间件系列第1讲:为什么要用消息队列?

消息队列中间件可以说是Java开发中最常使用的一块技术了,基本上上了规模的系统都会使用消息队列来优化系统架构。那么为什么要使用消息队列?我们使用消息队列来解决什...

1043
陈树义

JDK1.7 HashMap 导致循环链表

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condi...

1352
陈树义

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

许多人知道类加载机制、JVM内存模型,但他们可能不知道什么是《Java虚拟机规范》。对于Java开发来说,《Java虚拟机规范》才是最为官方、准确的一个文档,了...

1482
陈树义

JVM系列第10讲:垃圾回收的几种类型

我们经常会听到许多垃圾回收的术语,例如:Minor GC、Major GC、Young GC、Old GC、Full GC、Stop-The-World 等。但...

1202
陈树义

JVM系列第11讲:JVM参数之堆栈空间配置

JVM 中最重要的一部分就是堆空间了,基本上大多数的线上 JVM 问题都是因为堆空间造成的 OutOfMemoryError。因此掌握 JVM 关于堆空间的参数...

1552
陈树义

JVM系列第12讲:JVM参数之查看JVM参数

该参数表示程序运行时,打印虚拟机接受到的命令行显式参数。我们用下面的命令运行程序:

1003
陈树义

JVM系列第13讲:JVM参数之追踪类信息

我们都知道 JVM 在启动的时候会去加载类信息,那么我们怎么得知他加载了哪些类,又卸载了哪些类呢?我们这一节就来介绍四个 JVM 参数,使用它们我们就可以清晰地...

1042

扫码关注云+社区