![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
Arkcy
这个作者很懒,什么都没留下…
展开
-
Java类加载顺序
Java类加载顺序1、ClassNotFoundExcetpion 我们在开发中,经常可以遇见java.lang.ClassNotFoundExcetpion这个异常,今天我就来总结一下这个问题。对于这个异常,它实质涉及到了java技术体系中的类加载。Java的类加载机制是技术体系中比较核心的部分,虽然它和我们直接打交道不多,但是对其背后的机理有一定理解有助于我们排查程序中出现的类加载失败等...原创 2019-12-22 17:11:19 · 194 阅读 · 0 评论 -
拦截器和过滤器
拦截器和过滤器区别拦截器是基于java的反射机制的,而过滤器是基于函数回调。拦截器不依赖与servlet容器,过滤器依赖与servlet容器。拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。拦截器可以获取...原创 2019-12-22 17:07:34 · 145 阅读 · 1 评论 -
微服务相关
SpringCloudSpringCloud 核心组件1.服务注册发现 - Netflix Eureka1.基础架构Eureka架构中的三个核心角色:服务注册中心Eureka的服务端应用,提供服务注册和发现功能,就是刚刚我们建立的eureka-demo服务提供者提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现,只要对外提供的是Rest风格服务即可。本...原创 2019-12-22 17:04:23 · 271 阅读 · 0 评论 -
Volatile关键字
Volatile关键字的作用以及原理 在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题,我确实不会拿到两个不同的单例了,但我会拿到“半个”单例。volatile常用于保持内存可见性和防止指令重排序。保持内存可见性内存可见性(Memory Visibility):所有线程都能看到共享内存的最新状态。失效数据以下是一个简单的可变整数类:public cl...原创 2019-12-22 17:03:23 · 93 阅读 · 0 评论 -
G1收集器
G1收集器一.定义开启选项:-XX:+UseG1GC G1垃圾收集器也是以关注延迟为目标、服务器端应用的垃圾收集器,被HotSpot团队寄予取代CMS的使命,也是一个非常具有调优潜力的垃圾收集器。虽然G1也有类似CMS的收集动作:初始标记、并发标记、重新标记、清除、转移回收,并且也以一个串行收集器做担保机制,但单纯地以类似前三种的过程描述显得并不是很妥当。事实上,G1收集与以上三组收集器...原创 2019-12-22 17:00:42 · 114 阅读 · 0 评论 -
SpringBoot配置多数据源
SpringBoot配置多数据源一.分包实现在application.properties中配置两个数据库:## test1 databasespring.datasource.test1.url=jdbc:mysql://localhost:3307/multipledatasource1?useUnicode=true&characterEncoding=UTF-8&...原创 2019-12-22 17:00:10 · 169 阅读 · 0 评论 -
HashMap,HashTable,ConcurrentHashMap
HashMap,HashTable,ConcurrentHashMap一.HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化初始size为11,扩容:newsize = olesize*2+1计算index的方法:index = (ha...原创 2019-12-22 16:59:45 · 108 阅读 · 0 评论 -
@Transactional注解
@Transactional注解一.事物传播行为介绍:@Transactional(propagation=Propagation.REQUIRED) :如果有事务, 那么加入事务, 没有的话新建一个(默认情况下) @Transactional(propagation=Propagation.NOT_SUPPORTED) :容器不为这个方法开启事务 @Transactional(pro...原创 2019-12-22 16:50:38 · 161 阅读 · 0 评论 -
G1收集器
G1收集器一.定义开启选项:-XX:+UseG1GC G1垃圾收集器也是以关注延迟为目标、服务器端应用的垃圾收集器,被HotSpot团队寄予取代CMS的使命,也是一个非常具有调优潜力的垃圾收集器。虽然G1也有类似CMS的收集动作:初始标记、并发标记、重新标记、清除、转移回收,并且也以一个串行收集器做担保机制,但单纯地以类似前三种的过程描述显得并不是很妥当。事实上,G1收集与以上三组收集器...原创 2019-12-21 14:09:26 · 121 阅读 · 0 评论 -
Monitor机制
Monitor机制monitor概要Java 语言实现 monitor 机制,属于编译器的工作。monitor机制需要3个元素配合使用,分别是:临界区monitor 对象及锁条件变量以及定义在 monitor 对象上的 wait,signal 操作使用monitor机制让互斥进入临界区,用monitor 对象来保存被阻塞的线程,由于 monitor 机制本质上是基于 mutex ...原创 2019-12-18 11:50:35 · 186 阅读 · 0 评论 -
对象相关
对象相关1.用静态工厂方法代替构造器优势:有名称。当一个类需要多个带有相同签名的构造器时,使用静态工厂代替,并且仔细选择名称。不必在每次调用的时候都创建一个新对象。有助于类总能严格控制在某个时刻那些实例应该存在。可以返回原返回类型的任何子类型的对象。灵活应用:api可以返回对象,同时又不会使对象的类变成公有的。所返回的对象的类随着每次调用而产生变化,取决于静态工厂方法的参数值。方法...原创 2019-12-18 11:47:57 · 93 阅读 · 0 评论 -
单例模式
单例模式定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0TSHtbll-1576640726128)(C:\Users\zsj55\AppData\Roaming\Typora\typora-user-images\1568448059405.png)]单例模式有以...原创 2019-12-18 11:46:51 · 68 阅读 · 0 评论 -
Mybatis缓存机制
Mybatis缓存机制一.一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL。因为使用SelSession第一次查询后,MyBatis会将其放在缓存中,以后再查询的时候,如果没有声明需要刷新,...原创 2019-12-18 11:45:16 · 57 阅读 · 0 评论 -
Executor框架
Executor框架一.Executor框架的结构1.Executor框架主要由3大部分组成:任务: 包括被执行的任务需要实现的接口:Runable 接口、Callable接口;任务的执行: 包括任务执行机制的核心接口Executor,以及继承自Executor的ExecutorService接口。Executor框架有两个关键类实现了ExecutorService接口:ThreadPo...原创 2019-12-18 11:44:45 · 66 阅读 · 0 评论 -
MybatisPlus
MybatisPlus1.BaseMappermp中所有的mapper都通过实现mp提供的basemapper接口,其默认提供了一系列的增删改查的基础方法,并且开发人员对于这些基础操作不需要写SQL进行处理操作2.wrapper首先在这里写下官方文档的链接位置,官方文档说的很详细。Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展示AbstractWrap...原创 2019-12-09 10:20:53 · 87 阅读 · 0 评论 -
Monitor机制
Monitor机制monitor概要Java 语言实现 monitor 机制,属于编译器的工作。monitor机制需要3个元素配合使用,分别是:临界区monitor 对象及锁条件变量以及定义在 monitor 对象上的 wait,signal 操作使用monitor机制让互斥进入临界区,用monitor 对象来保存被阻塞的线程,由于 monitor 机制本质上是基于 mutex ...原创 2019-12-09 10:05:27 · 545 阅读 · 0 评论 -
SpringBoot + Mybatis 使用 Redis 实现缓存
SpringBoot + Mybatis 使用 Redis 实现缓存一.项目目录结构二.关键代码1.RedisConfig@Configurationpublic class RedisConfig extends CachingConfigurerSupport { // 自定义缓存key生成策略 @Bean public KeyGenerator keyG...原创 2019-09-16 09:27:47 · 149 阅读 · 0 评论 -
Java基础5
Java基础五一.Map特点1.Map设计为一个接口2.Map针对的是键和值有一定的映射关系3.键应该是唯一的,无序的,类似于Set接口4.值应该是可重复,类似于Collection5.Map也应该具备集合应该有的方法6.值的顺序取决于键的顺序,map的数据结构完全取决于键的数据结构,与值无关1.HashMap特点:1.存储数据格式为key value2.集合里面数据是无序...原创 2019-09-21 17:10:44 · 113 阅读 · 1 评论 -
Java基础5
Java基础五一.Map特点1.Map设计为一个接口2.Map针对的是键和值有一定的映射关系3.键应该是唯一的,无序的,类似于Set接口4.值应该是可重复,类似于Collection5.Map也应该具备集合应该有的方法6.值的顺序取决于键的顺序,map的数据结构完全取决于键的数据结构,与值无关1.HashMap特点:1.存储数据格式为key value2.集合里面数据是无序...原创 2019-09-22 17:25:38 · 67 阅读 · 0 评论 -
代理模式
代理模式一.静态代理 首先, 定义接口和接口的实现类, 然后定义接口的代理对象, 将接口的实例注入到代理对象中, 然后通过代理对象去调用真正的实现类。 目标情况:代理类较少且确定 优点:可以做到在符合开闭原则的情况下对目标对象进行功能扩展。 缺点:我们得为每一个服务都得创建代理类,工作量太大,不易管理。同时接口一旦发生改变,代理类也得相 应修改。 创建步骤 1.创建服务...原创 2019-09-23 21:51:12 · 84 阅读 · 0 评论 -
Java基础5
Java基础五一.Map特点1.Map设计为一个接口2.Map针对的是键和值有一定的映射关系3.键应该是唯一的,无序的,类似于Set接口4.值应该是可重复,类似于Collection5.Map也应该具备集合应该有的方法6.值的顺序取决于键的顺序,map的数据结构完全取决于键的数据结构,与值无关1.HashMap特点:1.存储数据格式为key value2.集合里面数据是无序...原创 2019-09-23 21:51:44 · 66 阅读 · 0 评论 -
Java基础一
Java基础一1.规范简介 1.包名 小写 2.类名 各单词首字母大写 3.变量与方法名小写开头。2.类 1.类是一个模板,描述一系列对象的行为和状态。Class 2.行为用方法表示 返回类型 方法名(参数类型 参数){} 例 void a(int b)(){} 3.对象是一个类的具体的实例。3.数据类型 1.实例变量(成员变量) 类的里面...原创 2019-07-06 09:39:54 · 70 阅读 · 0 评论