Java学习路线
文章平均质量分 96
【Java笔记+踩坑,学习一条龙】JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城
程序员小海绵【vincewm】
本科西安某211,多年大厂后端开发经验,优快云博客专家,阿里云乘风者计划专家博主,专注于Java领域知识分享
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。原创 2022-09-01 17:20:23 · 54537 阅读 · 73 评论
-
Spring AOP原理剖析:Spring和JDK源码对照+代理设计模式全解
围绕Spring AOP的设计与实现展开,从核心概念到源码解析,系统阐述其底层机制。第一部分介绍AOP的核心概念和代理设计模式,第二部分深入源码实现,从Bean初始化与代理创建引入,分析JDK动态代理和CGLIB代理生成流程。原创 2025-03-24 07:45:00 · 1090 阅读 · 10 评论 -
【SpringBoot源码】一篇文章,搞懂SpringBoot是如何启动的
首先介绍SpringBoot的run()核心方法,然后对其中各个关键步骤进行代码追踪和详细解释,并给出刷新后钩子、启动后任务等代码示例,便于理解读懂后源码后可以怎么应用。原创 2025-01-13 20:30:00 · 1891 阅读 · 13 评论 -
【架构设计】从设计模式入手,设计一个符合设计原则的积分兑换系统
从设计模式的角度出发,设计一个遵循设计原则和规范的积分兑换系统,包括基本需求介绍、模块划分、数据库设计、接口设计、业务模型设计、部署方式等方面的设计方案。原创 2024-12-11 20:30:00 · 2635 阅读 · 33 评论 -
【设计模式】结合Tomcat源码,分析外观模式/门面模式的特性和应用场景
从景点的组建家庭影院需求入手,结合Tomcat源码和三层架构,解析外观/门面模式的特性和应用场景原创 2024-11-13 20:45:00 · 1741 阅读 · 29 评论 -
HashMap是如何实现键值对管理的?从底层源码入手,详细解读HashMap的具体实现
本文首先对集合、映射等相关知识进行介绍,对HashMap各个重要变量、常量、构造方法、核心方法、序列化原理等源码进行深入解析,并对:“Map是不是集合?”、“HashMap继承了AbstractMap,为什么还要实现Map接口?”、“为什么table用transient修饰?”、“为什么(e.hash & oldCap) == 0时扩容索引值不变?”等问题进行了分析和解答原创 2024-09-30 14:28:33 · 1054 阅读 · 54 评论 -
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划原创 2023-03-25 02:21:03 · 4400 阅读 · 2 评论 -
什么是线程池?从底层源码入手,深度解析线程池的工作原理
本文从底层源码入手,深度解析ThreadPoolExecutor底层源码,包括其核心字段、内部类和重要方法,另外对Executors工具类下的四种自带线程池源码进行解释。阅读本文后,可以对线程池的工作原理、七大参数、生命周期、拒绝策略等内容拥有更深入的认识。原创 2024-09-10 15:45:00 · 2098 阅读 · 42 评论 -
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)
本文是“Java学习路线”中Java基础知识的高级篇,主要对多线程和反射进行了深入浅出的介绍,在多线程部分,详细介绍了线程的概念、生命周期、多线程的线程安全、线程通信、线程同步,并对synchronized和Lock锁;反射部分对反射的特性、功能、优缺点、适用场景等进行了介绍。原创 2024-07-18 23:30:00 · 10816 阅读 · 61 评论 -
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。原创 2024-07-17 20:00:00 · 7509 阅读 · 0 评论 -
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。MySQL调优:基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表;表设计优化:数据类型优化、冷热数据分表等。索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。SQL优化。原创 2024-06-06 21:15:00 · 8532 阅读 · 26 评论 -
JVM的垃圾回收算法有哪些?从可达性分析算法开始,深入解读三大核心垃圾回收算法
本文首先介绍GC Roots、可达性分析算法、非可达对象回收过程等基本概念,然后深入讲解标记清除算法、标记复制算法、标记整理算法等核心算法,并做以简单的对比,引申分代收集理论。原创 2024-05-13 21:45:39 · 2330 阅读 · 6 评论 -
Spring是如何解决循环依赖的?从底层源码入手,详细解读Spring框架的三级缓存
三级缓存是Spring框架里,一个经典的技术点,它很好地解决了循环依赖的问题,也是很多面试中会被问到的问题,本文从源码入手,详细剖析Spring三级缓存的来龙去脉。原创 2024-05-07 07:45:00 · 2050 阅读 · 0 评论 -
Java的类是怎样在虚拟机中加载的?详细阐述JVM的加载、验证和解析过程
详细阐述JVM的类加载机制,并对JVM内存模型、双亲委派等底层原理进行引申和解释。原创 2024-04-25 07:45:00 · 1792 阅读 · 0 评论 -
JDK编译生成的.class字节码文件是什么?从底层结构到代码验证,深度解析Java字节码文件
从Java字节码文件的基础单位,到常量池、属性、访问标识符,搭配javap命令和HEX-Editor插件,深入剖析类的class文件原创 2024-04-16 07:45:00 · 2048 阅读 · 0 评论 -
Spring框架中Bean是如何加载的?从底层源码入手,详细解读Bean的创建流程
从底层源码入手,通过代码示例,追踪AnnotationConfigApplicationContext加载配置类、启动Spring容器的整个流程,并对IOC、BeanDefinition、PostProcesser等相关概念进行解释原创 2025-01-07 15:01:51 · 3738 阅读 · 0 评论 -
【阿里规约】阿里开发手册解读——数据库和ORM篇
从命名规范、建表规范、查询规范、索引规范、操作规范等角度出发,详细阐述MySQL数据库使用过程中所需要遵循的各种规范。原创 2024-03-12 07:45:00 · 3898 阅读 · 1 评论 -
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
从Java环境的搭建到实际代码的编写,从基本用法的讲解到底层原理的剖析,深度解析Java基础知识。本文是《Java学习路线》专栏的起始文章,旨在提供一套完整的Java学习路线,覆盖Java基础知识、数据库、SSM/SpringBoot等框架、Redis/MQ等中间件、设计模式、架构设计、性能调优、源码解读、核心面试题等全面的知识点,并在未来不断更新和完善,帮助Java从业者在更短的时间内成长为高级开发。原创 2024-01-05 07:45:00 · 11789 阅读 · 10 评论 -
什么是JVM的内存模型?详细阐述Java中局部变量、常量、类名等信息在JVM中的存储位置
从类加载子系统、运行时数据区、执行引擎入手,详细阐述JVM内存模型,以及Java局部变量、常量、类名等信息的存储位置原创 2023-12-01 20:03:55 · 4007 阅读 · 3 评论 -
【设计模式】结合StringBuilder源码,探析建造者模式的特性和应用场景
本文从盖房子、买披萨等案例入手,结合SpringBuilder等JDK源码,解释了建造者模式的基本特性和应用,并对建造者模式和工厂模式的区别进行了分析。原创 2024-10-17 20:15:00 · 1613 阅读 · 16 评论 -
【阿里规约】阿里开发手册解读——代码格式篇
本文所有代码格式规范遵循《阿里规约》,从编码、换行符、空格规则、括号规则、字符数等方面展开,详细阐述方法参数、强制转换、运算符、缩进等元素的编写规范。原创 2023-11-08 07:45:00 · 5310 阅读 · 0 评论 -
【阿里规约】阿里开发手册解读——命名规范篇
本文中所有代码命名规范遵循《阿里规约》,从包名、类名、变量名等角度展开,详细阐述测试类、枚举类、数组、布尔型变量、方法等元素的命名规范。原创 2023-11-03 07:45:00 · 4660 阅读 · 0 评论 -
【Java笔记+踩坑】设计模式——原型模式
对比原型模式和传统方式的实现思路、代码方案、优缺点,阐述原型模式的使用场景,以及深拷贝、浅拷贝等相关概念,并扩展原型模式在Spring源码中的应用。原创 2023-10-26 07:45:00 · 753 阅读 · 0 评论 -
【Java面试题汇总】ElasticSearch篇(2025版)
倒排索引、MySQL和ES一致性、ES近实时、ES集群的节点、分片、搭建、脑裂、调优。原创 2023-10-25 15:45:00 · 3456 阅读 · 0 评论 -
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。原创 2023-10-17 07:45:00 · 19939 阅读 · 1 评论 -
谷粒商城笔记+踩坑(25)——整合Sentinel实现流控和熔断降级
先简单介绍熔断、降级等核心概念,然后阐述SpringBoot整合Sentinel的实现方式,最后介绍Sentinel在本项目中的应用。原创 2023-10-13 07:45:00 · 1560 阅读 · 1 评论 -
【JVM调优】如何进行JVM调优?一篇文章就够了!
深入解读JVM性能的监控、定位和调优方案,阐述jps/stat/jstack、MAT等常用性能分析工具的使用,提出JVM参数、内存溢出、内存泄漏、CPU飙升、GC频繁等实际场景下JVM调优的方案。原创 2023-09-21 07:45:00 · 42586 阅读 · 8 评论 -
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
从基本特性、技术选型、字段类型、事务提交方式、SQL语句、分页方法等方面对比Oracle和MySQL的区别。原创 2023-08-11 07:45:00 · 48999 阅读 · 3 评论 -
MySQL高级篇——存储引擎和索引
MyISAM:不支持外键和事务,表锁不适合高并发,只缓存索引,内存要求低,查询快MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM不支持事务、行级锁、外键,有一个毫无疑问的缺陷就是崩溃后无法安全恢复。5.5之前默认的存储引擎优势是访问的速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用针对数据统计有额外的常数存储。故而 count(*) 的查询效率很高表名.frm 存储表结构;表名.MYD 存储数据 (MYData);原创 2023-04-23 18:43:15 · 2846 阅读 · 0 评论 -
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。原创 2023-07-20 07:45:00 · 829 阅读 · 0 评论 -
主键约束和唯一性约束的区别
1.主键约束(PRIMARY KEY)1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL).4) 主健可作外健,唯一索引不可;2.唯一性约束(UNIQUE)1) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以...原创 2020-03-07 17:27:38 · 1055 阅读 · 0 评论 -
学成在线笔记+踩坑(1)——项目思路、架构、父工程和基础工程,Gogs使用
项目思路、架构、父工程和基础工程,Gogs使用原创 2023-04-19 07:30:00 · 7040 阅读 · 0 评论 -
设计模式——设计模式简介和七大原则
设计模式的目的和核心原则、单一职责原则、接口隔离原则、依赖倒转原则、里氏替换原则、开闭原则、迪米特法则、合成复用原则原创 2023-04-28 12:06:22 · 2507 阅读 · 0 评论 -
【禁用外键】为什么互联网大厂禁用外键约束?详谈外键的优缺点和使用场景
从多个层面分析数据库外键的优缺点,并给出外键的使用场景和禁止使用的场景。原创 2023-07-30 16:04:37 · 5733 阅读 · 0 评论 -
【幂等性大坑】事务提交前释放锁导致锁失效问题
在事务中,使用了 Redis 分布式锁.这个方法一旦执行,事务生效,接着就 Redis 分布式锁生效,代码执行完后,先释放 Redis 分布式锁,然后再提交事务数据,最后事务结束。如果是表单重复提交场景,可以尝试给“订单号”等有唯一性的字段加唯一索引,这样重复提交时会因为唯一索引约束导致索引失效。5、如果表的一个字段,要作为另外一个表的外键,这个字段必须有唯一约束(或是主键),如果只是有唯一索引,就会报错。2、创建唯一约束,会自动创建一个同名的唯一索引,该索引不能单独删除,删除约束会自动删除索引。原创 2023-07-12 07:45:00 · 2009 阅读 · 0 评论 -
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 · 1493 阅读 · 4 评论 -
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案原创 2023-06-22 07:45:00 · 5656 阅读 · 0 评论 -
【Java面试题汇总】Spring篇(2025版)
IoC、DI、aop、事务、为什么不建议@Transactional、事务传播级别、@Autowired和@Resource注解的区别、BeanFactory和FactoryBean的区别、Bean的作用域,以及默认的作用域、Bean的生命周期、循环依赖、三级缓存、原创 2023-06-15 07:45:00 · 6689 阅读 · 0 评论 -
【MySQL调优】如何进行MySQL调优?一篇文章就够了!
MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。MySQL调优:基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表;表设计优化:数据类型优化、冷热数据分表等。索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。SQL优化。原创 2023-06-06 07:45:00 · 32470 阅读 · 10 评论 -
手写Spring源码(简化版)
Spring包下的类、手写@ComponentScan注解、@Component注解、@Autowired注解、@Scope注解、手写BeanDefinition、BeanNameAware、InitializingBean、BeanPostProcessor 、手写AnnotationConfigApplicationContext原创 2023-05-26 07:45:00 · 2267 阅读 · 0 评论
分享