Jvm优化 了解下我们为什么要学习 JVM优化 掌握 jvm的运行参数以及参数的设置 掌握 jvm的内存模型(堆内存) 掌握 jamp命令的使用以及通过MAT工具进行分析 掌握定位分析内存溢出的方法 为什么要学习JVM优化 JVM被称为Java虚拟机,所有Java程序的运行都依赖于JVM 1.应用运 ...
分类:
其他好文 时间:
2020-03-03 20:31:35
阅读次数:
87
一、jdk1.7的堆内存模型 1、Young 年轻区(代) Young区被划分为三部分,Eden区和两个大小严格相同的Survivor区,其中,Survivor区间中,某一时刻只有其中一个是被使用的,另外一个留做垃圾收集时复制对象用,在Eden区间变满的时候, GC就会将存活的对象移到空闲的Surv ...
分类:
其他好文 时间:
2020-03-03 17:46:45
阅读次数:
97
内存参数 参数 含义 默认值 示例 说明 -Xms 初始堆大小 物理内存的1/64(<1GB) -Xms1g 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制. -Xmx 最大堆大小 物理内存的1/4(<1GB) -Xmx1g 默认( ...
分类:
其他好文 时间:
2020-03-03 11:24:12
阅读次数:
91
永久区是一个常驻内存区域,用于存放JDK自身所携带的Class Interface的元数据 也就是说它存储的是运行环境必须的类信息,被装载进此区域的数据锁不会被垃圾回收掉的,关闭JVM 才会释放此区域所占用的内存。 JVM调优 堆参数调优 java8中,永久代被移除被元空间取代 两者本质类似 最大区 ...
分类:
其他好文 时间:
2020-02-29 14:42:14
阅读次数:
224
C语言 内存管理 堆区内存分配和释放 一、malloc 函数 #include <stdlib.h> void *malloc(size_t size); 功能:在内存的动态存储区(堆区)中分配一块长度为size字节的连续区域,用来存放类型说明符指定的类型。分配的内存空间内容不确定,一般使用mems ...
分类:
编程语言 时间:
2020-02-28 20:25:36
阅读次数:
55
java中内存的划分 栈(stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。 局部变量:方法的参数,或者是方法{}内部的变量 作用域:一旦超出作用域,立刻从占内存当中消失。 堆(Heap):凡是new出来的东西,都在堆当中。 堆内存中的东西都有一个地址值:16进制 堆内存里的数 ...
分类:
编程语言 时间:
2020-02-28 14:00:24
阅读次数:
51
程序计数器(私有) 程序计数器:"是一个非常小的内存空间,用来保证程序依次执行",它可以看作是当前线程所执行的字节码的行号指示器 由于java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在切出后切回的时候需要一个标识。 栈 (私有) "基本类型、运算、方法服务、指向堆内存的指 ...
分类:
编程语言 时间:
2020-02-25 00:11:09
阅读次数:
92
局部内部类访问局部变量的注意事项: 局部变量必须用final修饰! 为什么? 因为局部变量是随着方法的调用而调用,随着调用完毕而消失 但是我们调用内部类时创建的对象依旧在堆内存中,并没有被回收,如果访问的局部变量不是用final修饰的,就是当方法调用完毕后,依旧存在于堆内存中的对象找不到局部变量的问 ...
分类:
其他好文 时间:
2020-02-23 14:58:47
阅读次数:
78
一、方法的所属性 方法由传统的函数发展而来,方法与传统的函数显著不同:在结构化编程中,函数是一等公民,这个程序由一个个函数组成;在面向对象编程语言里,类才是一等公民,整个系统由一个个类组成。因此在Java语言里,方法不能独立存在,方法必须属于类或对象。 方法的所属性:(1)方法类似于函数。但与函数不 ...
分类:
其他好文 时间:
2020-02-22 00:26:19
阅读次数:
72
在js中,我们经常复制一个对象,复制数据,那么就会有人问了,怎么复制,今天鹏哥就带来js中的复制方法。 JS中对象分为基本类型和复合(引用)类型,基本类型存放在栈内存,复合(引用)类型存放在堆内存。 堆内存用于存放由new创建的对象,栈内存存放一些基本类型的变量和对象的引用变量。 至于堆内存和栈内存 ...
分类:
Web程序 时间:
2020-02-21 09:52:22
阅读次数:
99