分享

插件化和热修复学习之路

 印度阿三17 2019-08-31

一、Class的文件的详解

  1.什么是class文件

   能够被JVM虚拟机识别的文件

  2.如何生成一个class文件

   a. 通过IDE自动帮我们生成

   b.手动通过javac去生成class文件,通过java命令去执行class文件

  3.class文件的弊端

   a.内存占用大,不适合移动端

   b.堆栈的加栈模式,加载速度慢

   c.文件IO操作多,类查找慢

二、Dex文件的详解

  1.什么是dex文件

   能够被DVM识别,并且加载执行的文件格式  

  2.生成dex文件

   a.通过IDE自动生成文件

   b.手动通过dx命令生成dex文件,并且手动去执行dex文件在手机上

  3. dex文件会去除多余冗余的文件

三、java内存管理

  1.Java栈区 : 它是存放Java方法执行时所有的数据

  2.本地方法栈 : 是专门为native方法服务

  3.方法区 : 存储被虚拟机加载类的信息、常量、静态变量、编译器编译后等数据

  4.堆区 : 所有通过new创建的对象的内存都分配到堆中,它也是虚拟机最大的一块内存,时        GC要回收的部分

四、JVM的讲解

  

  原理讲解:从GC Root节点开始,寻找对用所有的引用的节点,没有引用不可达的节点,说明没有被引用,就被认为是垃圾对象

  1.引用类型为强引用、软引用、弱引用、虚引用

  2.弱引用的创建

   Object obj = new Object();

   WeakReference<Object> wf = new WeakReference<Object> (obj);

   obj = null;

   wf.get(); ----->必须判断是否为空

  3.垃圾回收算法

   a.标记-清除算法 : 快速的把对象回收,但是会产生很多内存碎片

   

   b.复制算法 : 开辟一个新的空间并复制要保留的对象,然后清除原有的,保留剩余的。但这样就需要开辟一块新的内存

   

  3.标记-整理算法:在标记-清除算法上做了优化,把标记垃圾的对象再遍历整个空间时,会把所有存活的对象往左端移动,不存活对象往右移,并更新对应的指针。

   

来源:https://www./content-4-429251.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多