Java 虚拟机在执行 Java 程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java 虚拟机规范将 JVM 所管理的内存分为以下几个运行时数据区:程序计数器、Java 虚拟机栈、本地方法栈、Java 堆、方法区。 一,内存区域划分 1.线程共享区域: (1)Java堆(对象实例),G ...
分类:
编程语言 时间:
2020-02-06 16:23:32
阅读次数:
73
JVM运行时的数据区域划分图如下,该图是JVM内存模型最主要的内容。 从图中可以看出来,JVM将内存主要划分为五个部分:程序计数器、Java虚拟机栈、本地方法栈、Java堆和方法区。这些被划分为用途不一的数据区域有着各自的特点,它们都有自己创建和销毁的时间,有的区域随着进程的启动而存在,有的是伴随着 ...
分类:
其他好文 时间:
2020-02-06 10:36:11
阅读次数:
48
一、概念 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机 ...
分类:
其他好文 时间:
2020-02-03 22:48:30
阅读次数:
98
概述 上一篇文章我们已经了解了 Java 的这几块内存区域。对于垃圾回收来说,针对或者关注的是 Java 堆这块区域。因为对于程序计数器、栈、本地方法栈来说,他们随线程而生,随线程而灭,所以这个区域的内存分配和回收可以看作具备确定性。对于方法区来说,分配完类相关信息后内存大小也基本确定了,加上在 J ...
分类:
其他好文 时间:
2020-02-02 18:06:19
阅读次数:
100
OOM 异常 (OutOfMemoryError) OOM 异常 (OutOfMemoryError) Java 堆溢出 Java 虚拟机栈和本地方法栈溢出 方法区和运行时常量池溢出 直接内存溢出 Java 堆溢出 出现标志:java.lang.OutOfMemoryError: Java heap ...
分类:
编程语言 时间:
2020-02-01 19:47:03
阅读次数:
109
StandardScaler和scale均为Z-score标准化,即减去均值µ除以标准差σ 而在进行数据标准化的时候,通常有两种方式: 1)将训练集和测试集统一进行标准化处理,此时均值和方差为整个数据的均值和方差 2)得到训练集的均值和标准差,用测试集的数据减去训练集的均值除以训练集的标准差。 在结 ...
分类:
编程语言 时间:
2020-02-01 19:43:14
阅读次数:
151
什么是安全点? 在 JVM 中如何判断对象可以被回收 一文中,我们知道 HotSpot 虚拟机采取的是可达性分析算法。即通过 GC Roots 枚举判定待回收的对象。 那么,首先要找到哪些是 GC Roots。 有两种查找 GC Roots 的方法: 一种是遍历方法区和栈区查找(保守式 GC)。 一 ...
分类:
其他好文 时间:
2020-01-31 18:31:49
阅读次数:
252
一、深入自动拆装箱 1.直接举例: public class D78_AutomaticUnpackingAndPacking{ public static void main(String[] args){ Integer i1 = new Integer(10); Integer i2 = ne ...
分类:
编程语言 时间:
2020-01-31 00:34:50
阅读次数:
99
JVM的结构图 Java内存结构 JVM内存结构主要有三大块:堆内存、方法区和栈。 堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配; 方法区存储类信息、常 ...
分类:
其他好文 时间:
2020-01-26 19:10:01
阅读次数:
68
类加载的作用:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口。 类缓存:标准的JavaSE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存 ...
分类:
其他好文 时间:
2020-01-26 16:06:16
阅读次数:
77