JVM内存模型 首先我们来了解一下JVM的内存模型的怎么样的: 1.堆:存放对象实例,几乎所有的对象实例都在这里分配内存 堆得内存由-Xms指定,默认是物理内存的1/64;最大的内存由-Xmx指定,默认是物理内存的1/4。 默认空余的堆内存小于40%时,就会增大,直到-Xmx设置的内存。具体的比例可 ...
分类:
编程语言 时间:
2020-05-06 13:59:30
阅读次数:
89
Hotspot虚拟机在JDK8时的JVM内存模型 1.将虚拟机栈和本地方法栈合二为一 2.移除永久代,引入元空间来实现方法区 3.将运行时常量池加入堆空间 ...
分类:
其他好文 时间:
2020-05-06 13:55:16
阅读次数:
55
前言 安装再docker中的tomcat,在下载大文件或者某些情况下,会出现tomcat的内存溢出等情况,所以需要配置tomcat的内存大小,docker中的tomcat内存大小配置有四种方式。 一、修改catalina.sh 加入JVM: JAVA_OPTS="-server -Dfile.enc ...
分类:
其他好文 时间:
2020-05-06 10:27:00
阅读次数:
220
前言 最近被问到了JVM的垃圾收集器,在此进行整理记录,供大家一起学习。 jvm垃圾收集器 jvm垃圾收集器是jvm内存回收的具体实现。本次讨论hotspot虚拟机中的垃圾收集器。 图中总共有7中垃圾收集器。两个收集器中连线则表示可以配合使用。 中间的横线代表新生代和老年代的分区。上面的是新生代的垃 ...
分类:
其他好文 时间:
2020-05-02 22:54:46
阅读次数:
51
在tomcat的 conf/tomcat-users.xml文件的如下位置添加用户配置:<user username="admin" password="wmsap1" roles="manager-gui"/> 重启tomcat服务,打开tomcat管理地址:http://ip:端口/manage ...
分类:
其他好文 时间:
2020-05-02 20:48:17
阅读次数:
49
1、jmap命令基本概述 jmap命令是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。 打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 64位机上使用需要使用如下方式: jmap -J-d64 -heap pid ...
分类:
其他好文 时间:
2020-04-27 22:41:48
阅读次数:
63
学习下《深入理解虚拟机》第三版中2.4 OOM异常实战 一、Java堆溢出 /** * VM Args:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError */ public class HeapOOM { static class OOMObject{ ...
分类:
其他好文 时间:
2020-04-22 20:21:22
阅读次数:
70
先来看一下 JVM 说管理的内存图: 程序计数器 它是一块较小的内存空间,它的作用可以看做是当先线程所执行的字节码的信号指示器。 每一条JVM线程都有自己的PC寄存器,各条线程之间互不影响,独立存储,这类内存区域被称为“线程私有”内存 此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOf ...
分类:
其他好文 时间:
2020-04-22 19:47:24
阅读次数:
63
面试中经常被问到,怎么调优jvm,于是查了很多资料学习了一下,做一下总结, 1、jvm调优主要是针对垃圾回收,先要熟悉jvm内存模型,主要有堆内存,栈内存,堆内存是java对象new之后存放的区域,栈内存是java方法存放临时变量的区域,方法执行完栈内存会自动释放,垃圾回收需要清理的是堆内存 a、堆 ...
分类:
其他好文 时间:
2020-04-22 16:17:12
阅读次数:
86
1、基本概念 程序:代码,完成某一任务,代码序列(静态的概念) 进程:程序在某些数据上的一次运行(动态概念) 线程:一个进程可能包含一个或多个线程(占有资源的独立单元) 2、JVM与线程 JVM虚拟机在类被调用的时候启动 先启动JVM线程 其他线程(main线程) 3、JVM内存区域 方法区 主要存 ...
分类:
编程语言 时间:
2020-04-21 20:00:36
阅读次数:
86