JAVA
文章平均质量分 90
JAVA学习笔记专栏
夜间沐水人
你以为世界很小,而你只是在原地转圈圈!
展开
-
ReentrantLock源码浅析
1、ReentrantLock可以实现公平锁和非公平锁以及可重入锁的机制,基于AQS和CAS进行加锁处理, 提供了lock和unlock两个api方法进行加锁和释放锁处理。2、以非公平锁为例,lock方法一进去就竞争锁,通过CAS的方式将state变量从0设置为1,如果设置成功,表明竞争锁成功,就将线程变量设置为当前线程,如果失败,就开始排队。3、再次尝试获取锁(tryAcquire),如果继续失败,那么就放弃竞争锁,将自己状态设置为interrupted的。并且开始排队。原创 2023-11-18 15:14:30 · 133 阅读 · 0 评论 -
JAVA中的泛型
泛型是JAVA中的一个重要的概念,它允许你在编译时指定数据类型,从而使得代码更加灵活,更加通用。通过泛型,你可以在通用代码上操作不同数据类型,使得代码更加具有通用性。原创 2023-10-01 11:38:13 · 152 阅读 · 0 评论 -
SpringSecurity6--认证和授权的原理
Spring Security是一个基于Spring框架的安全解决方案,提供了认证和授权等安全方面的大服务,包括身份认证和权限处理两大服务。Spring Security的实现依赖于大量的过滤器,采用责任链模式对请求请求不同的过滤处理。在日常使用中,Spring Security已经实现了基于表单的登录认证和授权模式,只需简单的配置,即可做到拿来即用。当然Spring Security也提供了灵活的其他认证入口,通过实现其暴漏出来的接口即可自定义自己的登录认证和授权方法。原创 2023-07-24 23:05:08 · 396 阅读 · 0 评论 -
Java 8 Lambda 表达式 & Stream
1、lambda表达式可以简化匿名内部类的写法,让编码更加便捷。2、Stream流提供了一系列对容器或者集合API操作,提供了一系列的开箱即用的聚合操作函数。原创 2023-02-10 16:33:14 · 620 阅读 · 0 评论 -
算法系列之入门
算法是结局问题整理的一系列的步骤。本文将整理一些常见的算法,如冒泡排序算法、桶排序算法、插入排序算法等一些比较基础且常见的算法,包括对算法的概念整理以及编码,完整代码在码云上开源,欢迎访问。欢迎大家在阅读指正。原创 2021-12-31 17:15:14 · 409 阅读 · 0 评论 -
zookeeper入门学习
本文主要简单的介绍了zookeeper的相关操作,比如zookeeper基本操作,分布式锁实现,leader选举机制。原创 2021-12-05 21:09:07 · 1002 阅读 · 0 评论 -
JAVA23种设计模式学习,源码+案例分析+类图讲解
本文对JAVA中23种设计模式进行了简单的讲解,幷加以实际案例进行辅助理解,每种模式都会举例说明,幷将源码开源至gitee和githbu上。JAVA目录下为源码,resources目录下的UML文件夹中存放的是每种设计模式对应的UML源文件,本人使用Umbrello linux版。有错误的地方,欢迎大家指正。原创 2021-11-20 21:18:39 · 2686 阅读 · 0 评论 -
ConCurrentHashMap源码分析
本文主要从个人角度着重讲解了ConcurrentHashMap的部分代码。从源码的角度出发,大胆猜测并解释作者的意图。从而学习作者的在代码实现上的优秀思想。文章目录一、关键属性二、关键方法1.ConcurrentHashMap(int initialCapacity)2. putVal(K key, V value, boolean onlyIfAbsent)3. initTable()4. putTreeVal(hash, key, value)5. balanceInsertion(root, x.原创 2021-09-19 17:35:32 · 193 阅读 · 0 评论 -
SpringBoot启动原理
本文主要从源层级上解读了SpringBoot启动的流程,通过一步步的跟踪源码,解释了源码中每个方法的功能。文章目录一、SpringBoot启动原理思维导图二、XXXApplication启动类三、SpringApplication.run方法3.1、初始化SpringApplication3.2、启动SpringBoot总结:一、SpringBoot启动原理思维导图二、XXXApplication启动类@SpringBootApplication@ServletComponentSca.原创 2021-08-10 22:50:48 · 214 阅读 · 0 评论 -
SpringBoot之嵌入式Servlet容器
本文主要介绍了SpringBoot下,三大内置Servlet的加载原理以Servlet的启动原理,涉及到部分源码解读。原创 2021-08-07 10:41:19 · 505 阅读 · 0 评论 -
SpringBoot-Jackson引擎和BasicErrorController全局异常
本文将会介绍SpringBoot中Jackson引擎以及BasicErrorController全局异常。文章目录一、SpringBoot-Jackson引擎1、HttpMessageConvertersAutoConfiguration自动配置类2、jackson常用注解使用二、SpringBoot-BasicErrorController全局异常1、ErrorMvcAutoConfiguration自动配置类1.1、BasicErrorController Bean1.2、DefaultError.原创 2021-08-05 23:58:56 · 587 阅读 · 0 评论 -
SpringBoot静态资源加载原理
系列文章目录 上一篇博客Spring Boot自动配置原理已经讲解了SpringBoot的自动配置原理,其中,SpringBoot自动配置的过程中会帮我们加载一个叫做WebMvcAutoConfiguration的类。今天探讨下这个自动配置类究竟帮我们做了些什么事情。文章目录系列文章目录前言一、WebMvcAutoConfiguration类1、WebMvcAutoConfiguration类的源码如下:二、视图解析器三、静态资源配置原理1、LocaleResolver获取语言方式配置1.1、Loca原创 2021-08-01 14:39:11 · 247 阅读 · 0 评论 -
Spring Boot自动配置原理
SpringBoot的核心就是自动配置,自动配置又是基于条件判断来配置Bean。本文将会追踪源码,一步一步讲解SpringBoot的自动配置原理。文章目录一、Spring Boot自动配置二、Spring Boot自动配置原理思维导图三、主程序入口、启动类3.1 、@SpringBootApplication 注解3.2 @EnableAutoConfiguration注解3.3 AutoConfigurationImportSelector.class源码四、以ServletWebServerFac.原创 2021-07-27 00:01:00 · 227 阅读 · 0 评论