
JVM入门到入土
有关JVM的知识...
知识来源黑马JVM教程的学习总结,自我感悟
一只小芒果o
简单生活,努力学习!
展开
-
JVM(十)JVM类的加载过程
在讲JVM类的加载过程之前,我们要先来看一看什么是类的加载?什么是类的加载器,类的加载器有哪些?最后来看一看类的加载过程? 类的加载: 定义:把类的.class文件加载到内存中的过程,就叫做类的加载。 我们可以看一下这幅架构图,红色的向下箭头就表示类的加载。这就是把类的.class文件加载到JVM内存中。 类的加载器: 背景: 前面我们看了类的加载是什么。那么在JVM中,我们要把文件加载到内存中需要怎么操作呢?这时类加载器...原创 2020-09-02 19:03:45 · 305 阅读 · 0 评论 -
JVM(九)有关JVM的调优的见解
背景: 这篇文章并不是仔细来详解有关JVM调优的方式,作为一个初学JVM的新手要做到如何如何精通各种调优规则对于我来说确实是太勉强了。那我为什么要写下这篇博客呢?对于个人而来主要是为了把知识体系先系统化,以后进行细枝末节的补充。而这篇文章记录的只是在视频学习中的一些理论上的调优规则,毕竟本人并没有任何实际实战经验。在日后发展学习中,会慢慢对内容进行补充和完善。 ---------------------------------------------------------------...原创 2020-08-26 16:37:41 · 254 阅读 · 0 评论 -
JVM(八)垃圾回收器
背景:本来还是想写一篇垃圾回收器的文章,但是看见一博主的文章把我想到内容都涉及并且进行补充,扩展,所以我想自己在做这件事是及其无聊,所以这里转载一篇好文,供大家分享与学习。一些需要注意的地方会用红色字体进行标记.... -------------------------------------------------------------------------------------------------------------------------------------------------转载 2020-08-25 19:07:56 · 303 阅读 · 0 评论 -
JVM(七)垃圾回收算法
垃圾回收算法: 标记清除 标记整理 复制算法 基于上面三种方式衍生的算法:分代垃圾回收算法 标记清除算法:(有垃圾碎片) ()内容表示缺陷 标记整理算法:(不会有内存碎片,整理过程中改变了原始对象的地址,导致效率下降) 复制算法:(不会有内存碎片,需要占用双倍内存空间) ...原创 2020-08-25 17:14:28 · 365 阅读 · 0 评论 -
JVM(六)垃圾回收机制
什么是垃圾? 没有任何引用指向的对象或者多个对象(循环引用)就叫做垃圾。 不同语言对对象的处理是什么? c语言申请删除内存:malloc free c++语言申请删除内存:new delete java语言申请删除内存:new 自动回收/也可以通过finalize方法收回,但是不推荐使用 如何定位垃圾: 引用技术算法 可达性分析算法 引用技术算法图: 每个对象都会有保存一个计数的值,当计数的值为0时,说明该对象可以被回收。 引用计数算法的缺点:(...原创 2020-08-25 16:12:48 · 200 阅读 · 0 评论 -
JVM(四)堆
我们已经知道了JVM的架构主要分为三部分:类加载器,JVM内存结构,执行引擎。 JVM内存结构又分为五部分,这节来简单的看看有关栈知识点。 虚拟机栈: 定义: 通过new关键字,创建的对象都会保存在堆中。 特点: 堆空间是线程共享的,堆中对象使用要考虑到多线程并发安全问题 有垃圾回收机制。 既然通过new关键字创建的对象都会保存在堆内存中,那么这是不是就意味着堆中只有new创建的对象呢? 答案显然是错误的,我们看下图: new的对象一般来说会放置在堆内存的新生代中,当...原创 2020-08-18 09:26:06 · 158 阅读 · 0 评论 -
JVM(三)虚拟机栈
我们已经知道了JVM的架构主要分为三部分:类加载器,JVM内存结构,执行引擎。 JVM内存结构又分为五部分,这节来简单的看看有关虚拟机栈知识点。 虚拟机栈: 定义: JAVA中线程的运行需要被分配内存空间,而这个内存空间就叫做栈。 特点: 线程私有的 没有垃圾回收机制。 栈区是由一个个单独的栈(线程栈)组成的。 JVM为每个线程都会创建一个栈(线程栈),用于存放该线程执行的信息(实际参数,局部变量)。 JVM中线程栈的每个方法被调用都会创建一个栈帧(存储局部变量,操作...原创 2020-08-17 11:35:38 · 260 阅读 · 0 评论 -
JVM(二)程序计数器
我们已经知道了JVM的架构主要分为三部分:类加载器,JVM内存结构,执行引擎。 JVM内存结构又分为五部分,这节来简单的看看有关程序计算器知识点。 程序计数器: 定义:是用来保存下一条指令执行的地址。 特点:线程私有,不存在内存溢出问题。 简要的看下程序计数器的执行: 这是一段class字节码文件,它是由一条一条的指令构成的。指令前面的0 3 4等等数字表示一个虚拟的地址,当class字节码被类加载器加载到JVM内存后每一个虚拟地址会...原创 2020-08-17 10:02:49 · 331 阅读 · 0 评论 -
JVM(一)JVM架构简介
首先,要学习JVM,我们需要先从JVM的整体架构来观察。由整体到局部,做到心中有数。 正在上传…重新上传取消正在上传…重新上传取消 由JVM的架构图可知,JVM的学习主要分成三块:类加载器,JVM内存结构,执行引擎。 这三块也就是我们学习的重中之重。 类加载器的作用:把class文件加载到JVM内存当中。(class是字节码文件,是编译器把.java文件编译生成的.class文件) JVM内存结构:把字节码中信息的存放分为5块区域。堆区,栈区,本地方法区,程序计数器区和方法区。 执行引擎的作用:原创 2020-08-17 09:29:57 · 506 阅读 · 0 评论