jvm

记一次JMX远程连接失败的问题

今日测试服上发现了一个堆内存问题,想要用jvisualvm远程连接jmx过去查看,但是发现连接失败了。 我赶紧查看服务器上的jvm参数,参数正常—— ` -Djava.rmi.server.hostname=192.168.12.17 -Dcom.sun.management.jmxremote.p

软引用对象的使用

如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。这通常能够用在缓存删除的场景,让缓存对象实现软引用,那么在内存不够的时候,缓存对象就能被回收,释放内存。 案例1,不使用软引用 jvm参数设置:-Xms5M -Xmx5M -XX:+PrintG

强引用对象并非不会被回收

在《深入理解java虚拟机》第二版中第3章,有写到: 强引用就是指在程序代码之中普遍存在的,类似“Object obj = new Object()”这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象。《深入理解java虚拟机》 这段话很容易让人理解成, 类似“Object obj

JVM简单总结

jvm内存区域 [ ]() 1、程序计数器:每个线程都有自己的一个程序计数器,记录所执行的字节码的行号。 2、虚拟机栈:每个线程独有的,生命周期与线程相同。一个方法被执行的时候就会创建一个栈帧,方法的执行至结束对应着栈帧的入栈至出栈的过程。 3、本地方法栈: 与虚拟机栈作用类似,但它只为本地nati

根据JVM日志计算JVM参数

一、程序 ` public class Test5 { public static void main(String[] args) { byte[] b =null; for (int i = 0; i < 10; i++) { b=

JVM日志分析之五

一、程序 ` public class Test5 { public static void main(String[] args) { byte[] b =null; for (int i = 0; i < 10; i++) { b=

JVM日志分析之四

一、程序 ` public class Test4 { public static void main(String[] args) { byte[] b =null; for (int i = 0; i < 10; i++) { b=

JVM日志分析之三

一、程序 ` public class Test3 { public static void main(String[] args) { byte[] b =null; for (int i = 0; i < 10; i++) { b=

JVM日志分析之二

程序 ` public class Test2 { public static void main(String[] args) { byte[] b =null; for (int i = 0; i < 10; i++) { b=ne

JVM日志分析之一

1、程序Test1 ` public class Test1 { public static void main(String[] args) { byte[] b =null; for (int i = 0; i < 10; i++) {