JVM
scfor333
一生几十亿万步
展开
-
JAVA基础——JVM之G1(Garbage-First)垃圾回收器
Garbage First 垃圾回收器 G1 简介 G1(Garbage First)垃圾回收器是最新的 JDK 中默认的垃圾回收器,也是垃圾回收技术最前沿的成果,它同时注重吞吐量(Throughput)和低延迟(Low Latency),默认的暂停目标是 200ms,适用于超大的堆内存 G1 引入了分区(region)的思想,弱化了分代的概念,它将堆内存分为大小相等的区,每个区的大约...原创 2019-12-29 11:44:25 · 330 阅读 · 0 评论 -
JAVA基础——JVM之垃圾回收器
JVM 垃圾回收器 在 JVM 中,垃圾回收器大体分为三个种类:串行垃圾回收器、吞吐量优先的垃圾回收器和响应时间优先的垃圾回收器 串行垃圾回收器 串行垃圾回收器是一种单线程的垃圾回收器,适合堆内存小,cpu 个数少的电脑 开启:-XX:+UseSerialGC = Serial + SerialOld 串行垃圾回收器分为两个部分:Serial 和 SerialOld,Se...原创 2019-12-28 16:51:26 · 205 阅读 · 0 评论 -
JAVA基础——JVM之垃圾回收算法
JVM 的垃圾回收算法 在 JVM 中,经常使用的垃圾回收算法有:标记-清除算法、标记-整理算法、复制算法以及分代回收算法,在这里会逐一介绍说明 标记-清除算法(Mark Sweep) 标记清除算法的运行流程是先标记,将有引用链连接的引用对象进行标记,再将未被标记的引用对象的起始地址和结束地址存入空闲地址列表中,下次需要内存时直接对其进行覆盖 标记清除算法从原理上来说很容易实现...原创 2019-12-25 18:30:09 · 147 阅读 · 0 评论 -
JAVA基础——JAVA的五种引用类型及引用队列
JAVA 的五种引用类型及引用队列 在介绍 JAVA 的五种引用之前,先介绍一下什么是引用,以及引用和对象之间的关系 什么是引用 众所周知,JAVA 是一种面向对象的语言,在 JAVA 程序运行时,对象是存储在堆内存(Heap)中的,C/C++ 中是通过指针来访问所谓对象(结构体)的,而 JAVA 则是通过引用来访问对象,也就是说,引用指向了对象在堆内存中的地址,引用本身也占用内存,6...原创 2019-12-22 15:21:47 · 1190 阅读 · 0 评论 -
JAVA基础——JVM之方法区、虚拟机堆、常量池、串池及对String的一些理解
JVM 虚拟机堆和方法区 虚拟机堆和方法区都存在与 JVM 的线程共享区,占有 JVM 内存中的很大一部分 虚拟机堆 堆(Haep),在 Java 中所有通过 new 关键字创建的对象都会使用堆内存,堆是线程共享的,在堆中的对象都需要考虑线程安全问题(只要局部变量不逃逸出方法的作用范围,它就是线程安全的),另外堆还存在垃圾回收机制 垃圾回收机制是回收不再被引用、使用的变量,如果...原创 2019-12-04 21:20:15 · 285 阅读 · 0 评论 -
JAVA基础——JVM之Java虚拟机栈
Java 虚拟机栈 虚拟机栈描述的是 Java 方法执行的动态内存模型 虚拟机栈的内容 栈帧 在 Java 程序中的每个方法执行时,都会创建一个栈帧,伴随着方法从创建到执行完成,用于存储局部变量表、操作数栈、动态链接、方法出口等 虚拟机栈是存在大小的,当方法所占用的空间溢出,会产生 StackOverflowError 局部变量表 局部表量表的内存空间在编译期即完成分配,...原创 2019-12-02 19:19:36 · 170 阅读 · 0 评论 -
JAVA基础——JVM简介及程序计数器
JVM JVM(Java 虚拟机),是一种用于计算设备的规范,是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算功能来实现,引入 JVM 后,Java 语言在不同平台上运行时不需要重新编译,它屏蔽了与具体平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的字节码文件,就可以在多种平台上不加修改的运行 JVM 基本结构 首先,JVM 分为线程共享区和线程独占区两部...原创 2019-12-01 18:32:57 · 352 阅读 · 0 评论