为什么要学习java虚拟机和垃圾回收机制

很多java程序员,可能会有这样一个疑问,为什么要学习java虚拟机和垃圾回收机制。工作中很少用到,难道只是为了面试吗?

就此问题,我谈一谈我的理解。

学习java虚拟机和垃圾回收机制,作用有以下几点:

1,深入地理解 Java 这门语言;

例如我们都知道类路径和类名唯一确定一个类,但事实上并不是这样。或者说,我们前面说的结论只是表面上的。如果深入到虚拟机层面来说,类加载器、类路径、类名才唯一决定一个类。也就是说,如果两个不同的类加载器加载同一个 class 类文件,那这两个类加载器加载的类就是不同的。

2,可提升代码质量,

了解java虚拟机。写代码时会更加注重内存的使用情况和性能。比如字符串对象的操作,要尽量使用StringBufferStringBuilder,而不是用String。因为String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象。而如果是使用 StringBufferStringBuilder类则结果就不一样了,每次结果都是对象本身的操作,而不是生成新的对象,这样可节省堆内存的使用空间和减少GC次数,提升系统性能,

3,学习虚拟机可为线上排查问题打下基础

假如线上系统内存溢出,或GC 频繁导致响应慢。我们要解决这些问题,就必须要看得懂 GC 日志,这是 Java 虚拟机内容的一部分。得明白什么是年轻代、老年代、永久代、元数据区等,还得知道 Java 虚拟机是如何进行垃圾回收的,它们使用的垃圾回收算法是怎样的,它们有何优缺点。

所以说,学习java虚拟机还是很有用的,推荐一个学习虚拟机的专栏,链接 https://www.cnblogs.com/chanshuyi/p/jvm_serial_02_the_history_of_jvm.html

 

猜你喜欢

转载自blog.csdn.net/peiyongwei/article/details/112907140