- 博客(12)
- 收藏
- 关注
原创 观察者模式实现
手写观察者模式/** * 抽象目标类, 抽象被观察者 */public abstract class Subect { List<AbsObserver> observers = new ArrayList<>(); public void add(AbsObserver absObserver){ observers.add(absObserver); } public void remove(AbsObserver a
2021-04-14 17:47:52 142
原创 android Handler 消息机制
在android中一个app的正常工作离不开多线程。UI的更新是运行在主线程的,其他的工作绝大多数会运行在子线程中,比如:网络请求,图片加载等一些耗时操作。在java中本身线程时没有主次之分的,为什么android中要有主线程和子线程之分呢(这里我还没有办法解释,留待后续研究吧) 。那么既然有这样的机制我们就需要去遵循它。那么当我们更新UI的时候势必需要将子线程的数据传递到主线程去,那么这里使用的就是android中的Handler线程间通信机制。public Handler(@Nullable Call
2021-03-30 15:48:05 127
原创 java 线程池饱和策略记录及AsyncTask线程池的饱和策略
Abort (默认) : 不执行新提交的任务,抛出异常RejectExcutionException ,由调用者捕获,由调用者来决定后续如何执行;CallerRuns : 不抛出异常,也不会在线程池内执行新提交的任务,会将新提交的任务回退到调用者,在调用者线程内执行新提交的任务;Discard : 会将新提交的任务抛弃掉DiscardOldest : 会将新的任务放入线程池内,并且将线程池内最早的任务抛弃掉。Android 中AsyncTask中使用的线程饱和策略: // Used on.
2021-03-29 12:17:33 171
原创 工厂模式
在写代码过程中,如果一个类需要重复多次被创建,我们就可以使用设计模式中的工厂模式来设计,这样代码逻辑清晰,扩展性也更强。下边就是简单实现了工厂模式加深一下理解 代码地址简单工厂模式public interface Fruits { //定义一个接口 void des();}public class Apple implements Fruits { @Override public void des() { System.out.println("这是苹果
2021-03-16 18:20:02 81
原创 java基础之静态代理和动态代理
在看一些源码过程中发现有很多都会用到代理。代理主要分为静态代理和动态代理。这里了解一下代理在java中的实现方式。静态代理静态代理的实现方式主要是:目标类和代理类都实现同一个接口,然后通过代理类来调用被代理类中的方法,并且可以在调用方法的时候对方法实现功能的增强。实现起来相对比较简单,看代码public interface SmsService { //接口定义 void send(String phone,String content);}public class AliSmsServ
2021-03-09 18:29:05 102
原创 了解 jvm+dalvik+art(2)
了解一下dalvik+artdalvik 是google开发的适用于android平台的java虚拟机。(存活时间到android5.0)1.支持.dex格式的java程序,.dex是专门为dalvik设计的一种压缩格式;2.每一个dalvik作为一个独立的linux进程执行;独立的进程可以防止虚拟机崩溃导致所有应用程序关闭。dalvik 虚拟机和java虚拟机的区别是 dalvik是基于寄存器架构,jvm是基于栈;寄存器是在cpu中的一块区域,速度比较快。堆栈位于cpu中的ram区域,速度仅
2021-02-23 18:23:14 153 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人