![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
fanrendale
爱生活,爱代码
展开
-
(4)JVM——垃圾回收算法
本人个人博客网站,欢迎访问:学教府 一、概述 介绍:在程序运行过程中,程序计数器、虚拟机栈、本地方法栈 3 个区域随线程而生,随线程而灭,不用我们关注内存的回收。而 Java 堆和方法区不一样,此处的内存使用和回收是动态的,其中讲垃圾回收主要是在 Java 堆。 二、判断对象需要回收 2.1 引用计数算法 说明:给对象中添加一个引用计数器,没当有一个地方引用它时,计数器值就加 1 ;当引用失效时,计数器值减 1; 任务时刻计数器为 0 的对象就是不可能再被使用的。JVM 没用。 优点: 实现简单 判定.原创 2020-09-02 15:44:21 · 333 阅读 · 1 评论 -
(3)JVM——对象的创建和内存布局
一、简介 介绍:在开发中,我们大多是使用 new 关键字来创建对象。但是对于对象的创建具体细节和对象在堆内存中的存储布局不怎么了解,此处主要简单介绍一下。 二、对象的创建 概括:对象的创建过程可以简单描述为如图所示。下面进行具体讲解 类加载检查:当 Java 虚拟机遇到 new 执行时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,则进行相应的类的加载过程。 分配内存:在类加载检查通过后,就需要为新对象分配内存。对原创 2020-08-10 00:34:24 · 176 阅读 · 0 评论 -
(2)JVM——Java 虚拟机运行时数据区域讲解
本人个人博客网站,欢迎访问:学教府 一、简述 介绍:如果有了解 C/C++,以及 Java 语言的朋友,肯定知道它们之间最大的差别的就是对于内存的回收。用 C/C++ 时,自己创建的对象得自己回收内存,而 Java 则是因为其自带的垃圾收集器,将开发者解放出来。犹记得当初大学学 C 语言,讲到指针的那一节,就感觉指针是无所不能,各种灵活,不过如果用不好就容易飘。本篇博客主要简单介绍一下 Java 虚拟对于内存的划分,以及大概作用。 二、内存运行时数据区 这张图片展示的就是 JVM 对于内存的经.原创 2020-08-05 23:54:39 · 155 阅读 · 0 评论 -
(1)JVM——在 Ubuntu 上手动编译 OpenJdk12
一、简述 介绍:最近开始看《深入理解Java虚拟机第三版》,为了自己以后能方便回忆,以及加深理解,特写文章以记之。本篇博客主要是实现使用在 Ubuntu 系统上自己编译 OpenJdk,在后面的学习中会用到。 二、准备工作 安装 Ubuntu 操作系统:我是在 windows 系统上使用 VMware 安装了 Ubuntu 18.04.3 LTS 。这个安装就不介绍了,网上能搜到很多文章,此处贴一个博客地址是首次安装后,实现 root 用户登录以及 ssh 访问:解决Ubuntu18.04不能用Xsh原创 2020-08-03 12:41:25 · 230 阅读 · 0 评论