自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 一文详解java泛型

java泛型详解文章目录java泛型详解一、介绍二、泛型方式1.泛型类2.泛型接口3.泛型方法三、泛型擦除1. 泛型数组2.边界五、常见问题1.基本数据类型不能作为类型参数2.重载问题3.自限定的泛型一、介绍​ 泛型实现了参数化参数化类型的概念,是代码可以应用于多种类型,设计的初衷应该是希望类或者方法能够具备最广泛的表达能力。在引入泛型之前,一般都是依赖于Object顶层对象实现类似泛型的功能,但是使用Object有一个缺陷是如果类型转换异常,编译器在编译期无法检测这种异常,只有在字节码的运行时期才会

2020-11-18 09:16:07 286

原创 Lombok的@SneakyThrows详解

Lombok的@SneakyThrows详解文章目录Lombok的@SneakyThrows详解一、简介二、原理一、简介​ 在java的异常体系中Exception异常有两个分支,一个是运行时异常RuntimeException,一个是编译时异常,在Exception下的所有非RuntimeException异常,比如IOException、SQLException等;所有的运行时异常不捕获,编译时异常是一定要捕获,否则编译会报错。@SneakyThrows就是利用了这一机制,将当前方法抛出的异常,包

2020-11-13 09:45:16 27628

原创 SpringBoot的jar包如何启动

SpringBoot的jar包如何启动文章目录SpringBoot的jar包如何启动一、简介二、jar包的内部结构三、加载过程1.使用到的一些类2.过程分析四、总结一、简介​ 使用过SprongBoot打过jar包的都应该知道,目标文件一般都会生成两个文件,一个是以.jar的包,一个是.jar.original文件。那么使用SpringBoot会打出两个包,而.jar.original的作用是什么呢?还有就是java -jar是如何将一个SpringBoot项目启动,之间都进行了那些的操作?​ 其实

2020-11-08 14:37:19 2664

原创 SpringMVC中的过滤器和拦截器

SpringMVC中的过滤器和拦截器文章目录SpringMVC中的过滤器和拦截器一、过滤器二、拦截器三、小结一、过滤器​ 过滤器Filter是通过实现java.servlet.filter接口实现过滤器功能,作用是用于对传入的request和响应的response进行一些处理,比如对请求参数进行校验,或者设置、检验头部信息,再或者对一些非法行为进行校验。由实现的接口可知,过滤器是依赖于servlet容器。所以由于过滤器不依赖于spring容器,它也就无法获取到容器中的对象。创建一个过滤器类继承j

2020-11-05 23:49:03 1195 1

原创 从myBatis Plugin看责任链模式

从myBatis Plugin看责任链模式文章目录从myBatis Plugin看责任链模式一、介绍二、mybatis的责任链三、过滤器相关责任链四、总结一、介绍​ 在mybatis中从sql的解析到最后结果集的返回,经过了一系列的内部组件,比如参数处理器parameterHandler,语句处理器StatementHandler,结果集处理器ResultSetHandler等。若开发者需要对SQL执行的某一环节进行一些特定的处理,比如参数类型的转换,数据分页功能,打印执行的SQL语句等都可以通过my

2020-11-01 16:49:03 231

原创 本地线程变量(四):FastThreadLocal

FastThreadLocal文章目录FastThreadLocal一、背景二、实例三、原理1.set值2.get值3.remove四、总结一、背景​ 因为需要,研究了可以通过InheritableThreadLocal进行父子线程中如何传递本地线程变量,通过阿里开源项目TransmitableThreadLocal进行进行线程池传递本地线程变量(详解可查看以往博客)。在查找资料的过程中无意发现了Dobbo的InternalThreadLocal,其实Dobbo的InternalThreadLocal

2020-10-28 11:05:00 428

原创 本地线程变量(三):TransimittableThreadLocal

TransmittableThreadLocal文章目录TransmittableThreadLocal一、背景二、简介三、基本使用四、原理一、背景​ 上文说到父子线程传递本地变量可以通过InheritableThreadlocoal进行传递,但是如果采用线程池,不一定能传递,因为在线程在线程池中的存在不是每次使用都会进行创建,InheritableThreadlocal是在线程初始化时intertableThreadLocals=true才会进行拷贝传递。所以若本次使用的子线程是已经被池化的线程,从

2020-10-26 11:14:09 616

原创 本地线程变量(二):InheritableThreadLocal

InheritableThreadLocal文章目录InheritableThreadLocal一、简介二、实例三、原理1. `InheritableThreadLocal`的实现2.线程的创建过程四、思考一、简介​ 在Thread中除了有属性threadLocals引用ThreadLocal.ThreadLocalMap类,其实还有一个属性,也就是inheritableThreadLocals,threadLocals的作用是保存本地线程变量,而inneritableThreadLocals的作用是

2020-10-25 19:54:33 322

原创 本地线程变量(一):ThreadLocal

ThreadLocal初探文章目录ThreadLocal初探一、ThreadLocal的实现原理二、源码1.set()2.get()三、继承性四、内存泄漏一、ThreadLocal的实现原理​ Thread有一个内部变量ThreadLocal.ThreadLocalMap,这个类是ThreadLocal的静态内部类,它的实现与HashMap类似,当线程第一次调用ThreadLocal的get/set方法时会初始化它。它的键是这个ThreadLocal对象本身,值是需要存储的变量。也就是说ThreadL

2020-10-25 18:49:09 555

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除