摘要: 由于运行时常量池属于方法区的一部分,因此两个区域放在一块执行。 String.intern()是一个Native方法,它的作用是如果字符串常量池中已经包含了此String对象的字符串,则返回代表池中这个字符串的String对象;否则将此String对象包含的字符串添加到常量池中,并且返回此Strin 阅读全文
posted @ 2019-03-29 00:19 使用D 阅读(505) 评论(0) 推荐(0) 编辑
摘要: Java堆溢出 Java堆溢出 可以通过不停的创建对象来造成堆内存溢出 public static void main(String[] args) { List list = new ArrayList<>(); while(true) { list.add(new ObjectBIg()) } 阅读全文
posted @ 2019-03-29 00:18 使用D 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 由于在Hotspot虚拟机中中不区分虚拟机栈和本地方法栈,因此通过-Xoss修改参数是无效的,可以通过修改-Xss设定。 如果线程请求的栈深度大于虚拟机允许的最大深度,将抛出StackOverflowError异常。 如果虚拟机在扩展栈时无法申请到足够的内存空间,将抛出OutOfMemoryErro 阅读全文
posted @ 2019-03-29 00:17 使用D 阅读(917) 评论(0) 推荐(0) 编辑
摘要: DirectMemory容量可以同-XX:MaxDirectMemorySize指定,如果不指定,默认为Java堆最大值相同。 可以同通过反射获得Unsafe实例进行内存分配进行抛出异常。虽然可以使用DirectMemory分配内存也可以抛出内存异常,但是它抛出异常时并没有真正向操作系统申请分配内存 阅读全文
posted @ 2019-03-29 00:17 使用D 阅读(198) 评论(0) 推荐(0) 编辑