摘要: synchronized:互斥锁,本质是通过锁定共享资源,达到线程安全的手段 根据使用方式,分为类锁和对象锁 修饰在静态方法,或者参数为class类的时候,都是以当前类作为共享资源进行锁定,为类锁,粒度最大。 修饰在实例方法,或者参数为指定对象实例的时候,已指定实例为共享资源进行锁定,为对象锁 锁的 阅读全文
posted @ 2021-05-04 17:53 好好的一个居士 阅读(675) 评论(0) 推荐(0)
摘要: 线程的基本概念: 线程可以理解成一个轻量的进程,是cup的最小执行单元,所以线程的创建,是操作系统os实现的,java虚拟机只是调用,这一点和数据库的事务一样。 并发和并行 并发,就是日常提到的高并发,指Server可以同时接收多个请求 并行,一个单核cpu也是可以通过资源切换达到并发,但是始终只有 阅读全文
posted @ 2021-05-04 14:43 好好的一个居士 阅读(72) 评论(0) 推荐(0)
摘要: 事务的概念:事务可以理解为操作DB的一个执行单元,最小粒度。 老生常谈的ACID A(Automicty) 原子性,事务的操作一定是不可再被分隔的单位,执行结果,要么成功,要么失败 C(Consistency) 一致性,事务一定是使得数据库从一个一致性状态变为另一个一致性状态,通俗的说,就是数据一致 阅读全文
posted @ 2021-05-03 16:10 好好的一个居士 阅读(184) 评论(0) 推荐(0)
摘要: 思考中.... 阅读全文
posted @ 2021-05-03 14:37 好好的一个居士 阅读(41) 评论(0) 推荐(0)
摘要: 很久之前面试的时候,遇到这样一个问题,从一个库表中读取海量数据的方案是什么,记不得当时怎么回答的了,但是应该不是很好的答案。 简单记录下方案: 第一点:做分库分表分区 第二点:读写分离也是一定的 第三点:冷热备份,历史数据备份走,甚至直接清空(特殊情况支持,例如车辆心跳状态,这种更新很快的数据,历史 阅读全文
posted @ 2021-05-03 14:30 好好的一个居士 阅读(151) 评论(0) 推荐(0)
摘要: 学习springAop的源码,在看源码之前,思考了几个问题 首先明确几个概念: springAop,切面编程,对于方法做增强,主要有下面几个概念 切面(Aspect) 由切入点和通知组成,是指对象被横切出来的地方,可做功能增强,是一个比较抽象的概念 通知(Advice) 就是只织入的代码逻辑,一个切 阅读全文
posted @ 2021-05-02 16:03 好好的一个居士 阅读(80) 评论(0) 推荐(0)
摘要: 享元模式:定义:实例对象的一种缓存思想,程序运行中一些经常用到,内部态不会改变的实例,放入一个缓存池中,重复使用,避免了同样功能的对象,被重复创建,节省资源。不仅是内存资源,连接资源也同样节约例如String的常量池,数据库的连接池,Integer,Long内部使用的都是这种方式。与注册式的单例区别 阅读全文
posted @ 2021-05-02 13:35 好好的一个居士 阅读(164) 评论(0) 推荐(0)
摘要: 写法:1, 定义一个抽象的类 抽象类里面定义抽象方法2, 定义装饰器 装饰器继承抽象类,引入抽象类属性,构造方法注入,重写抽象类方法,方法执行调用注入的实例重写的方法,装饰器作为一个抽象类存在3, 定义基础模型,与装饰器没有关系,但是继承了最上层的抽象类,写自身业务逻辑4, 定义需要装饰的类,继承装 阅读全文
posted @ 2021-05-02 13:32 好好的一个居士 阅读(69) 评论(0) 推荐(0)
摘要: 1,MVC每一层都是一种门面模式,可以理解成静态代理模式,不过其重点在于功能的封装,静态代理的重点在于功能的前置后置增强。2,门面模式符合迪米特法则,不符合开闭原则,功能过多时也违背了接口单一职责原则。3,门面模式在作为工具包使用的时候,建议设计成单例模式,因为工具包全局只需要一个实例足够了,节省内 阅读全文
posted @ 2021-04-17 13:58 好好的一个居士 阅读(58) 评论(0) 推荐(0)
摘要: 作用:控制对对象的访问,保护对象,增强对象功能动态代理与静态代理简单理解:静态代理是硬编码,动态代理不是JDK动态代理写法及原理分析:写法:1,需要代理的类 要实现一个定义接口,类功能通过接口定义2,代理逻辑handler类,需要实现jdk动态代理接口InvocationHandler,作为代理ha 阅读全文
posted @ 2021-04-17 13:57 好好的一个居士 阅读(49) 评论(0) 推荐(0)