- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 DoubleArrayTrie 学习
源码解读 —— darts-javaDoubleArrayTrie dat = new DoubleArrayTrie();/**words 是String 数组类型按照字典序排好,类似于下面的形式一举一举一动一举成名一举成名天下知万能万能胶**/dat.build(words)2.DoubleArrayTrie 的具体实现public class DoubleArrayTri
2018-03-13 10:52:36 350 2
原创 事件框架(二)
EventBus 中的一些设计1. 事件的包装1.1 在编译时注解阶段包装被@Subscriber 修饰的方法 putIndex(new SimpleSubscriberInfo(com.study.sangerzhong.studyapp.ui.MainActivity.class, true, new SubscriberMethodInfo[] { new Subscr
2018-03-12 11:13:33 568
原创 事件框架
1. EventBus 源码简单解析1.1 初始化使用单例 public static EventBus getDefault() { EventBus instance = defaultInstance; if (instance == null) { synchronized (EventBus.class) {
2018-03-11 16:17:00 585
原创 注解解析器 ---- Element
ElementElement在中文的API文档中的解释为 javax.lang.model.element 表示一个程序元素,比如包、类或者方法。每个元素都表示一个静态的语言级构造(不表示虚拟机的运行时构造)。简单的讲我们可以将一个类看成类似HTML文档样,一个类是最外层的根节点,类变量和实例变量是根节点下的一个子节点,方法是另一个根节点,而方法中的变量又可以看成这个方法的子节点,依次类推下
2018-03-09 13:38:31 2552
原创 IDEA 下开发编译时注解
1. 新建两个普通的JAVA工程Process 编译时注解工程TestProcess 测试工程2. 自定义注解解析器2.1 代码@SupportedAnnotationTypes({"com.imzhushang.annotation.Subscribe"})@SupportedSourceVersion(SourceVersion.RELEASE_8)public class A
2018-03-08 18:08:21 2136
原创 Retrofit 源码解析
Retrofit 源码解析1 retrofit 的创建1.1 官方DemoRetrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .build();1.2 Retrofit 类的解析public final class Retrofit { .... private fi
2016-09-27 22:27:59 321
原创 java 中的深拷贝与浅拷贝
java 中的深拷贝与浅拷贝1 什么是浅拷贝和深拷贝浅拷贝 : 浅拷贝又叫浅复制,将对象中的所有字段复制到新的对象(副本)中。其中,值类型字段(java中8中原始类型)的值被复制到副本中后,在副本中的修改不会影响到源对象对应的值。而引用类型的字段被复制到副本中的还是引用类型的引用,而不是引用的对象,在副本中对引用类型的字段值做修改会影响到源对象本身。深拷贝 : 将对象中的所有字段复制到新的对象
2016-09-16 15:32:27 251
原创 Handler消息机制
Handler消息机制1. Handler的创建1.1 创建Handlerpublic Handler() { ... //拿到looper mLooper = Looper.myLooper(); ... //拿到消息队列 mQueue = mLooper.mQueue; mCallback = null;}在创建Handler对象时会在构
2016-09-14 21:31:53 226
原创 java 反射
java 反射1 获取class知道一个类,直接获取 Class 对象 Class class1 = ReflexBean.class;如果已经得到了某个对象,可以通过这个对象获取 Class 对象 ReflexBean bean = new ReflexBean(); Class<?> class3 = bean.getClass();如果你在编译期获取不到目标类型,但是你知道它的完
2016-09-06 12:45:21 360
原创 编译时注解
前言最近在看有关运行时注解的相关内容,在android studio 上开发遇到了不少的坑,希望通过这篇博客来总结这几天来的成果。与编译时注解有关的类和方法### 相关的类 这些方法会在接下来的工程中有所运用代码编写 android studio 下开发该案例是来源博客使用编译时注解方式实现View注入(Android Studio),该案例是实现类似ButterKnif
2016-09-02 21:46:28 741
原创 12 java内存模型与线程
12 java内存模型与线程12.1 硬件的效率与一致性缓存一致性 在多处理器的系统中,每个处理器有自己的高速缓存,而他们有共享同一主存,当多个处理器的运算任务都涉及到同一主内存区域时,将可能导致各自缓存的数据不一致缓存一致性协议 为了解决缓存一致性的问题,处理器访问内存是需要遵循一些协议,读写时要根据一些协议来操着,这类协议有MSI、MESI等乱序执行优化 和 指令 重排序优化 处理
2016-08-31 17:21:21 297
原创 javapoet——会写代码的“诗人”
Javapoet1. 简介1.1 什么是javapoetpote 即诗人,也就是写文字的人,而javapet也就是使用java来作诗的人。而在Java的世界里,“诗”就是java的源代码。因此,javppoet就是来帮助我们来生成Java源代码的工具。这一点在使用编译时注解来帮助我们自动生成一些类提供了很大的遍历。下面就让我们来看看这位诗人是如何来写出优美的“诗句”的。1.2 导入javapoet本
2016-08-30 23:08:23 2951
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人