回顾经典:生产者与消费者模式插图

回顾经典:生产者与消费者模式

2020年7月15日

等待/通知模式最经典的案例就是“生产者/消费者”模式。但此模式在使用上有几种“变形”,但原理上都是基于wati/notify的。

线程通信基础:wait和notify插图

线程通信基础:wait和notify

2020年7月13日

wait和notify方法是线程通信的基础,它们都只能在同步方法或同步块中使用。

volatile关键字与内存模型插图

volatile关键字与内存模型

2020年7月4日

对volatile关键字的理解,与java的内存模型的概念是分不开的。volatile保证了变量操作的可见性和有序性,但是有使用场景的限制。

设计模式之适配器模式插图

设计模式之适配器模式

2020年7月3日

所谓适配器,其实就是在不得不调用某个底层接口规范, 但出于某些需要又必须声明自己专属的接口规范的时候,可以声明一个对象实现自己的接口、同时又调用到该底层接口, 该对象即是适配器。

设计模式之责任链模式插图

设计模式之责任链模式

2020年7月2日

在责任链模式里,一个对象表示链的一个节点,由多个节点对象组成了一条有先后顺序的链对象。有些链对象内部会维护一个数组,来存储这些节点对象,有些则是在每个节点中声明下个节点的引用。

设计模式之装饰模式插图

设计模式之装饰模式

2020年7月1日

装饰模式(Decorator Pattern)是一种比较常见的模式,动态地给一个对象添加一些额外的职责。tomcat源码中RequestFacade就是对Request的装饰类。

设计模式之观察者模式插图

设计模式之观察者模式

2020年7月1日

观察者模式主要分为两个主体:观察者和通知者,在某些行为触发时,通知者将会通知观察者。观察者需要将自己的对象交给通知者,以便通知者能够调用观察者的方法,进行通知行为。

设计模式之模板方法模式插图

设计模式之模板方法模式

2020年7月1日

模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。

软引用对象的使用插图

软引用对象的使用

2020年6月30日

如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。这通常能够用在缓存删除的场景,让缓存对象实现软引用,那么在内存不够的时候,缓存对象就能被回收,释放内存。

强引用对象并非不会被回收插图

强引用对象并非不会被回收

2020年6月30日

java中的强引用对象并非永远不会被回收,只要该引用被显示的设置为null,或者超出了代码执行的作用域而又没有被外界所引用时,就是可以被回收的。

JVM简单总结插图

JVM简单总结

2020年6月30日

本文总结jvm内存区域、对象存活判断算法、垃圾收集算法等知识点,以及解释年轻代中需要两个幸存区的必要性。