- 博客(3)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
原创 LeakCanary 如何实现对内存泄露的监控?
一、Activity 生命周期回调方法 LifecycleCallbacks在 Application 中注册 ActivityLifecycleCallbacks 时,可以监听到每个 Activity 的生命周期方法的执行。当 Activity 被销毁时,会回调到 onActivityDestroyed 方法,此时便是 LeakCanary 开始检测 Activity 是否泄露的时机。LeakCanary 通过 RefWatcher.watch(activity) 方法,判断刚刚调用了 onDestro
2020-09-13 22:11:50 497
原创 为什么 JVM 不能确保所有垃圾都会被回收?
垃圾回收垃圾回收包含两个步骤,1、标记哪些内存是垃圾;2、内存回收一、标记算法1、引用计数算法 - 经典算法,但没有 JVM 采用 堆中的每个对象都有一个引用计数器,根据引用计数是否等于零来判断是否需要被回收; 优点:判断是否需要回收的效率高,不需要额外的线程做 GC 的工作; 缺点:无法识别循环引用的情况,增加额外开销;2、根搜索标记算法步骤:第一步:获取不可...
2020-09-05 17:15:47 489
原创 java 虚拟机如何分配线程的内存区域
JVM 内存区1、程序计数器保存每个线程当前执行到的字节码的位置program_counter[0] = 0x12DFEDprogram_counter[1] = 0xAb45EEprogram_counter[2] = 0xFBED3A2、Java 栈每个线程都有一个独立的 Java 栈,栈由栈帧组成,每个方法都是一个栈帧;栈帧的组成 1、操作数栈:operator_num_stack = stack() 2、运行时常量池:ref = rt_stack_pool() 3、方法
2020-09-05 13:08:24 417
ANDROID AIDL DEMO
2015-02-12
java 方法参数传值问题
2016-06-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人