- 博客(17)
- 收藏
- 关注
原创 重复创建变量的回收复用
Message的设计给我们提供了一个重复变量的创建思路,对于这一类的对象,当我们需要在某个循环或者某个场景下大量创建回收时,可以采用Message的方案,避免内存抖动的发生。Message这个对象,它本身包含了一个Message next的变量,说明Message本身其实就是一个链表的形式。同时移动sPool(表的头指针),然后将取出的message对象next指向空,对象池容量减一。数组类型的回收,需要考虑的一个size如何对应多个数组,即创建了下面两个数组,如何去回收,应该设计什么样的结构。
2022-08-25 15:16:47
304
原创 关于voliate关键字
以上代码的系统输出内容现在,对我们的变量加入voliate关键字后输出对比从上面的对比我们不难看出,没有加入voliate的时候,我们的程序一直没有退出,因为线程1一直处于死循环。也就是说,线程2改变的is值没能成功传递到线程1要说明这个问题,得从jvm的工作内存和主内存说起下面是copy的一段内容JVM将内存组织为主内存和工作内存两个部分。主内存是所有的线程所共享的,主要包括本地方法区和堆。每个线程都有一个工作内存不是共享的,工作内存中主要包括两个部分:1.所有的变量都存储在主内存中(虚拟机
2022-07-06 15:22:33
795
原创 运行时注解findViewById和setOnClickListener
简单实现一下用注解去代替findViewById()这里是解析注解和反射注入的工具类尝试对activity或者view解析2. 解析注入变量具体使用如下3.设置setOnClickListener的注解下面是使用4.其实retrofit也是这样做的,不过它不需要区分什么运行时注解和编译时注解,它是直接通过动态代理去创建一个我们传入的class,然后利用java写好的方法反射执行,当然,它做了很多处理了。......
2022-06-24 16:35:45
672
原创 OkHttp的初步了解---责任链和同步异步调用
1.RetryAndFollowUpInterceptor//除自定义外,第一个拦截器 RetryAndFollowUpInterceptor2.BridgeInterceptor封装http请求的拦截器3.CacheInterceptor负责读取缓存直接返回、更新缓存4.ConnectInterceptor负责和服务器建立连接5.CallServerInterceptor添加 负责向服务器发送请求数据、从服务器读取响应数据.........
2022-06-15 14:20:17
216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人