
JVM
niceyoo
这个作者很懒,什么都没留下…
展开
-
垃圾回收与算法
前边讲到 JVM 运行时内存的地方,关于新生代、老年代中 GC 垃圾回收以及垃圾回收算法,不知是否有点懵懵的,这篇一起了解一下垃圾回收以及垃圾回收算法。 一、垃圾回收需要完成的三件事 哪些内存需要回收?——垃圾对象(如何判定对象为垃圾对象) 如何回收?——垃圾回收算法 何时回收? 1. 哪些内存需要回收? 判定为 "死" 对象,或者无用对象时即视为可回收内存。 如何判定为垃圾对象,在...原创 2019-03-19 20:12:48 · 126 阅读 · 0 评论 -
JVM的类加载机制
一、基本概念 JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。 1. 加载 加载是类加载过程中的一个阶段,这个阶段虚拟机要完成3件事。 通过一个类的全限定名来获取定义此类的二进制字节流。 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 会在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类...原创 2019-03-20 20:12:12 · 176 阅读 · 0 评论 -
JVM入门到放弃之基本概念
1. 基本概念 jvm 是可运行Java代码的假想计算机,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 jvm 是运行在操作系统之上的,屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在 jvm 上运行的字节码,就可以在多种平台上不加修改地运行。 Java 语言的一个非常重要的特点就是与平台的无关性(跨平台),其得益于 jvm,不是 Java 实现的跨平...原创 2019-03-18 00:00:52 · 256 阅读 · 0 评论 -
了解JVM运行时的内存分配
###前言 上文中,在介绍运行时数据区域中的 JAVA 堆时,提到了 JVM 中的堆,一般分为三大部分:新生代、老年代、永久代,本文将进一步了解运行时的内存分配情况。 ###正文 1.新生代 主要用来存放新生(new)的对象。一般占据堆的 1/3 空间。由于频繁创建对象,所以新生代会频繁的触发 MinorGC 进行垃圾回收。 新生代又分为 Eden(伊甸园)、SurvivorFrom、Surviv...原创 2019-03-18 19:06:48 · 118 阅读 · 0 评论 -
了解栈内存堆内存
由于 java 有垃圾回收机制,所以往往不太会去关注栈堆的内存分配问题,直至OOM 一、了解栈堆概念 1、堆【存储对象创建实例】 程序开始运行时,JVM从OS获取一些内存,部分是堆内存。堆内存通常在存储地址的底层,向上排列。 堆是一个"运行时"数据区,类实例化的对象就是从堆上去分配空间的; 在堆上分配空间是通过"new"等指令建立的,堆是动态分配的内存大小,生存期也不必事先告诉编译...原创 2019-06-25 18:10:00 · 155 阅读 · 0 评论 -
重温类加载机制
前言 我们在学习 java 基础的时候,从宏观上了解一个类到运行大致是:.java 文件通过 javac 编译器编译得到 .class 文件,在用到该类时,jvm 会加载该 class 文件,并创建对应的 class 对象,将 class 文件加载到 jvm 的内存当中,这个过程也被称之为类加载过程。 下面我们将详细了解这个过程,本篇过长建议先收藏。 1、类加载过程 其实关于类加载过程是分为5个阶...原创 2019-07-24 23:57:52 · 244 阅读 · 0 评论