对ANR实现原理的探究和总结
RxJava+Retrofit+OkHttp是最佳的网络请求实践,之前的项目中一直是使用Callback的方式进行网络请求,最近得空,引入了RxJava和Retrofit,重新封装了下项目的网络请求模块,不得不说,使用RxJava的响应式编程思想,面向数据流的编程方式,写出来的代码十分优美。
ThreadLocal实际上相当于一个工具类,我们使用ThreadLocal类就是和它打交道,本身并不存储什么,真正起作用的是内部类ThreadLocalMap。
ThreadLocal类作为Key存储在ThreadLocalMap中,通过ThreadLocal可以拿到存储的value值。
String并不属于基本类型之一,其本质是字符数组。
String在java1.7之前底层是java的字符数组,1.8开始在native层进行处理。
String不可变,对外提供的方法最后会创建新的String对象,不会对原来的String本身造成影响。1.7以前可以通过反射修改String本身,1.8之后不可以。
Java相比于C++,其最显著的特点就是不需要我们手动去回收内存,一切交给GC线程在后台自动完成,我们可以专心于代码的逻辑设计,而不用在意内存回收的细节。那么Java是如何进行内存回收的?下面对于堆内存结构和垃圾回收的算法进行总结。
在编程之初,相信每个人都有按照功能分包的意识,这就是最简单的模块化,而随着项目越来越大,代码逻辑越来越复杂,维护起来十分麻烦。因而组件化,插件化等技术慢慢的发展了起来,本文主要总结下自己对于模块化、组件化、插件化等概念的认识。