自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(361)
  • 资源 (2)
  • 收藏
  • 关注

原创 【设计模式】结合Tomcat源码,分析外观模式/门面模式的特性和应用场景

从景点的组建家庭影院需求入手,结合Tomcat源码和三层架构,解析外观/门面模式的特性和应用场景

2024-11-13 20:45:00 1454 27

原创 【设计模式】结合StringBuilder源码,探析建造者模式的特性和应用场景

本文从盖房子、买披萨等案例入手,结合SpringBuilder等JDK源码,解释了建造者模式的基本特性和应用,并对建造者模式和工厂模式的区别进行了分析。

2024-10-17 20:15:00 1247 14

原创 HashMap是如何实现键值对管理的?从底层源码入手,详细解读HashMap的具体实现

本文首先对集合、映射等相关知识进行介绍,对HashMap各个重要变量、常量、构造方法、核心方法、序列化原理等源码进行深入解析,并对:“Map是不是集合?”、“HashMap继承了AbstractMap,为什么还要实现Map接口?”、“为什么table用transient修饰?”、“为什么(e.hash & oldCap) == 0时扩容索引值不变?”等问题进行了分析和解答

2024-09-30 14:28:33 753 54

原创 什么是线程池?从底层源码入手,深度解析线程池的工作原理

本文从底层源码入手,深度解析ThreadPoolExecutor底层源码,包括其核心字段、内部类和重要方法,另外对Executors工具类下的四种自带线程池源码进行解释。阅读本文后,可以对线程池的工作原理、七大参数、生命周期、拒绝策略等内容拥有更深入的认识。

2024-09-10 15:45:00 1471 41

原创 Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)

本文是“Java学习路线”中Java基础知识的高级篇,主要对多线程和反射进行了深入浅出的介绍,在多线程部分,详细介绍了线程的概念、生命周期、多线程的线程安全、线程通信、线程同步,并对synchronized和Lock锁;反射部分对反射的特性、功能、优缺点、适用场景等进行了介绍。

2024-07-18 23:30:00 7058 61

原创 Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)

本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。

2024-07-17 20:00:00 3718 35

原创 【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)

MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。MySQL调优:基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表;表设计优化:数据类型优化、冷热数据分表等。索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。SQL优化。

2024-06-06 21:15:00 5686 25

原创 JVM的垃圾回收算法有哪些?从可达性分析算法开始,深入解读三大核心垃圾回收算法

本文首先介绍GC Roots、可达性分析算法、非可达对象回收过程等基本概念,然后深入讲解标记清除算法、标记复制算法、标记整理算法等核心算法,并做以简单的对比,引申分代收集理论。

2024-05-13 21:45:39 1656 5

原创 Spring是如何解决循环依赖的?从底层源码入手,详细解读Spring框架的三级缓存

三级缓存是Spring框架里,一个经典的技术点,它很好地解决了循环依赖的问题,也是很多面试中会被问到的问题,本文从源码入手,详细剖析Spring三级缓存的来龙去脉。

2024-05-07 07:45:00 1512 1

原创 Java的类是怎样在虚拟机中加载的?详细阐述JVM的加载、验证和解析过程

详细阐述JVM的类加载机制,并对JVM内存模型、双亲委派等底层原理进行引申和解释。

2024-04-25 07:45:00 1383

原创 JDK编译生成的.class字节码文件是什么?从底层结构到代码验证,深度解析Java字节码文件

从Java字节码文件的基础单位,到常量池、属性、访问标识符,搭配javap命令和HEX-Editor插件,深入剖析类的class文件

2024-04-16 07:45:00 1351

原创 Spring框架中Bean是如何加载的?从底层源码入手,详细解读Bean的创建流程

从底层源码入手,通过代码示例,追踪AnnotationConfigApplicationContext加载配置类、启动Spring容器的整个流程,并对IOC、BeanDefinition、PostProcesser等相关概念进行解释

2024-04-02 07:45:00 1956 1

原创 【阿里规约】阿里开发手册解读——数据库和ORM篇

从命名规范、建表规范、查询规范、索引规范、操作规范等角度出发,详细阐述MySQL数据库使用过程中所需要遵循的各种规范。

2024-03-12 07:45:00 3101 1

原创 Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)

从Java环境的搭建到实际代码的编写,从基本用法的讲解到底层原理的剖析,深度解析Java基础知识。本文是《Java学习路线》专栏的起始文章,旨在提供一套完整的Java学习路线,覆盖Java基础知识、数据库、SSM/SpringBoot等框架、Redis/MQ等中间件、设计模式、架构设计、性能调优、源码解读、核心面试题等全面的知识点,并在未来不断更新和完善,帮助Java从业者在更短的时间内成长为高级开发。

2024-01-05 07:45:00 7044 10

原创 什么是JVM的内存模型?详细阐述Java中局部变量、常量、类名等信息在JVM中的存储位置

从类加载子系统、运行时数据区、执行引擎入手,详细阐述JVM内存模型,以及Java局部变量、常量、类名等信息的存储位置

2023-12-01 20:03:55 2270 3

原创 【阿里规约】阿里开发手册解读——代码格式篇

本文所有代码格式规范遵循《阿里规约》,从编码、换行符、空格规则、括号规则、字符数等方面展开,详细阐述方法参数、强制转换、运算符、缩进等元素的编写规范。

2023-11-08 07:45:00 4298

原创 【阿里规约】阿里开发手册解读——命名规范篇

本文中所有代码命名规范遵循《阿里规约》,从包名、类名、变量名等角度展开,详细阐述测试类、枚举类、数组、布尔型变量、方法等元素的命名规范。

2023-11-03 07:45:00 3213

原创 【Java笔记+踩坑】设计模式——原型模式

对比原型模式和传统方式的实现思路、代码方案、优缺点,阐述原型模式的使用场景,以及深拷贝、浅拷贝等相关概念,并扩展原型模式在Spring源码中的应用。

2023-10-26 07:45:00 563

原创 【Java面试题汇总】ElasticSearch篇(2023版)

倒排索引、MySQL和ES一致性、ES近实时、ES集群的节点、分片、搭建、脑裂、调优。

2023-10-25 15:45:00 1597

原创 一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案

MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。

2023-10-17 07:45:00 11470 1

原创 谷粒商城笔记+踩坑(25)——整合Sentinel实现流控和熔断降级

先简单介绍熔断、降级等核心概念,然后阐述SpringBoot整合Sentinel的实现方式,最后介绍Sentinel在本项目中的应用。

2023-10-13 07:45:00 1046 1

原创 【JVM调优】如何进行JVM调优?一篇文章就够了!

深入解读JVM性能的监控、定位和调优方案,阐述jps/stat/jstack、MAT等常用性能分析工具的使用,提出JVM参数、内存溢出、内存泄漏、CPU飙升、GC频繁等实际场景下JVM调优的方案。

2023-09-21 07:45:00 27320 3

原创 Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL

从基本特性、技术选型、字段类型、事务提交方式、SQL语句、分页方法等方面对比Oracle和MySQL的区别。

2023-08-11 07:45:00 34668 3

原创 【禁用外键】为什么互联网大厂禁用外键约束?详谈外键的优缺点和使用场景

从多个层面分析数据库外键的优缺点,并给出外键的使用场景和禁止使用的场景。

2023-07-30 16:04:37 3470

原创 【23年7月21日更新】宝塔+青龙面板+Maiark短信登录搭建教程

购买云服务器+搭建宝塔面板+安装青龙面板+搭建Maiark短信登录,一条龙,适合新手和小白

2023-07-24 17:00:00 13034 30

原创 【Java笔记+踩坑】Spring Data JPA

从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。

2023-07-20 07:45:00 451

原创 【幂等性大坑】事务提交前释放锁导致锁失效问题

在事务中,使用了 Redis 分布式锁.这个方法一旦执行,事务生效,接着就 Redis 分布式锁生效,代码执行完后,先释放 Redis 分布式锁,然后再提交事务数据,最后事务结束。如果是表单重复提交场景,可以尝试给“订单号”等有唯一性的字段加唯一索引,这样重复提交时会因为唯一索引约束导致索引失效。5、如果表的一个字段,要作为另外一个表的外键,这个字段必须有唯一约束(或是主键),如果只是有唯一索引,就会报错。2、创建唯一约束,会自动创建一个同名的唯一索引,该索引不能单独删除,删除约束会自动删除索引。

2023-07-12 07:45:00 1504

原创 HashMap底层原理:数据结构+put()流程+2的n次方+死循环+数据覆盖问题

假如有T1、T2两个线程同时对某链表扩容,他们都标记头结点和第二个结点,此时T2阻塞,T1执行完扩容后链表结点顺序反过来,此时T2恢复运行再进行翻转就会产生环形链表,即B.next=A;采用2的指数进行扩容,是为了利用位运算,提高扩容运算的效率。JDK8中,HashMap采用尾插法,扩容时链表节点位置不会翻转,解决了扩容死循环问题,但是性能差了一点,因为要遍历链表再查到尾部。例如15(即2^4-1)的二进制为1111,31的二进制为11111,63的二进制为111111,127的二进制为1111111。

2023-07-10 07:45:00 1274 4

原创 Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案

根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案

2023-06-22 07:45:00 4016

原创 【Java面试题汇总】Spring篇(2023版)

IoC、DI、aop、事务、为什么不建议@Transactional、事务传播级别、@Autowired和@Resource注解的区别、BeanFactory和FactoryBean的区别、Bean的作用域,以及默认的作用域、Bean的生命周期、循环依赖、三级缓存、

2023-06-15 07:45:00 3021 4

原创 【MySQL调优】如何进行MySQL调优?一篇文章就够了!

MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。MySQL调优:基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表;表设计优化:数据类型优化、冷热数据分表等。索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。SQL优化。

2023-06-06 07:45:00 24401 8

原创 手写Spring源码(简化版)

Spring包下的类、手写@ComponentScan注解、@Component注解、@Autowired注解、@Scope注解、手写BeanDefinition、BeanNameAware、InitializingBean、BeanPostProcessor 、手写AnnotationConfigApplicationContext

2023-05-26 07:45:00 1945

原创 MySQL高级篇——覆盖索引、前缀索引、索引下推、SQL优化、主键设计

覆盖索引、前缀索引、索引下推、SQL优化、EXISTS 和 IN 的区分、建议COUNT(*)或COUNT(1)、建议SELECT(字段)而不是SELECT(*)、LIMIT 1 对优化的影响、多使用COMMIT、主键设计、自增主键的缺点、淘宝订单号的主键设计、MySQL 8.0改造UUID为有序

2023-05-24 07:45:00 9451

原创 MySQL高级篇——排序、分组、分页优化

排序优化建议、案例验证、范围查询时索引字段选择、filesort调优、双路排序和单路排序、分组优化、带排序的深分页优化

2023-05-23 07:45:00 5836 3

原创 MySQL高级篇——关联查询和子查询优化

左外连接:优先右表创建索引,连接字段类型要一致、内连接:驱动表由数据量和索引决定、 join语句原理、子查询优化:拆开查询或优化成连接查询

2023-05-22 07:45:00 3289

原创 MySQL高级篇——索引失效的11种情况

索引优化思路、要尽量满足全值匹配、最佳左前缀法则、主键插入顺序尽量自增、计算、函数导致索引失效、类型转换(手动或自动)导致索引失效、范围条件右边的列索引失效、不等于符号导致索引失效、is not null、not like无法使用索引、左模糊查询导致索引失效、“OR”前后存在非索引列,导致索引失效、不同字符集导致索引失败,建议utf8mb4

2023-05-21 07:45:00 30790 15

原创 学成在线笔记+踩坑(12)——用户认证

连接用户中心数据库、账号密码认证、验证码认证

2023-05-13 07:45:00 1943

原创 学成在线笔记+踩坑(11)——认证授权介绍、网关认证,SpringSecurity+JWT+OAuth2

认证授权介绍、网关认证,SpringSecurity+JWT+OAuth2

2023-05-12 07:45:00 3552 2

原创 【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)

String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射

2023-05-06 07:45:00 3494

原创 【Java面试题汇总】设计模式篇(2023版)

谈谈你对设计模式的理解、七大原则、单例模式、工厂模式、代理模式、模板模式、观察者模式、JDK中用到的设计模式、Spring中用到的设计模式

2023-05-04 07:45:00 4427

JDK 1.8中文API文档

JDK 1.8中文API文档

2022-07-27

空空如也

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

TA关注的人

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