![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 73
东方贵族
从事安卓开发的日子压抑并快乐着,现在的付出是为了将来的回报。
展开
-
Handler相关问题
1.一个线程有多少个Handler一个线程可以有无数个Handler,直接new出来就行2.一个线程有几个Looper,如果保证?一个线程只有一个Looper,原因是:// 1.构造方法私有化private Looper(boolean quitAllowed) { mQueue = new MessageQueue(quitAllowed); mThread = Thread.currentThread(); } *****// 2.prep原创 2022-04-04 10:03:29 · 526 阅读 · 0 评论 -
LeakCanary源码分析
**原理:watch(监视)一个即将要销毁的对象**为什么产生内存泄露?1.当一个对象已经不需要再使用了,有一个正在使用的对象持有了这个对象的引用2.有些对象只有有限的生命周期内存泄漏会导致什么问题?1.OOM3.内存泄漏的场景单例导致内存泄漏非静态内部类创建静态实例 (非静态内部类会持有外部内的引用)内部类虽然和外部类写在同一个文件中, 但是编译完成后, 还是生成各自的class文件,内部类通过this访问外部类的成员。1 编译器自动为内部类添加一个成员变量, 这个成员变量的类型原创 2022-03-23 22:18:30 · 87 阅读 · 0 评论 -
线程、并发、线程协作
CAS的原理(compare and swap)利用了现代处理器都支持CAS的指令,循环这个指令,直到成功为止原创 2021-05-10 21:03:09 · 96 阅读 · 0 评论 -
泛型
泛型?泛型是一种参数化的变量,Java的泛型是一种伪泛型,c语言的模板函数和c#的泛型才是真的泛型,其中c语言的模板函数是通过替换实现的。Java在编译的时候会进行类型的擦除,但是会进行singature标记,通过singature标记后是可以通过反射获取到真实泛型的。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率。JVM并不知道泛型的存在,因为泛型在编译阶段就已经被处理成普通的类和方法;处理机制是通过类型擦除,擦除规则:若泛型类型没有指定具体类型,用O原创 2021-05-09 07:49:27 · 75 阅读 · 1 评论