Categories
程式開發

十个问题弄清JVM&GC(一)


每个java开发同学不管是日常工作中还是面试里,都会遇到JDK、JVM和GC的问题。本文会从以下10个问题为切入点,带着大家一起全面了解一下JVM的方方面面。

  • JVM、JRE和JDK的区别和联系
  • JVM是什么?以及它的主要作用
  • JVM的核心功能有哪些
  • 类加载机制和过程
  • 运行时数据区的逻辑结构
  • JVM的内存模型
  • 如何确定对象是垃圾
  • 垃圾收集的算法有哪些
  • 各种问世的垃圾收集器
  • JVM调优的参数配置

1、JVM、JRE和JDK的区别和联系

这个基本是步入java世界的入门级知识认知,首先我们来看一下来自java官网的一张图:

十个问题弄清JVM&GC(一) 1

从这张图里我们基本就可以看出“JRE”是运行Java语言编写的程序所不可缺少的运行环境。有了JRE我们写的java程序才可以运行起来被用户所使用。

而“JDK”俗称java开发工具包,它包括了Java运行环境JRE(Java Runtime Envirnment)以及一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

但不管是JRE还是JDK都是以JVM为基石的。可以说JVM是java程序可以在某台机器上得以运行的最底层的保障。

2、那么什么是JVM?它的主要作用又是什么?

原文链接:【https://www.infoq.cn/article/dPlLcDJAuY4jT37qiT9E】。未经作者许可,禁止转载。