堆内存模型: 在Java中,堆被划分成两个不同的区域:新生代(Young),老年代(Old)。而Permanent属于永久代(方法区),不属于堆内存。新生代又被分为了三个区域:Eden,from survivor,to survivor。这样划分的目的是为了使JVM能够更好 ...
分类:
其他好文 时间:
2019-06-19 12:07:14
阅读次数:
106
一、题目 二、知识点 类的加载顺序 1. 父类静态对象和静态代码块 2. 子类静态对象和静态代码块 3. 父类非静态对象和非静态构造代码块 4. 父类构造函数 5. 子类非静态对象和非静态构造到代码块 6. 子类构造函数 7. 普通代码块 上述加载顺序中,类中静态代码块按照声明顺序执行,并且1和2在 ...
分类:
编程语言 时间:
2019-06-19 00:36:52
阅读次数:
158
转自:https://www.cnblogs.com/paddix/p/5309550.html 一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧 ...
分类:
其他好文 时间:
2019-06-18 19:49:11
阅读次数:
103
java内存 1.栈 存储的是变量(不仅仅只有变量),不会对存储的内容进行赋值,存储的内容使用完成之后会立即进行清除 2.堆 存储的是对象。会对存储的内容进行赋值,存储内容使用完成之后会在某个时间进行清除 3.方法区(面向对象讲) 4.本地方法栈:专门开辟的区域,用来与其他语言的交互 5.寄存器(硬 ...
分类:
编程语言 时间:
2019-06-16 16:06:35
阅读次数:
102
JVM虚拟机 寄存器: 最快的存储区,位于处理器内部,但是数量极其有限。所以寄存器根据需求进行自动分配,无法直接人为控制 堆区: 位于RAM当中,一种通用的内存池。其中存放的数据由JVM自动进行管理。 jvm只有一个堆区(heap)被所有线程共享,只存放对象本身。 又称动态内存分配,当需要一个对象时 ...
分类:
编程语言 时间:
2019-06-15 20:44:14
阅读次数:
141
类的生命周期 加载-》验证-》准备-》解析-》初始化-》使用-》卸载 类加载过程 类加载包括以上的前五个过程:加载,验证,准备,解析,初始化 加载 1、主要完成三个工作 通过类的完全限定名称来定位定义该类的二进制字节流 将二进制字节流中的静态数据结构转化成方法区中的动态数据结构 在堆中生成一个代表该 ...
分类:
其他好文 时间:
2019-06-15 20:32:19
阅读次数:
133
一、JVM主要的结构如下: 二、各个区域功能介绍 1)、方法区(Method Area): (1)用于存储虚拟机加载的类信息、常量、静态变量等,是各个线程共享的内存区域; (2)默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法 ...
分类:
编程语言 时间:
2019-06-14 18:28:43
阅读次数:
104
讨论QQ:1586558083 目录 一、JVM的结构图 1.1 Java内存结构 1.2 如何通过参数来控制各区域的内存大小 1.3 控制参数 1.4 JVM和系统调用之间的关系 二、JVM各区域的作用 2.1 Java堆(Heap) 2.2 方法区(Method Area) 2.3 程序计数器( ...
分类:
其他好文 时间:
2019-06-11 13:16:46
阅读次数:
104
学习JVM运行模型比较重要,先看一幅图片: 运行时数据区(内存结构) : 1.方法区(Method Area)类的所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也在这里定义。简单来说,所有定义的方法的信息都保存在该区域,静态变量+常量+类信息(构造方法/接口定义)+运行时常量池都存在方法 ...
分类:
其他好文 时间:
2019-06-09 23:57:53
阅读次数:
247
听说for循环已经成了菜鸟标配。。。? 瑟瑟发抖 赶紧找来资料补一补 1, forEach循环,循环数组中每一个元素并采取操作, 没有返回值, 可以不用知道数组长度 2, map函数,遍历数组每个元素,并回调操作,需要返回值,返回值组成新的数组,原数组不变 3,filter函数, 过滤通过条件的元素 ...
分类:
其他好文 时间:
2019-06-09 09:56:28
阅读次数:
128