- 博客(17)
- 资源 (2)
- 收藏
- 关注
原创 一步一步详细解析代理模式
文章目录一、静态代理二、动态代理1.JDK动态代理1.1 代码1.1 原理2.CGLib动态代理一、静态代理设置一个场景,小明想买台宝马,但是他对车一无所知,所以他拜托了自己的好朋友小李帮忙,那么代码如下他们都是人/** * 人类需求 */public interface People { void need();}小明/** * 对车一无所知的小明 */public class Xiaoming implements People { public v
2020-10-14 23:51:02 402
原创 一步一步剖析单例模式
文章目录一、单例模式的满足条件?二、饿汉式单例1.代码2.优缺点三、懒汉式单例1.代码2.优缺点3.改进4.双重检测型单例5.内部类型单例四、破坏单例1. 反射2.序列化破坏3.readResolve方法原理(多图预警)五、注册式单例1. 枚举式单例2. 容器式单例六、ThreadLocal单例一、单例模式的满足条件?1.必须一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点2.单例模式属于创建型模式二、饿汉式单例1.代码代码如下(示例):/** * @author zhuwenhu
2020-10-13 00:13:46 389
原创 springboot练习之springboot+redis集群+session解决session一致性问题
分为以下几步1 配置信息2 添加注解3启动项目配置信息1)添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>...
2018-06-15 22:57:07 3013
原创 springboot微信公众号的接入
整个过程分为以下几步:1 内网穿透2 接收参数3 参数排序4 sha1加密5 返回随机数1 接入微信公众号原理就是我们自己的程序与微信公众号服务器数据交互,所以需要一个软件将我们内网映射到外网。推荐ngrok。 打开命令行模式,运行ngrok -config ngrok.cfg -subdomain example(我的域名) 8080。2 接收参数,如图3 上图 validParams()方...
2018-06-14 18:06:20 3575
原创 让我们来debug看AQS源码
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录文章目录一、AQS是什么?二、画出调用顺序图1.debug开始,如图总结一、AQS是什么?AQS是cas的实现,是一种在用户态下操作的锁,没有到内核态的切换,所以效率比较高。使用它的有ReentrantLock,CountdownLatch(火箭倒计时),CyclicBarrier(攒齐七颗龙珠许愿,可循环的),Phaser(分阶段的CyclicBarrier),Semaphore(可以同时运行..
2020-12-10 00:58:07 354 2
原创 十一月月底总结及十二月展望
月底总结:这个月从双十一一直加班到现在十一月三十日,全组项目人员007的那种,所以这个月啥也没写,很多是业务上的提升和前端熟练度的提升,从刚开始就会Vue都用不会到现在组件,路由,拦截器门清,也算是一个提高吧,后端的话能感觉到的提升没有,毕竟就是那些东西,运维就学了个5分钟搭建k8s。大概就这吧,希望十二月份不要忙。学习目标:十二月份准备搞个 网约车项目初步是整合且复习一下自己的知识体系,大概的技术有,springCloud组件,消息中间件,数据库分库分表,nginx,流量分发,k8...
2020-11-30 22:48:15 431 1
原创 状态模式
文章目录一、状态模式一、状态模式示例代码如下/** * @Description: 抽象状态类 */public abstract class AbstractState { abstract void Handle(Context context);}/** * @Description: 环境类 */public class Context { private AbstractState state; public Context() {
2020-10-24 19:39:25 180
原创 策略模式和责任链模式
文章目录一、策略模式2.责任链模式一、策略模式策略模式,就是为了解决像有很多if else这样的代码代码如下(示例):/** * 公共策略 */public interface IStratery { void operator();}public class StrateryA implements IStratery{ public void operator() { System.out.println("派张飞从左翼杀出"); }}
2020-10-21 22:53:32 1488
原创 委派模式和模板方式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、委托模式1.概念二、模板方式1.概念总结提示:以下是本篇文章正文内容,下面案例可供参考一、委托模式1.概念其实就是自己不干活,指派人干活/** * 抽象员工 */public interface Employee { void operator(String task);}/** * 员工A */public class EmployeeA implements Employee {
2020-10-20 22:06:06 296
原创 适配器模式和桥接模式
文章目录一、适配器模式二、桥接模式一、适配器模式概念:又叫变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起工作,是属于结构模式中的一种。场景:比方说在业务场景中,我们有一个需求是要对接第三方登录,例如qq,微信和手机登录,那么该如何适配呢,看下方代码/** * 登录接口 */public interface ILogin { /** * 是否支持该方法 */ boolean s
2020-10-18 19:28:41 509
原创 享元模式和组合模式
文章目录一、享元模式二、使用步骤1.示例2.组合模式一、享元模式类似于线程池这一类,将使用的类缓存起来的方式就叫做享元模式。二、使用步骤1.示例比方说我想实现买车,不同的车类型显示不同的价格代码如下(示例):抽象一个车类public interface ICar { void showMessage(String type);}车类public class Car implements ICar{ private String name; private
2020-10-17 22:12:50 186
原创 门面模式和装饰器模式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、门面模式二、装饰器模式1.引入场景2.解决问题总结一、门面模式门面模式其实我们一直都在用,可以说是一种强调封装的静态代理,举个例子就是你的controller,utils类,他封装了很多方法,你只需要调用这个方法即可,咱们重点说一下装饰器模式二、装饰器模式1.引入场景我想买一辆裸车,然后再加一个真皮座椅,再染一下色先来一辆车public class Car { public String getMsg(
2020-10-16 00:34:35 722
原创 原型模式和建造者模式
文章目录一、原型模式1.浅克隆2.深克隆二、建造者模式、一、原型模式原型模式其实咱们一直在使用,比方说,咱们从前端接收的参数实体类A1,与咱们插入数据库的实体类A2字段类型名称基本一模一样,我们就可以把A1的值全部给赋值A2,但是A2.setXXX(A1.getXXX())不够优雅,例如使用了BeanUtils.copyProperties()这个方法,就是属于原型模式实现的一种。1.浅克隆代码如下(示例):/** * * 浅克隆 */public class ConcreteProt
2020-10-13 23:40:32 217
原创 并发编程知识点整理
一.进程,线程,协程进程是操作系统分配资源的最小单位;线程是程序执行得最小单位;协程是更轻量级,资源占用更小的线程;比方说100万个线程占大概1T,100万个协程占1G。线程该如何创建呢new Thread(()->{}); thread.start() 实现Runnable; 实现Callable,带有返回值,使用的时候submit; 线程池。thread.start的运行过程是这样的线程的状态如图那么既然是多线程,就会存在安全问题,那么该如何保证线...
2020-07-02 16:22:24 229
原创 JVM知识点整理复习
此次JVM知识点包含以下几个部分1.类加载机制2.jvm运行时数据区3.java对象内存布局4.jvm内存模型5.垃圾回收机制6.垃圾收集器一 类加载机制类加载流程如下
2020-06-19 15:49:37 265
原创 SpringBoot项目实战之异步调用@Async
需求:公司项目需要在用户填写基本信息时,例如姓名和车牌号时,需要将他以前的数据读取过来一起插入。思路:由于是更改以前代码(没有查询以前数据的步骤),所以开启线程,等主线程插入完毕之后,再查询更新。 思路很简单,关键是线程的使用 使用阿里的插件扫描后,会出现提示,虽然无伤大雅,但是感觉手动创建线程池有些麻烦,并且自己有强迫症,所有选择了第三种方式,使用@Async。 注意,使@A...
2018-06-11 00:28:25 965
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人