2020年8月22日

摘要: 永久代 在自定义类加载器还不是很常见的时候,类大多是static的,很少被卸载或收集,因此被成为“永久的(Permanent)”。 同时,由于类class是JVM实现的一部分,并不是由应用创建的,所以又被认为是“非堆(Non-Heap)”内存。 在JDK8之前的HotSpot JVM,存放这些“永久 阅读全文
posted @ 2020-08-22 16:56 shumeigang 阅读(853) 评论(0) 推荐(0)
摘要: 内存模型 方法区(Method Area):方法区是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。当方法区无法满足内存分配需求时,将抛出OutOfMemoryError 异常。方法区里存放着类的版本,字段,方法,接口和常量池。常量池里存储着字 阅读全文
posted @ 2020-08-22 16:03 shumeigang 阅读(222) 评论(0) 推荐(0)
摘要: 内存溢出是什么? 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出。 内存溢出和内存泄漏有什么区别? 内存泄漏是由于使用不当,把一部分内存“丢掉了”,导致这部分内存不可用。当在堆中创建了对象,后来没有使用这个对象了,又没有把整个对象的相关引用 阅读全文
posted @ 2020-08-22 15:58 shumeigang 阅读(152) 评论(0) 推荐(0)
摘要: 引用计数器法 当一个地方引用它时,就+1;当引用失效时,就-1;GC会回收那些计数为0的对象。 优点:简单,快捷 缺点:对于相互引用的对象会失效 可达性分析算法 通过一系列成为“GCRoots”的对象,向下搜索,搜索所走过的路线成为引用链。若是一个对象无法通过任何引用链和GCRoots相连接,则说明 阅读全文
posted @ 2020-08-22 15:54 shumeigang 阅读(168) 评论(0) 推荐(0)

导航