
JVM
文章平均质量分 83
unix21
这个作者很懒,什么都没留下…
展开
-
String和常量池
String s1 = "abc";// 放在常量池中 String s2 = "abc";// 从常量池中查找 String s3 = new String("abc");//new放在堆中 String s4 = new String("abc"); String s5 = s1.intern(); String原创 2016-12-02 13:15:17 · 514 阅读 · 0 评论 -
JVM内存溢出的几种情形
java虚拟机规范定义了两种异常与栈空间有关:StackOverflowError和OutOfMemoryError线程计算过程中 栈深度>最大可用栈深度 抛出StackOverflowError如果栈可以动态扩展,如果扩展过程中没有足够内存空间支持会抛出OutOfMemoryError-Xss设置栈大小,栈大小决定了函数调用的可达深度public class Test原创 2016-12-02 11:09:22 · 778 阅读 · 0 评论 -
Java常用命令及Java Dump
线程Dump,包含所有线程的运行状态。纯文本格式。堆Dump,包含线程Dump,幵包含所有堆对象的状态。二进制格式。Java Dump方法1.使用Java虚拟机制作Dump指示虚拟机在发生内存不足错误时,自动生成堆Dump-XX:+HeapDumpOnOutOfMemoryError2.使用图形化工具制作Dump使用JDK(1.6)自带的工具:Java Vi原创 2017-12-20 14:19:59 · 2224 阅读 · 0 评论 -
线上java问题排查
0.jps这个输出java进程pid#jps查看java的线程#top -Hp 25448如图25757这个线程比较耗时,看看他在做什么注意需要折算出线程pid的16进制值,然后jstack。可以打印更多信息#jstack pid | grep -A 20 649d参考:JVM调优之jstack找出最耗cpu的线程并定位代码原创 2018-01-18 11:24:38 · 909 阅读 · 0 评论 -
Java堆外内存泄露分析
查看堆内存占用正常,jvm垃圾回收也没有异常。而top出来显示java占用内存是几个G,那么可能想到了是堆外内存泄漏。需要安装google-perftools工具进行分析1.先安装g++不然编译会报错:g++: command not found# yum -y install gcc gcc-c++----2.安装libunwind不建议版本>0.99据说有问题,原创 2018-01-25 14:18:29 · 15664 阅读 · 2 评论