zoukankan      html  css  js  c++  java
  • Java垃圾回收理解

    gc是垃圾回收,Java的垃圾回收分为年轻代回收和老年代回收,其中年轻代回收速度快,频率高,因为Java对象大多具有朝生夕灭的特性,Java对象都是new出来的,当new出很多对象的时候,年轻代很容易就满,满了就触发yong gc对没有引用指向的对象进行回收。但是会有一些对象连续被回收好几次之后还没被回收掉,因为这种对象还有引用指向,或者是一些大对象,这些对象被yong gc一定次数之后还存在的话,就会被放到老年代里,像这种不断从年轻代过来的对象多了,老年代就满了,老年代满了之后会触发fullgc回收,如果因为代码问题老年代回收不掉的话,比如某些方法被调用了但没有及时释放的情况,这时如果有对象从年轻代过来,那么就会报内存溢出错误。

    使用System.gc()可以手动回收,使用System.gc()可以不管JVM使用的是哪一种垃圾回收的算法,都可以请求Java的垃圾回收。

    手动垃圾回收调用System.gc()也仅仅是一个请求(建议)。JVM接受这个消息后,并不是立即做垃圾回收,而只是对几个垃圾回收算法做了加权,使垃圾回收操作容易发生,或提早发生,或回收较多而已。

  • 相关阅读:
    Redis和Memcache的区别
    j2EE框架collection
    总结乐观锁和悲观锁
    lunix,命令集锦
    遍历Map集合的方法
    arrayList和vector的区别
    python借助zookeeper实现分布式服务(二)
    python借助zookeeper实现分布式服务(一)
    zookeeper常用命令
    python实现事件驱动模型
  • 原文地址:https://www.cnblogs.com/lanyy/p/8588999.html
Copyright © 2011-2022 走看看