• GC


    判断一个对象是否为垃圾:

      该对象没有被其他对象所引用.

    判定对象是否被引用的算法:

      引用计数法,可达性分析算法.

    可以作为GC Root的对象:

      1 虚拟机栈中引用的对象(栈帧中的本地变量表)

      2 方法区中常量引用对象

      3 方法区中类静态引用的对象

      4 本地方法栈JNI(Native方法)中引用的对象

      5 活跃线程的引用对象

    Object的 finalize方法和C++的析构函数的作用是否相同:

      与析构函数不同,析构函数调用确定,而他是不确定性的

      未被引用的对象放置于F-Queue队列

      方法执行可能随时被终止

      给予对象最后一次重生的机会

    java中的强引用,软引用,弱引用,虚引用有什么用:

      强引用:最普遍的引用,即使抛出内存溢出异常也不会回收强引用的对象,通过将对象设置未null来弱化引用,使其被回收

      软引用:标识对象处在有用但非必须的状态,当内存空间不足时会回收该对象,可以用来实现内存敏感的高速缓存

      弱引用:非必须对象,比软引用更弱一些,GC时会被回收,被回收的概率不大,主要是应为垃圾回收线程的优先级较低,适用于偶尔被使用但又不影响垃圾收集的对象

      虚引用:不会决定对象的生命周期,任何时候都可能被垃圾收集器回收.主要用来被垃圾回收期回收的活动,起哨兵的作用,必须和引用队列联合使用

      四种引用级别的由高到底依次为:强-软-弱-虚

      引用队列:无实际存储结构,存储逻辑依赖于内部节点之间的关系来表达.存储关联的且被GC的软弱虚引用

  • 相关阅读:
    在地址栏里输入一个地址回车会发生哪些事情
    ROS librviz库
    jumpserver运行源码
    django源码剖析(steup、runserver、生命周期)
    QT在linux下编译出现Unable to create a debugging engine错误的解决
    node 服务启动
    查看端口占用
    自定义reducer,pipe,compose函数 码农
    talk 码农
    实现简版redux和中件间 码农
  • 原文地址:https://www.cnblogs.com/niuyg928/p/15208321.html
Copyright © 2020-2023  润新知