- 博客(17)
- 收藏
- 关注
原创 ConcurrentModifcationException 的 what、why、how
ConcurrentModifcationException、Fast-Fail、快速失败检查机制、List并发操作
2024-04-03 10:43:23
1870
原创 为什么匿名内部类会持有外部类对象?
发现了吗,java编译器构建了一个名为Outer$1的类去实现、继承匿名内部类对应的类,并构建了一个有参构造器,入参规则是:外部类对象 + 匿名内部类使用到的外部类中的成员变量(上面用到了外部类的字符串,构造的有参构造器就会增加这个String的参数)答案是延时任务对象是通过匿名内部类构建的,其拥有外部类对象,这就让Activity退出后,GC释放不了Activity对象所占用的内存块,引发内存泄漏。可以看到,我们在构建Inner对象时,是通过无参构造器构建的,不会将外部类对象传入静态内部类的情况。
2024-02-23 18:25:50
1664
原创 Handler 泄漏场景、解决方案、深入理解
是的话,结果会是什么,会造成什么问题?手机内存是有限的,供我们应用可使用的对象更是少之又少,那问题就来了,我们平时打开的Activity、Fragment、以及其他new出来的对象,都是需要占用内存的,当这些对象不需要用到时,这些对象占用的内存是怎么回收以便重新分配给新new的对象的?”的跟对象作为起始节点集,以这些节点为开始,根据引用关系向下搜索,搜索走过的路径称为“引用链”,不在引用链内的对象是不可达的,允许被GC回收(此时并不是非死不可,有兴趣的可以度娘查一下GC对象的自救)为什么移除了就可以呢?
2024-02-23 12:30:02
2002
原创 Mac安装jd-gui 保姆级 含问题处理
JAVA_HOME全部成: /Users/makele/workspace/github/jdk1.8.0_451.jdk/Contents/Home。下载jd-gui-osx-1.6.6.tar即可,下载后放到对应位置,解压。解决办法是下载Jdk 1.8 ,让jd-gui使用该版本。两种安装方式都有各自的坑,废话少说,咱们开始吧。即可,下载后找个好点的地方解压,不需要dmg的。解压后,开始让jd-gui使用这个版本。保存,点击打开jd-gui,大功告成!右键应用jd-gui如下。第二种:下载代码安装。
2025-06-13 16:32:35
933
原创 [Adb]-操作命令大全
用于在计算机(Windows、macOS、Linux)和连接的 Android 设备(手机、平板、电视、模拟器等)之间建立通信桥梁。它允许开发者直接与设备交互,执行各种调试、管理、文件传输等操作。是 Android 开发工具包(SDK)中一个功能强大的。
2025-06-11 18:43:06
390
原创 Kotlin $字符怎么实现字符串拼接
Java中一个String就是一个对象,通过➕拼接会重新构建一个String对象,所以尽量避免在循环中进行String拼接,那怎么进行拼接呢?StringBuilder拼接时不会构建新String对象,平时一般使用StringBuilder进行拼接即可。了解完Java中的String相关,那Kotlin中一般怎么进行字符串拼接的呢?看一下,我们拼上都用$进行字符串拼接,那Kotlin内部怎么实现的?Java 8下,使用的是StringBuilder拼接。Java17下,使用的String拼接。
2025-05-14 11:30:21
386
原创 Apk瘦身脚本 - res资源可用性检查
在一些大一点的项目,Lint在执行之后会Run很长时间,且只是给你找出问题点。在瘦身时可能存在一定量的res需要剔除,用Lint检查起来就会相对慢一些,且有些Code删除之后我们也需要重新检查其是否有引用哪些layout、drawable等,这些也是可以一并检查删除的。Lint可以帮我们检索项目中可能存在错误的地方,平时功能代码写完后,也建议大家用其检查一下代码,帮助我们提高代码的健壮性。下面是脚本代码,实现起来相对简单暴力,直接放在Android项目下运行即可。
2024-04-01 18:12:19
281
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅