上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 35 下一页
摘要: 标记-清除算法 标记-清除算法 算法分为标记、清除两个阶段:首先标记处所有需要回收的对象,在标记完成后统一回收所有被标记的对象,它的标记过程其实就是之前介绍的两种算法(可达性分析算法)。 标记-清除算法的两个不足之处:一个是效率问题,标记和清除两个剁成的效率都不高;另一个是空间问题,标记清除之后会产 阅读全文
posted @ 2019-04-01 01:27 使用D 阅读(221) 评论(0) 推荐(0)
摘要: 方法区的垃圾回收,即使永生代的垃圾收集:主要回收两部分内容,废弃的常量和无用类、 回收废弃的常量与Java堆中的对象非常类似,以常量池中字面量的回收为例:假如一个字符串"abc"已经进入了常量池中,但是当前系统没有任何一个String对象的是叫做abc的,换句话说就是没有任何STring对象引用常量 阅读全文
posted @ 2019-04-01 00:04 使用D 阅读(336) 评论(0) 推荐(0)
摘要: 垃圾回收需要考虑三个问题: 哪些内存需要回收? 什么时候回收? 如何回收? JVM中程序计数器、虚拟机栈、本地方法三个区域随线程而生,随线程而死,这三个区域的内存分配和回收都具有确定性,在这个几个区域不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就随着回收了。 而Java堆和方法区则 阅读全文
posted @ 2019-03-31 23:18 使用D 阅读(305) 评论(0) 推荐(0)
摘要: 由于运行时常量池属于方法区的一部分,因此两个区域放在一块执行。 String.intern()是一个Native方法,它的作用是如果字符串常量池中已经包含了此String对象的字符串,则返回代表池中这个字符串的String对象;否则将此String对象包含的字符串添加到常量池中,并且返回此Strin 阅读全文
posted @ 2019-03-29 00:19 使用D 阅读(524) 评论(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 阅读(178) 评论(0) 推荐(0)
摘要: 由于在Hotspot虚拟机中中不区分虚拟机栈和本地方法栈,因此通过-Xoss修改参数是无效的,可以通过修改-Xss设定。 如果线程请求的栈深度大于虚拟机允许的最大深度,将抛出StackOverflowError异常。 如果虚拟机在扩展栈时无法申请到足够的内存空间,将抛出OutOfMemoryErro 阅读全文
posted @ 2019-03-29 00:17 使用D 阅读(926) 评论(0) 推荐(0)
摘要: DirectMemory容量可以同-XX:MaxDirectMemorySize指定,如果不指定,默认为Java堆最大值相同。 可以同通过反射获得Unsafe实例进行内存分配进行抛出异常。虽然可以使用DirectMemory分配内存也可以抛出内存异常,但是它抛出异常时并没有真正向操作系统申请分配内存 阅读全文
posted @ 2019-03-29 00:17 使用D 阅读(199) 评论(0) 推荐(0)
摘要: 对象创建 对象创建 虚拟机遇到一个new指令时,首先去,检查这个指令的参数是否在常量池中定位到一个雷的符号引用,并且检查这个符号引用代表的雷是否已被加载、解析、初始化过。 在类加载检查通过后,虚拟机将会为新对象分配内存,对象所需要的内存大小在加载后可以确定,为对象分配内存的任务就是把一块确定大小的内 阅读全文
posted @ 2019-03-27 23:30 使用D 阅读(176) 评论(0) 推荐(0)
摘要: Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。 这些区域各有个的用途、以及创建和销毁时间,有的随虚拟机进程的启动而存在,有的则依赖于用户线程的启动和结束而建立和销毁。 Java虚拟机主要分为5部分:方法区、虚拟机栈、本地方法栈、堆、程序计数器。 程序计数器:是一 阅读全文
posted @ 2019-03-27 23:29 使用D 阅读(235) 评论(0) 推荐(0)
摘要: 6.1链表 链表表示一种存放和操作的可变数据元素的数据结构。 链表与静态数组不同的是它包含的元素是动态创建并且插入链表的,在编译时不必知道具体需要多少个元素。 另外链表中每个元素的创建时间各不相同,所以它们在内存中无需占用连续的空间。 链表中每个元素都包含指向下一元素的指针,当有新元素加入链表时,可 阅读全文
posted @ 2019-03-22 00:38 使用D 阅读(323) 评论(0) 推荐(0)
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 35 下一页