转自:https://www.jianshu.com/p/5946c0a414b5 需要提前了解的知识点: JVM内存模型 JVM垃圾回收算法 下图是JVM内存区域划分的逻辑图 JVM内存区域逻辑图 从图中我们大概了解JVM相关的内存区域。 JVM内存包括区域 Heap(堆区) New Genera ...
分类:
其他好文 时间:
2018-11-03 23:13:52
阅读次数:
205
JVM总括:目录 JVM总括一-JVM内存模型 JVM总括二-垃圾回收、回收算法、回收器 JVM总括三-字节码、字节码指令、JIT编译执行 JVM总括四-类加载过程、双亲委派模型、对象实例化 ...
分类:
其他好文 时间:
2018-10-31 14:01:58
阅读次数:
140
一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈: 每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方 ...
分类:
其他好文 时间:
2018-10-18 22:07:49
阅读次数:
233
我在写程序的时候想过的以下这些问题,不知道大家是不是都是这样: 1. 类是怎么加载的,存储在哪里?类的对象存储在哪里,类和类对象怎么关联、对应的? 2. 方法存在哪里?子类继承父类之后覆盖父类的方法之后JVM什么机制执行子类or父类方法? 3. static变量和普通变量是放着一起吗? 4. 为什么 ...
分类:
其他好文 时间:
2018-09-29 16:48:52
阅读次数:
163
值传递和引用传递分析 Java中数据类型分为两大类:基本类型和引用类型(也就是对象类型)。 基本类型:boolean、char、byte、short、int、long、float、double 引用类型:类、接口、数组 因此,变量类型也可分为两大类:基本类型和引用类型。 在分析值传递和引用传递之前,... ...
分类:
其他好文 时间:
2018-09-22 22:26:18
阅读次数:
332
文章转自 https://www.cnblogs.com/myna/p/7567889.html 引文 JDK7及之前版本的方法区(Method Area)和Java堆一样,是各个线程共享的内存区域,用于存储已经被虚拟机加载的类信息、常量、静态常量、即时编译器编译后的代码等数据。虽然Java虚拟机规 ...
分类:
编程语言 时间:
2018-09-17 23:05:16
阅读次数:
407
1.1.什么是直接内存(Derect Memory) 在内存模型最开始的章节中,我们画出了JVM的内存模型,里面并不包含直接内存,也就是说这块内存区域并不是JVM运行时数据区的一部分,但它却会被频繁的使用,原因是NIO这个包。 NIO(New input/output)是JDK1.4中新加入的类,引 ...
分类:
其他好文 时间:
2018-09-15 18:22:11
阅读次数:
161
一、堆(Heap) 1.1.什么是堆 堆是用于存放对象的内存区域。因此,它是垃圾收集器(GC)管理的主要目标。其具有以下特点: 堆在逻辑上划分为“新生代”和“老年代”。由于JAVA中的对象大部分是朝生夕灭,还有一小部分能够长期的驻留在内存中,为了对这两种对象进行最有效的回收,将堆划分为新生代和老年代 ...
分类:
其他好文 时间:
2018-09-15 17:32:07
阅读次数:
127
最近开始肝第三次<深入理解Java虚拟机-JVM高级特性与最佳实践>, 每次都是看了就忘, 所以这次准备写点东西记录下来. 个人感觉这本书写的是真的不错, 不同的阶段看有不同的体验, 每次都有很多收获. 话不多说, 直接进入正题. 什么是JVM Java Vitual Machine, 是一个运行J ...
分类:
其他好文 时间:
2018-09-13 23:59:51
阅读次数:
301
JVM内存划分,人为的根据不同内存空间的存储特点以及存储的数据: 本地方法栈:为虚拟机使用的native方法服务。程序计数器:当前线程所执行的字节码的行号指示器。Java虚拟机栈:描述Java方法执行的内存模型,每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口等 ...
分类:
其他好文 时间:
2018-09-04 23:29:05
阅读次数:
193