上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 24 下一页
摘要: 说到Handler,绝大多数人都知道,它就是一个死循环,不断的遍历消息队列,通过handler将消息入队,循环中有消息就取出来消费掉,以实现线程间的通信。 说个题外话,记得有一次面试,面试官问我线程间怎么通信?我当时就很疑惑,线程间本来就是资源共享的,谈何怎么通信,调用线程的方法或者改变线程的变量值 阅读全文
posted @ 2021-11-13 18:19 aruba_233 阅读(53) 评论(0) 推荐(0)
摘要: AOP为面向切面编程,听着很高大上,实际上就是为了将业务分离,比如我们在网络请求时,需要生成一个签名放入请求头Header,以往的做法是封装一个方法获取签名,AOP只是实现方式不同,将封装方法改为注解形式 AOP概念,将注解的方法、对象等看成是一个点,由这些被注解的点构成一个面,然后对这个面做具体的 阅读全文
posted @ 2021-11-01 16:24 aruba_233 阅读(52) 评论(0) 推荐(0)
摘要: IOC全称Inverse Of Control,中文释义为控制反转,常见的方式叫作依赖注入(Dependency Injection),IOC核心的思想和代理模式一样,使用者不必关心资源的具体获取,资源通过第三方来管理 之前有提到过注解是设计框架时常用的工具,利用注解可以在编译期(通过APT)或运行 阅读全文
posted @ 2021-10-28 09:58 aruba_233 阅读(15) 评论(0) 推荐(0)
摘要: 代理模式是很常见的一种设计模式,如AppCompatActivity兼容方案,Java中代理模式分为静态代理和动态代理,动态代理是JVM帮助我们实现的 一、代理模式 1.代理模式场景 有一名员工A,他出于某些原因需要公司签字,老板和秘书都可以执行公司签字的职能,但是秘书没有直接签字的权力,真正签字的 阅读全文
posted @ 2021-10-26 17:06 aruba_233 阅读(21) 评论(0) 推荐(0)
摘要: Java中提供了一系列和锁相关的工具:synchronized、ReentrantLock、AtomicXXX类,它们都能帮助解决我们进行多线程操作时并发问题,之前我们也提到了内核线程模型,Hotspot虚拟机线程的创建都是通过内核线程提供的轻量级进程API创建的,反复的创建线程会不断的由OS线程调 阅读全文
posted @ 2021-10-15 15:38 aruba_233 阅读(17) 评论(0) 推荐(0)
摘要: 上次通过三个例子,了解了Java并发三个特性,也分析了volatile不能解决原子性问题的原因,要解决原子性问题,就需要用到锁 一、轻量级锁与重量级锁 1.锁的概念 锁:一个线程对共享对象进行加锁,别的线程访问该对象时会处于等待状态,直到锁被释放,才能继续执行 补充:volatile底层也是通过lo 阅读全文
posted @ 2021-10-13 22:29 aruba_233 阅读(46) 评论(0) 推荐(0)
摘要: 上次说到Java线程并不会直接操作共享内存,而是操作共享内存的副本,这种方式称作JMM模型,描述的是Java多线程和内存之间的通信。我们上次使用了HotSpot虚拟机的内存模型进行理解,但JMM模型并不是JVM的内存模型,两者都是一种规范,各个虚拟机都有不同的实现方式,JMM模型模仿的是CPU缓存模 阅读全文
posted @ 2021-10-12 16:01 aruba_233 阅读(37) 评论(0) 推荐(0)
摘要: 线程是什么?在计算机设计初期,并没有线程的概念,只有进程,linux系统下没有真正意义的线程,只有进程,c语言中的fork函数可以开辟一个新的进程,新的进程将对父进程进行内存拷贝,相当于复制全新的一个父进程,全新的内存,进程间内存的独立使得进程间通信较为繁琐 由于进程间内存不共享,而我们做多进程操作 阅读全文
posted @ 2021-10-10 13:15 aruba_233 阅读(12) 评论(0) 推荐(0)
摘要: 注解是设计框架时常用的工具,使用注解简洁明了,很多第三方框架都使用了它,如:Retrofit、EventBus等。注解的原理是编译期改变字节码,以配合APT来达到自动生成代码的目的 一、元注解 1.使用注解需要用到元注解,来指定注解的信息,一共有5个,主要使用的是下面两个: @Target:指定注解 阅读全文
posted @ 2021-10-08 22:42 aruba_233 阅读(27) 评论(0) 推荐(0)
摘要: JDK5提出了新特性:泛型。它允许我们在不知道变量类型的情况下,传入类型参数,在设计框架时,我们会大量的使用泛型,因为泛型的特性:动态,上下边界,编译检查等,特别适合架构设计 一、泛型上手 1.类属性使用泛型 定义泛型可以使用除关键字外的任意名字(遵循变量名的规则),使用"<泛型名>"来表示你需要使 阅读全文
posted @ 2021-10-05 20:14 aruba_233 阅读(24) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 24 下一页