240 发简信
IP属地:北京
  • 工厂模式

    SimpleFactory 说到工厂,我们应该能想到,造汽车的有汽车工厂,造轮船的有轮船工厂,映射到Java中,造对象的就应该有对象工厂,比如说我想要买一辆车,那我只需要去汽...

  • 显示锁Lock

    Lock简单介绍 释放锁的代码应当放在finally关键字中,以保证代码出现异常后,锁能够及时的释放掉。 syn和lock的比较 syn称之为内置锁,因为它是一个关键字,在j...

  • 代理模式

    现实生活中,存在着各种代理,比如海外代购,律师,游戏代练等等,映射到Java中,也存在着代理,汇总实际场景中的使用,将代理分为了静态代理和动态代理两种模式。 StaticPr...

  • 策略模式

    策略模式一般用法就是一个接口有多个实现类,每个实现类都是对接口的不同实现,均代表了接口的不同实现形式,比如说,一个计算的接口,你不必在接口中定义加减乘除的抽象方法,仅需要一个...

  • HashMap

    JDK7中的HashMap HashMap可以看成是一个数组,每个数组元素是一个单向链表。 其中,每个链表的节点可以看成一个Entry实例,Entry由两部分(或者4个属性)...

  • 模板方法模式

    什么是模板方法?即让工作或流程顺序按照写好的模板进行下去,同时还可以自定义流程,以及简化流程。 举例:冲泡茶和咖啡均分四步进行: 把水煮沸 冲泡咖啡(茶) 把咖啡(茶)倒入杯...

  • CountDownLatch和CyclicBarrier

    CyclicBarrier的官方解释: A synchronization aid that allows a set of threads to all wait for ...

  • CyclicBarrier

    CyclicBarrier,回环栅栏,是并发包下的一个并发工具类。 场景举例:奥运会百米赛场,等每个运动员准备就位后,再开始准备比赛。 运动员类 测试类 测试结果: Cycl...

  • 120
    CAS

    CAS的原理 CAS(compare and swap),即:比较然后交换,运行顺序如图: 三个运算符:一个内存地址V,一个期望值A,一个新值B。 基本思路:如果地址V上的值...

  • CountDownLatch

    业务场景一 业务场景描述:假设一条流水线上有三个工作者:worker1,worker2,worker3。有一个任务的完成需要他们三者协作完成,worker3可以开始这个任务的...

  • 线程的中断

    任务和线程的启动很容易。在大多数时候,我们都会让它们运行直到结束,或者让它们自行停止。然而,有时候我们希望提前结束任务或线程,或许是因为用户取消了操作,或者应用程序需要被快速...

  • 建造者(Builder)模式

    建造者模式适用于对象属性太多的情况 有一个属性非常多的类:Person Person类的属性非常多,我们在创建不同属性的Person的时候,需要写很多的构造方法来应对不同的场...

  • 垃圾回收器搭配和调优

    由于Java11中ZGC的出现,尽量不要对GC调优的研究下太多功夫,对未来来说,这是贬值的。 新生代的垃圾回收器 收集器算法收集器类型说明适用场景Serial复制算法单线程进...

  • JVM的逃逸分析

    对象一定分配在堆中吗? JVM通过逃逸分析,那些逃不出方法的对象会在栈上分配。 什么是逃逸分析? EscapeAnalysis,逃逸分析,指的是虚拟机在运行期通过计算分析将原...

  • SQL优化之show profiles

    注意:使用数据库可视化工具Navicat查询出来的参数竟然跟直接xshell查出来的参数不一样,Navicat的版本是11.2.7-premium,所以修改参数还是在命令行修...

  • 简单理解垃圾回收

    什么是垃圾回收? 垃圾回收的是什么? 如何判断为垃圾? 垃圾是怎样被回收的? 垃圾回收哪些区域的内存? 什么是垃圾回收 垃圾回收就是将被虚拟机视为垃圾的对象所占的内存释放掉。...

  • JVM运行时数据区

    JVM运行时数据区 线程共享 JAVA堆 首先如果不指定堆的大小,取决于电脑内存,可使用jmap -heap pid来确认。默认大小为内存的四分之一。 -Xms堆的初始大小,...

  • 类加载机制和双亲委派模型

    什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构。 ...

  • SQL优化之索引失效

    尽量全值匹配 建表语句: 其中有三个字段是联合索引,在查询的时候尽量把where条件跟索引全量匹配,例如: 执行计划: 如果条件不允许使用索引列的全局匹配,那么最好使用覆盖索...

个人介绍
但行好事,莫问前程