12 2021 档案

摘要:桥接模式 jvm跨平台,AWT证Peer,JDBC驱动连接不同数据库都用到了桥接模式 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 品牌接口 //品牌 public inte 阅读全文
posted @ 2021-12-14 13:49 jpy 阅读(11) 评论(0) 推荐(0) 编辑
摘要:适配器模式 java中场景:IO流,InputStream适配成Reader 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作! 角色分析 目标接口:客户所期待的接口,目标可以是具体的或抽象的类。也可以是接口 需要适配的类:需要适 阅读全文
posted @ 2021-12-14 11:13 jpy 阅读(8) 评论(0) 推荐(0) 编辑
摘要:阻塞队列 四组API 方式 抛出异常 有返回值 阻塞 等待 超时等待 添加 add offer put offer(元素,等待时间,等待时间单位) 移除 remove poll take poll(元素,等待时间,等待时间单位) 过去队列首 element peek public class Tes 阅读全文
posted @ 2021-12-13 17:27 jpy 阅读(1) 评论(0) 推荐(0) 编辑
摘要:线程池 池化技术 程序的运行,本质:占用系统的资源,优化资源的使用 线程池,连接池,内存池,对象池,常量池 线程池好处: 降低资源消耗 提高响应速度 方便管理 线程复用,可以控制最大并发数,管理线程 线程池:三大方法 在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自 阅读全文
posted @ 2021-12-13 17:25 jpy 阅读(4) 评论(0) 推荐(0) 编辑
摘要:原型模式 克隆,Cloneable,clone() 浅克隆 原型类 /* * 原型类 * 1.实现Cloneable * 2.重写clone方法 * */ public class Video implements Cloneable{ private String name; private Da 阅读全文
posted @ 2021-12-13 15:40 jpy 阅读(4) 评论(0) 推荐(0) 编辑
摘要:建造者模式 MyBatis在SqlSessionFactory这一层使用了Builder模式 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象 用户只需要给出指定复杂对象的类型和内容,建造者模式负责 阅读全文
posted @ 2021-12-13 15:38 jpy 阅读(8) 评论(0) 推荐(0) 编辑
摘要:抽象工厂 用来创建工厂的工厂,超级工厂 抽象工厂接口 public interface ProductFactory { PhoneProduct phoneProduct(); RouterProduct routerProduct(); } 具体工厂类 //小米工厂 public class X 阅读全文
posted @ 2021-12-13 15:35 jpy 阅读(2) 评论(0) 推荐(0) 编辑
摘要:工厂模式 简单工厂(静态工厂) 虽然某种程度上不符合设计原则,但实际使用最多 Car public interface Car { void name(); } Wuling public class Wuling implements Car{ @Override public void name 阅读全文
posted @ 2021-12-13 15:34 jpy 阅读(4) 评论(0) 推荐(0) 编辑
摘要:概述 OOP七大原则 开闭原则: 对拓展开放,对修改关闭 里氏替换原则: 继承必须保证超类所拥有的性质在子类中仍然成立 依赖倒置原则: 要面向接口编程,不要面向现实 单一职责原则: 控制类的粒度大小,将对象解耦,提高内聚 接口隔离原则: 要用各个类建立他们需要的专用接口 迪米特法则: 只与直接朋友交 阅读全文
posted @ 2021-12-13 15:33 jpy 阅读(4) 评论(0) 推荐(0) 编辑
摘要:各种锁 1、公平锁,非公平锁 公平锁:非常公平,不能插队 非公平锁:非常不公平,可以插队(默认都是非公平) //非公平锁 ReentrantLock reentrantLock = new ReentrantLock(); public ReentrantLock(boolean fair) { s 阅读全文
posted @ 2021-12-08 13:06 jpy 阅读(2) 评论(0) 推荐(0) 编辑
摘要:深入理解CAS 什么是CAS public class Demo01 { //CAS compareAndSet:比较并交换 public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicIntege 阅读全文
posted @ 2021-12-08 13:04 jpy 阅读(6) 评论(0) 推荐(0) 编辑
摘要:单例模式 饿汉式 /* * 饿汉式单例 * 如果这个实例从未被使用,会造成内存浪费 * */ public class HungryMan { private final static HungryMan hungryMan = new HungryMan(); private HungryMan( 阅读全文
posted @ 2021-12-08 11:51 jpy 阅读(3) 评论(0) 推荐(0) 编辑
摘要:JMM 对Volattile的理解 Volatile是java虚拟机提供的轻量级的同步机制 保证可见性 不保证原子性 禁止指令重排 可见性怎么保证,JMM JMM java内存模型,不存在的东西,概念 关于JMm的一些同步的约定 线程解锁前,必须把共享变量立刻刷回到主存 线程加锁前,必须读取主存中的 阅读全文
posted @ 2021-12-08 11:44 jpy 阅读(20) 评论(0) 推荐(0) 编辑
摘要:Future异步回调 Future设计的初衷,对将来的某个时间的结果进行建模 /* 异步调用 CompletableFuture 异步执行,成功回调,失败回调 *输出结果: 111111111 ForkJoinPool.commonPool-worker-1runAsync void * */ pu 阅读全文
posted @ 2021-12-08 11:39 jpy 阅读(38) 评论(0) 推荐(0) 编辑
摘要:ForkJoin ForkJoin在jdk1.7,并行执行任务!提高效率,大数据量! 大数据:Map Reduce(把大任务拆分成小任务) ForkJoin特点:工作窃取(如下图) ForkJoin操作 如何使用。累加求和 forkJoinPool来执行 计算任务forkJoinPool.execu 阅读全文
posted @ 2021-12-08 11:33 jpy 阅读(2) 评论(0) 推荐(0) 编辑
摘要:Stream流 /* 题目要求:筛选出 1.Id必须是偶数 2.年龄>23 3.用户名转大写 4.用户名字母倒序 5.只输入一个用户 * * * */ public class Test { public static void main(String[] args) { User u1 = new 阅读全文
posted @ 2021-12-08 11:30 jpy 阅读(5) 评论(0) 推荐(0) 编辑
摘要:四大函数式接口 新时代程序员:lambda表达式,链式编程,函数式接口,stream流式计算 函数式接口:只有一个抽象方法的接口,而@FunctionalInterface注解不是必须的 Function Function 函数型接口,一个入参,一个出参 /* * Function 函数型接口,一个 阅读全文
posted @ 2021-12-08 11:29 jpy 阅读(51) 评论(0) 推荐(0) 编辑
摘要:ReadWriterLock 读锁,共享锁, 写锁,独占锁,排他锁 public class Test { public static void main(String[] args) { MyCache myCache = new MyCache(); for (int i = 1; i <= 5 阅读全文
posted @ 2021-12-02 15:06 jpy 阅读(8) 评论(0) 推荐(0) 编辑