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跟踪这个方法栈

  • 相关阅读:
    YOLO V5
    YOLO系列(单阶段目标检测)
    优化算法
    算法总结
    图像分类算法
    ResNet网络(里程碑)
    GoogleNet网络(纵横交错)
    VGGNet网络(走向深度)
    AlexNet网络(开山之作)
    案例
  • 原文地址:https://www.cnblogs.com/notlate/p/10164891.html
Copyright © 2011-2022 走看看