合肥Java培训JVM虚拟机基础知识共享

来源: 互联网

虚拟机是我们在学习java编程和开发时需要关注的一项技术。今天我们将学习一些关于JVM虚拟机的基本知识。我希望通过阅读这篇文章,每个人都能更容易地学习java编程和开发。

记忆模型

首先,它由类加载子系统加载,然后进行验证、准备、分析和初始化。方法被调用,方法被推到堆栈上,对象被放在堆上,堆栈内存中的引用指向我们的对象,方法被逐行执行,并由我们的程序计数器控制。元空间放置静态方法,这些方法不占用jvm内存,而是占用实际内存空间。

垃圾收集算法

复制算法,从一个内存块复制到一个内存块,缺点是一半内存是保留给复制的,而不是直接存储的

标记清洗,扫描内存块是否可以一个一个回收,回收哪些可以回收,缺点是会产生内存碎片

标记,标记是标记的升级版本,具有:解决内存碎片问题的优势。缺点:在完成阶段,由于可用对象的移动,引用需要更新。

垃圾收集器的优点和缺点是什么?

垃圾收集器有五种,分别是串行的、并行的、并行的、高CPU的、CMS的和大内存的G1。

需要说明的是CMS回收器、初始标记(STW)、同时标记、重新标记(STW,70%耗时)、同时清洁和同时重置的过程。

G1回收商的优势是STW时间可以控制。连载连载,我认为没有优势,优势是彻底清理。并行ParNew打开多个线程进行回收。一般来说,线程的数量等于CPU内核的数量,但不建议在兼容性差的旧版本中使用。高CPU的并行线程可能会抢占用户线程的CPU。合作医疗回收者需要考虑到老年人的保障机制。

然后是G1三个GC。扬格优先判断一次回收的工作效率,不值得不实施。mixedcc清理内存块,复制算法,FullGC停止系统程序,然后用单线程进行标记、清理和压缩,从而释放出一批区域供下一个mixedcc使用。

4.什么是类加载

1.验证:验证我们编译的文件(字节码文件)是正确的。

2.准备:为类的静态常量打开堆空间。并给出默认值。此时,对象也放在堆空间中,并给定一个空值。

3.解析:用直接引用替换符号引用。在这个阶段,一些静态方法(符号引用,如main()方法)将被数据中存储的内存指针或句柄(直接引用)所替代。这就是所谓的静态链接过程(在类加载期间完成)。动态链接在程序运行过程中完成,用直接引用代替符号引用。就像我们把main转换成001,()转换成002,然后把这一系列代码放到堆上。

4.初始化,分配静态常数(或对象)的3个步骤,并执行静态代码块。

5.父母作业简介

从技术上讲,这门课就要来了。把它交给我们的定制装载机。自定义加载程序不会首先处理它。把它交给我们的应用程序类加载器。应用程序类加载器不会首先处理它。把它交给我们的扩展类加载器。扩展类加载器不会首先处理它。把它交给我们的启动类加载器。没有办法启动类加载器。先试着装载它。没有办法装载它。将其返回到扩展类加载器。扩展类加载器也会尝试加载它。应用程序类加载器将不再处理它。只归还它

[免责声明]这篇文章由本网站的编辑转载。重印的目的是传递更多的信息。这并不意味着本网站同意其观点,并对其真实性负责。如果涉及到作品的内容、版权等问题,请在30天内与管理员联系,我们将修改或删除相关的文章,以确保您的权益!

免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除。