第二章 Java 内存区域与内存溢出异常
内存区域
苏州软件公司 略有区别" class="aligncenter size-full wp-image-30761" title="TIM截图20181208144452" src="/uploads/allimg/c181209/15442cFU640-13c7.png" />苏州软件公司 略有区别" class="aligncenter size-full wp-image-30762" title="工具内存模子" src="/uploads/allimg/c181209/15442cFV4K0-24P3.png" />
– from 姜志明
两种方法:
内存溢出异常
苏州软件公司 略有区别" class="aligncenter size-full wp-image-30758" title="TIM截图20181208144116" src="/uploads/allimg/c181209/15442cFZ0510-491K.png" />
OutOfMemoryException
。利用东西对快照举办阐明,看是否产生了内存泄露(内存中有不再利用的但无法接纳的工具或资源)。若是,昆山软件开发,则通过阐明引用链找到来源,办理问题;若不是查抄虚拟机堆参数,看是否可以或许调大。再查抄代码中是否有生命周期很长的大工具。OutOfMemoryException
。栈容量 * 线程数量 = 牢靠值。当线程数量过多时会激发,可以适当减小栈容量。StackOverflowException
。按异常查来源。public class StringTest { public static void main(String[] args) { String m = "hello"; String n = "hello"; String u = new String(m); String v = new String("hello"); System.out.println("m == n: " + (m == n)); System.out.println("m == u: " + (m == u)); System.out.println("m == v: " + (m == v)
苏州软件公司 略有区别" class="aligncenter size-full wp-image-30763" title="string-const" src="/uploads/allimg/c181209/15442cFZF10-55052.png" />
参考: 初探Java字符串
第三章 垃圾收集器与内存分派计策
判定工具是否存活
GC root
开始递归查询并标志,竣事后未被标志的(不行达的)即为可接纳的工具。GC root
共有四种:
垃圾收集算法