zoukankan      html  css  js  c++  java
  • java内存

    内存申请和内存使用是一回事吗?
    内存申请是对应参数overcommit,使用是对应avalable。sysctl -a 里面overcommit的参数,2表示申请以后哪怕你不用,别人也不能用。一般用0,表示你申请了,但是没用,那么别人可以抢过来用。


    类加载过程会有死锁吗?
    有,类加载、初始化调用cinit方法的时候,会加锁(通过引用static保证单例就是因为有初始化类锁的存在),如果对类A加锁后,又去初始化另一个类B,而这个类B的初始化也会引起类A的初始化,那么有可能导致死锁。

    最常见的触发类加载的方式包括:static引用(如果有final修饰那么不触发)、new实例。引用子类,会触发对父类的初始化。如果类A里面有其他类B的static引用,也会在初始化A的时候也会对B进行初始化


    是不是一定是内存不够用才gc?
    不是,有时候内存碎片也会导致full-gc。由于老年代不像新生代使用复制算法回收,所以存在碎片可能。


    如何定位java代码引用的动态内存?
    通过perftools找出底层方法申请的内存大小,再把底层方法和对应的java方法找到,最后通过bttrace跟踪这个方法栈

  • 相关阅读:
    第一次个人编程作业
    第一次结对编程作业
    第一次编程作业——地址簿
    我的第一次博客作业
    团队作业1
    作业一
    寒假作业四
    寒假作业三
    第二次寒假作业
    电梯
  • 原文地址:https://www.cnblogs.com/notlate/p/10164891.html
Copyright © 2011-2022 走看看