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

  • 相关阅读:
    Android--多线程之Handler
    Android--Service之基础
    Android--UI之Fragment
    Android--多线程之图文混排
    python常用模块
    python应用之socket编程
    网络编程socket理论一
    pycharm Launching unittests with arguments
    python字符串格式化
    python数据类型之三
  • 原文地址:https://www.cnblogs.com/notlate/p/10164891.html
Copyright © 2011-2022 走看看