自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式 — 6大设计原则(迪米特法则和开闭原则)

设计模式 — 6大设计原则(迪米特法则和开闭原则)

2022-11-07 14:30:37 401

原创 设计模式 — 6大设计原则(依赖倒置和接口隔离原则)

设计模式 — 6大设计原则(依赖倒置和接口隔离原则)

2022-11-06 14:00:41 934

原创 设计模式 — 6大设计原则(单一职责和里氏替换原则)

设计模式 — 6大设计原则(单一职责和里氏替换原则)

2022-11-04 01:26:20 492

原创 Spring 事务特性 — @Transactional 事务注解的基本运用

@Transactional 事务注解

2022-10-24 16:53:17 1398

原创 MySQL常用规范

mysql的常用规范

2022-08-11 13:42:12 565

原创 分布式锁之Redisson基础篇《二》

分布式锁之Redisson基础篇《一》 续章

2022-07-14 19:55:14 538

原创 分布式锁之Redisson基础篇《一》

工作中遇到幂等性问题,然后了解到使用Redisson的锁可以解决这个问题,抱着系统学习一下redisson…

2022-07-14 19:52:29 2723 2

原创 网络编程之Netty(网络通信框架)的基础篇

网络编程Netty的介绍及应用场景Netty的介绍Netty的应用场景I/O模型I/O模型基本说明BIO、NIO、AIO适用场景分析Java BIOJava BIO基本介绍Java BIO应用实例Java BIO 问题分析Java NIOJava NIO 基本介绍NIO的Buffer基本使用NIO三大核心组件关系Buffer的机制及子类Channel通道(Channel)的基本介绍通道(Channel)的应用实例关于Buffer 和 Channel的注意事项和细节Netty的介绍及应用场景Netty的介

2022-03-22 16:12:12 2539 4

原创 数据结构与算法之稀疏数组和队列

数据结构与算法线性结构和非线性结构稀疏数组稀疏数组的应用场景与介绍稀疏数组转换的思路分析稀疏数组的代码实现队列队列的应用场景和介绍数组模拟队列的思路分析数组模拟队列代码实现数组模拟环形队列思路分析数组模拟环形队列实现线性结构和非线性结构线性结构线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储结构(数组,比如ArrayList)和链式存储结构(l链表,例如LinkedList)。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的

2022-03-13 23:35:59 462

原创 Spring Cloud -面试篇

微服务专题-面试篇说明Spring Cloud常见组件有哪些?Nacos的服务注册表结构是怎样的?Nacos如何支撑数十万服务注册压力?Nacos如何避免并发读写冲突问题?Nacos与Eureka的区别有哪些?Sentinel的线程隔离与Hystix的线程隔离有什么差别?Sentinel的限流与Gateway的限流有什么差别?什么是限流?固定窗口计数器算法滑动窗口计数器算法令牌桶算法漏桶算法说明:限流算法对比说明以下总结来自于黑马程序员网课,地址:https://www.bilibili.com/vid

2022-03-07 02:08:22 1028

原创 红黑树分析与JDK8中HashMap源码解析

红黑树分析与JDK8中HashMap源码解析BSTO(1), O(n), O(logn), O(nlogn) 的区别红黑树-RBTree插入数据HashMap中红黑树的插入操作HashMap中红黑树的左右旋操作HashMap中的树化JDK1.8中的ConcurrentHashMap源码分析BST二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。在理想的情况下,二叉查找树增删查改的时间复杂

2022-03-01 02:16:24 175

原创 (并发专题篇)DCL-单例模式-解决并发问题的方案

DCL-单例模式这篇文章的由来解决的问题解决的思路恶汉式懒汉式懒汉式+同步方法DCL(Double-Check-Locking)Volatile+Double-check枚举彩蛋这篇文章的由来面试官:了解常用的设计模式吗?我:了解。面试官:说说DCL-单例模式。。。我:不知道面试官:。。。⚠️设计模式是一种思想,是脱离语言的,Java有Java实现的方式,python有python的实现方式解决的问题多个线程操作不同实例对象,多个线程要操作同一对象,要保证对象的唯一性,如何保证实例化过程中

2022-02-22 02:26:44 499

原创 主键id自动填充拦截器插件-支持UUID和雪花算法

废话不多说,直接上代码1、自定义注解方式@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)public @interface AutoId { /** * @return id类型(默认为雪花id) */ IdType value() default IdType.SNOWFLAKE; /** * id类型 */ enum IdT

2022-02-17 22:01:25 297

原创 Spring中核心概念详解(看源码必备)

Spring中核心概念详解BeanDefinitionBeanDefinition这篇文章是看Spring源码之前的最后一篇铺垫,都是一些概念性的东西,作为打开Spring神秘面纱之前的最后一把钥匙,就创作思路而言,基本上确定就是以Spring、Mybatis、SpringBoot、SpringCloud等源码解析为大致的方向,...

2022-01-01 16:33:34 230 2

原创 手写模拟Spring框架核心逻辑

手写模拟Spring框架核心逻辑了解Spring框架工作大概流程创建AnnotationConfigApplicationContext启动类创建BeanDefinition类实现@Autowired的依赖注入实现BeanNameAware接口了解Spring框架工作大概流程模拟Spring框架核心代码并不是实现真正的Spring核心源码,而是为了后续看源码进行的一个铺垫,同时我也相信在以后的某个时间段的面试中会跟面试官扯到这个犊子 ,主要还是通过手写一遍了解Spring工作的大概流程,对于Spring

2021-12-20 00:32:22 1222 2

原创 Spring实战与源码解析之SpringAOP应用<一>

SpringAOP应用<一>什么是AOPAOP Concepts(概念)@AspectJ support使用 Java 配置启用 @AspectJ 支持使用 XML 配置启用 @AspectJ 支持支持的切入点指示符什么是AOPAOP表示面向切面编程,是Spring Framework中众多特性中的一个特性,AOP可以对某个对象或某些对象的功能进行增加,比如对象中的方法进行增加,可以执行某个方法之前额外的一些事情,在某个方法执行之后额外的做一些事情,通常,我们会利用AOP机制来实现权限控

2021-12-05 22:20:06 334

原创 JDK8新特性解析

JDK8新特性Lambda1、语法2、变量作用域3、方法引用什么是Stream?创建数据源数据处理/转换聚合收集结果自己生成Streamshort-circuiting并行迭代器Lambda用来替代匿名函数,可以将一个函数赋值给一个变量作为参数传入另一个函数,Java的闭包原则:可推导就是可省略,比如说参数类型,返回值// 1. 不需要参数,返回值为 5 {}只有一行代码,可以省略() -> 5 // 2. 接收一个参数(数字类型),返回其2倍的值,()只有一个参数可以省略 x

2021-11-22 21:33:09 530

原创 Spring实战与源码解析之SpringIOC应用<一>

SpringIOC应用<一>SpringIOC什么是Spring什么是 IOC为什么要使用SpringIOCSpring实现IOC的思路和方法Spring的编程风格自动装配@Autowired和@Resource的区别懒加载Spring 作用域Spring生命周期与回调1、生命周期回调初始化回调销毁回调默认初始化和销毁方法结合生命周期机制2、 ApplicationContextAware和BeanNameAware3、其他Aware接口BeanNameGeneratorSpringIOC

2021-11-20 23:14:45 552

原创 SpringSecurity原理剖析及其实战(五)

SpringSecurity原理剖析及其实战(五)1、用户授权(访问控制)2、基于权限的访问控制3、基于表达式的访问控制4、方法授权5 、授权原理6、授权流程1、用户授权(访问控制)什么是授权?授权的方式常分为两种,web授权和方法授权,web授权是通过url拦截进行授权,方法授权是通过方法拦截进行授权。他们都会调用accessDecisionManager进行授权决策,若为web授权则拦截器为FilterSecurityInterceptor;若为方法授权则拦截器为MethodSecurity

2021-11-08 23:41:38 778

原创 SpringSecurity原理剖析及其实战(四)

SpringSecurity原理剖析及其实战(四)1、认证原理2、认证流程3、相关接口1、认证原理Spring Security是如何完成身份认证的?用户名和密码被过滤器获取到,封装成Authentication,通常情况下是UsernamePasswordAuthenticationToken这个实现类。AuthenticationManager身份管理器负责验证这个Authentication认证成功后,AuthenticationManager身份管理器返回一个被填充满了信息的(包括上面提

2021-11-06 23:32:18 304

原创 SpringSecurity原理剖析及其实战(三)

SpringSecurity原理剖析及其实战(三)1、自定义登录页面1、自定义登录页面默认登录页面通过DefaultLoginPageGeneratingFilter#generateLoginPageHtml生成编写登录页面默认登录页面通过<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title>&

2021-11-06 16:07:20 1033

原创 Centos 8.2安装docker

1.CentOs 8.2 安装docker我这边使用的腾讯云,为了出一篇教程,亲手安装系列。。。1、先卸载上个版本的相关软件(我这边使用的是root用户,非最高级请在yum加个 “sudo”)yum -y remove docker docker-common docker-selinux docker-engine2、安装yum工具yum install -y yum-utils3、安装dockeryum-config-manager –add-rep

2021-11-04 16:04:39 1544

原创 SpringSecurity原理剖析及其实战(二)

1.Spring Security整合数据库认证服务器Spring security整合数据库认证本人这边所使用的技术栈如下:技术描述mybatis持久层mybatis-plusMyBatis (opens new window) 的增强工具hutooljava工具类库lombok一种 Java™ 实用工具EasyCode代码生成器后面的整合oauth2、jwt中也会大量以上技术,包括最后整套Spring Cloud Alibaba - vue

2021-11-02 18:08:24 316

原创 SpringSecurity原理剖析及其实战(一)

FROM 《Spring Security 官网》Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications. Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于 Spring 的 应用程

2021-10-30 19:43:26 867 4

原创 根据日期分组查询数组列表

根据日期分组查询数组列表serviceImplmapper.javaxmlcontrollerserviceMap<String,List<UmsBrowse>> getMemberBrowse();Impl @Override public Map<String, List<UmsBrowse>> getMemberBrowse() { //获取登录用户信息 MemberInfo memberInfo = M

2021-05-17 10:53:06 197

原创 Java语言特点

1、1.1 Java语言与C/C++的区别Java是由C++发展而来的,保留了C++的大部分内容,其编程方式也类似于C。但Java的句法更清晰、规模更小、更易学。SUN公司对多种程序设计语言进行了深入研究。摒弃了其它语言的不足之处,最终开发出了Java。正因为这样,Java从根本上解决了C++的固有缺陷,形成了一种新的完全面向对象的语言。Java和C/C++的相似之处多于不同之处,有C/C++...

2019-06-10 13:47:57 7429

原创 Java语言的发展史

对于Java语言的发展史有两种说法:1、由JamesGosling(詹姆斯.高斯林)、ArthurVanHoff(阿瑟.凡.霍夫)AndyBechtolsheim(安迪.贝克托克姆)或“JustAnottherVagueAcronym”(只是另外一个含糊的缩写)。2、由于出于对咖啡的喜爱,所以以Java咖啡来命名。类文件的前四个字节如果用十六进制阅读的话,分别为CAFEBABE,就会拼出两个...

2019-05-28 18:49:21 277

原创 传统IO与NIO的一点心得

package io;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class TraditionalSocketDemo { public

2019-05-27 19:11:59 120

原创 分析Spring Boot项目启动慢原因之 《一》打印bean耗时

【代码】分析Spring Boot项目启动慢原因之 《一》打印bean耗时。

2023-07-03 17:04:00 974

原创 设计模式 — 抽象工厂模式

设计模式 — 抽象工厂模式

2022-11-15 22:49:59 1313 3

原创 设计模式 — 工厂模式

设计模式 — 工厂模式(简单工厂)

2022-11-13 23:00:08 717

原创 生成图形验证码

图形验证码

2022-10-12 11:15:54 145

空空如也

空空如也

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

TA关注的人

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