• Java内存管理


    1,垃圾收集和内存管理

    GC即垃圾收集机制,是指JVM用于释放那些不再使用的对象所占的内存。

    特点如下:1,垃圾收集的时间是未知的。2,java中提供了一个强行执行垃圾收集的方法-system.gc().

    3,一般采用默认的垃圾收集器,实时性要求比较高的系统采用增量收集器。系统具有较高的配置,有比较多的闲置资源,则可以考虑使用并行标记/清除收集器。4,尽早释放无用对象的引用,通过设置null,暗示垃圾收集器来收集该对象。finalize相当于析构函数,他是垃圾回收器回收一个对象的时候第一个要调用的方法。

    //对象回收前执行,自己编写垃圾回收反馈
    protected void finalize() throws Throwable{
      System.out.println(name+  "被回收");
    }

    java中内存管理就是对象的分配和释放的问题。程序员需要通过关键字new为每个对象申请空间(基本类型除外),所有的对象都在堆中分配。 对象的释放是由GC决定。

    GC的工作原理可以通过有向图解释,可以将对象视为有向图的顶点,将应用关系视为图的有向边,有向边从引用者指向应用对象。每个线程对象可以作为一个图的起始顶点。

    java的内存泄露就是存在一些被分配的对象,这些对象有下面两个特点,1,对象可达,即有向图中存在通路。2,对象无用,即程序以后不会再使用这些对象。

    造成内存泄露的原因?

    忘记释放先前分配的内存,就可能造成内存泄露。为了保证垃圾回收,编程人员通过将对象字段设置为NULL或者从集合(collection)中移除对象。注意:局部变量不需要设置null,会自动消除。

    典型的内存泄露和原因

    1,全局集合

    JNDI数或者一个会话表中,周期性的运行某种清除任务,使用反向链接计数,然后集合负责统计集合中每个入口的反向链接的数目。

  • 相关阅读:
    Neural Collaborative Filtering
    Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks
    Statistical Comparisons of Classifiers over Multiple Data Sets
    Data Poisoning Attacks on FactorizationBased Collaborative Filtering
    Markov Chain
    Adversarial Personalized Ranking for Recommendation
    常见网络协议
    Python3 JWT的生成与验证
    Python3函数中如何理解递归
    Python3使用re模块解析正则表达式
  • 原文地址:https://www.cnblogs.com/smuxiaolei/p/7702296.html
Copyright © 2020-2023  润新知