五山口老法师

仰望星空,脚踏实地!

JVM:四种引用总结

在JVM的GC中,我们使用引用计数器算法和可达性分析算法来确定一个对象是否gg了! 这里都提到了引用!什么是引用? 其实引用就是一个内存地址,它保存着另一个对象在内存中的起始地址! 由于引用只有 被引用、没有被引用 两种状态! 那么有一类现象: 内存空间足够的时候,我们希望引用的对象能够...

2019-02-19 20:55:41

阅读数 43

评论数 0

JVM:7种垃圾回收器总结

这里讨论的收集器基于JDK1.7Update 14之后的HotSpot虚拟机,这个虚拟机包含的所有收集器如下图3-5所示:   上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。 所谓垃圾收集器在准确完整回收垃圾对象内存的基础上,所追求的目标是 1)...

2019-02-19 20:23:38

阅读数 74

评论数 0

JVM:-Xmx和-Xms应该维持什么样的比例?

-Xmx和-Xms应该维持什么样的比例? 首先并不是虚拟机内存越大就越好,大概原因是因为:内存越大,JVM 进行 Full GC 所需的时间越久,由于 Full GC 时 stop whole world 特性,如果是用于响应HTTP 请求的服务器,这个时候就表现为停止响应,对于需要低延迟的应用...

2019-02-19 16:01:04

阅读数 426

评论数 0

JVM:堆中对象的创建?定位?可达性?

对象的创建 指针碰撞:若是堆中的内存是绝对规整的,所有用过的内存放在一边,空闲的放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间那边挪动一段与对象大小相等的距离。 指针碰撞要求堆中所采用的GC搜集器是带有“压缩整理”功能的! 空闲列表:与指针碰撞相...

2019-02-18 23:38:38

阅读数 57

评论数 0

JVM:JVM内存划分、主内存、工作内存

java内存模型中的主内存只是JVM内存的一部分。每条线程拥有自己的工作内存。 线程的工作内存中保存了该线程使用到的变量的主内存中的副本拷贝。 java内存模型中的主内存、工作内存与之前JVM内存分布不是一个层次上的内存划分,这两者基本上是没有关系的。 如果非要勉强对应,那从变量、主内存、工...

2019-02-18 23:14:56

阅读数 77

评论数 0

JVM:jstack

jstack:   stack trace for java 用途:用于生成虚拟机当前时刻的线程快照 (何为线程快照?就是指当前虚拟机中每一条线程正在执行的方法堆栈的集合) (为何要生成线程快照?为了定位线程出现长时间停顿的原因。) 什么可以导致线程出现长时间的停顿? 1)线程间死锁 ...

2019-01-11 11:20:50

阅读数 30

评论数 0

JVM:常用调优命令

Jvm堆内存的划分结构和优化,垃圾回收详解(详细解答篇) 调试参数列表: 参数及其默认值 描述 -XX:-CITime 打印消耗在JIT编译的时间 -XX:ErrorFile=./hs_err_pid<pid>.log 保存...

2018-12-17 14:52:07

阅读数 60

评论数 0

JVM: G1和CMS的区别

CMS:以获取最短回收停顿时间为目标的收集器,基于并发“标记清理”实现 有人会好奇为什么标记清理算法会产生内存碎片!但是CMS仍采用这种算法呢? 答案是:因为CMS作为第一款实现用户线程和收集线程并发执行的收集器!当时的设计理念是减少停顿时间,最好是能并发执行!但是问题来了,如要用户线程也在执...

2018-12-17 12:24:12

阅读数 395

评论数 0

JVM:堆与栈的比较

堆(heap)与栈(stack)     堆和栈是程序运行的关键,很有必要它他们的关系说清楚。     在java中,Main函数就是栈的起始点,也是程序的起始点。程序要运行总是有一个起点的(程序执行的入口)。 概括:     1  栈是运行时的单位 , 而堆是存储的单元。  2  ...

2018-12-17 12:02:14

阅读数 24

评论数 0

JVM:gc什么时候开始?System.gc()能保证gc一定发生吗?

gc什么时候开始? “你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?” 在什么时候: 1.新生代有一个Eden区和两个survivor区,首先将对象放入Eden区,如果空间不足就向其中的一个survivor区上放,如果仍然放不下就会引发一次发生在新生代的minor GC...

2018-12-17 11:39:39

阅读数 863

评论数 2

JVM:永久代 以及jdk1.8为什么将其移除?

永久代 在JDK8之前的HotSpot实现中,类的元数据如方法数据、方法信息(字节码,栈和变量大小)、运行时常量池、已确定的符号引用和虚方法表等被保存在永久代中,32位默认永久代的大小为64M,64位默认为85M,可以通过参数-XX:MaxPermSize进行设置,一旦类的元数据超过了永久代大小...

2018-12-17 11:15:49

阅读数 698

评论数 3

JVM:方法区可以GC吗?

方法区和堆一样,都是线程共享的内存区域,被用于存储已被虚拟机加载的类信息(字段等)、即时编译后的代码(方法字节码)、静态变量和常量等数据。 根据Java虚拟机规范的规定,方法区无法满足内存分配需求时,也会抛出OutOfMemoryError异常,虽然规范规定虚拟机可以不实现垃圾收集,因为和堆的垃...

2018-12-15 21:11:32

阅读数 462

评论数 0

JVM:内存划分总结

总结 1、所有线程共享的内存数据区:方法区,堆。而虚拟机栈,本地方法栈和程序计数器都是线程私有的。 2、存放于栈中的东西如下:   2.1 每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象)。对象都存放在堆区中。 2.2 每个栈中的数据(基础数据类型和对象引用)...

2018-12-15 12:19:11

阅读数 50

评论数 0

jvm:类加载器与双亲委派模型

两个类相等需要类本身相等,并且使用同一个类加载器进行加载。这是因为每一个类加载器都拥有一个独立的类名称空间。 这里的相等,包括类的 Class 对象的 equals() 方法、isAssignableFrom() 方法、isInstance() 方法的返回结果为 true,也包括使用 insta...

2018-12-15 12:06:31

阅读数 52

评论数 0

JVM:内存分配与回收策略?Full GC 的触发条件?StopTheWorld ?

内存分配与回收策略 Minor GC 和 Full GC Minor GC:发生在新生代上,因为新生代对象存活时间很短,因此 Minor GC 会频繁执行,执行的速度一般也会比较快。 Full GC:发生在老年代上,老年代对象其存活时间长,因此 Full GC 很少执行,执行速度...

2018-12-15 09:47:03

阅读数 106

评论数 0

JVM:类加载机制之类加载过程

  类加载机制概念  Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、准备、解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制。* Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象...

2018-12-07 16:46:11

阅读数 55

评论数 0

JVM:类加载机制之类加载器

JVM设计者把类加载阶段中的“通过'类全名'来获取定义此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。  1.类与类加载器 对于任何一个类,都需要由加载它的类加载器和这个类来确立其在JVM中的唯一性。...

2018-12-07 16:44:23

阅读数 57

评论数 0

JVM:GC日志解读

深入理解Java虚拟机 [JVM]Java内存区域与垃圾收集 - 思维导图 [JVM]类加载机制 - 思维导图 [JVM]OOM实例分析 [JVM]理解Class文件(1):手动解析常量池 [JVM]理解GC日志 [JVM]理解Class文件(2) 1. 输出GC日...

2018-11-30 22:40:18

阅读数 48

评论数 0

04.Java 堆内存 新生代 老年代?

Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。 这...

2018-11-28 12:22:56

阅读数 45

评论数 0

03.native方法(JNI)

native方法其实就是我们本地的方法  当我们java代码无法实现,可以使用c/c++实现。然后java调用本地的c/c++接口。 http://www.cnblogs.com/HDK2016/p/7226840.html?utm_source=itdadao&utm...

2018-11-27 12:24:39

阅读数 17

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭