我的Java全系列技术博客
JavaStarter
最开始写博客的目的就是为了学习和记录,后来发现虽然写了这么多,但是没有系统性地进行整理,因此我建立了JavaStarter系列。希望在学习或面试中都对大家有所帮助。
欢迎搜索微信公众号《Java鱼仔》,该份目录同步更新在JavaStarter,欢迎Star,有任何问题或需要沟通的都可以在这里找到我。
目录
注 : 文章持续更新中,没有链接的请等待
-
造轮子系列
- 闲着无聊造个轮子,开源一个可快速接入的分布式SSO系统
-
计算机核心基础
-
计算机操作系统
- Java程序员需要知道的操作系统知识汇总(持续更新)
-
计算机网络
- 作为一个程序员需要了解多少网络方面的基础?网络基础总结(不断更新)
-
计算机组成原理
-
数据结构
-
-
Java核心基础
-
基础篇
- Java常用关键字:this、super、final、static、访问修饰符
- 写了那么久的String字符串,你可能根本不懂它!
- JavaIO的整体结构以及File类的使用
- 快速学懂字节流与字符流
- 详解Java中的BIO、NIO、AIO
- java反射机制详解
- java代理机制详解(静态代理、动态代理:JDK、CGlib)
- 一篇文章带你了解cloneable接口、浅拷贝、深拷贝
- 谈一谈session和cookie的区别,以及session的实现机制
- 什么是接口的幂等性,如何实现接口幂等性?一文搞定
- Java16都快上线了,你该不会连Java8的特性都不会用吧?
- Java中的拦截器和过滤器有什么区别
- 你能保证你的代码没有异常吗?
-
集合类
- java集合掌握多少才算合格
- ArrayList、Vector、LinkedList的底层源码分析和对比
- Set接口及其实现类HashSet、TreeSet的底层结构与区别
- HashMap、HashTable、TreeMap的底层源码分析和对比
- 四千字从源码分析ConcurrentHashMap的底层原理(JDK1.8)
-
JVM虚拟机
- JVM的内存分代,这篇文章帮你理一理
- JVM垃圾回收机制是怎样的,何时触发YoungGC或FullGC操作,一文搞定
- 关于垃圾收集器你了解多少?一文总结七大垃圾收集器
- 深入浅出CMS垃圾收集器
- 图解类加载器和双亲委派机制,一看就懂
- 关于JVM调优,我理了一些工具和思路出来
- 两张图让你快速读懂JVM字节码指令
- 从JVM角度思考–如何预估线上环境机器资源大小
-
Java并发
- 产品经理问我:手动创建线程不香吗,为什么非要用线程池呢?
- 用几张图深度剖析Java运行时数据区
- 面试官:我问的是Java内存模型,你回答堆栈方法区干嘛?
- 指令重排序、内存屏障很难?看完这篇你就懂了!
- Volatile只会用不知道原理?一篇文章带你深究volatile
- 有关synchronized锁的知识点,我用一篇文章总结了
- 面试被问AQS、ReentrantLock答不出来?这些知识点让我和面试官聊了半小时!
- 大厂面试题:你知道JUC中的Semaphore、CyclicBarrier、CountDownLatch吗
- 关于ThreadLocal的九个知识点,看完别再说不懂了!
-
-
框架的艺术
-
Spring
- Spring的艺术(一)重新带你走进Spring
- Spring的艺术(二):控制反转(IOC)和依赖注入(DI)的完美实现
- Spring的艺术(三):关于Spring中的Bean,一文搞定
- Spring的艺术(四):Spring5竟然可以彻底抛弃xml配置
- Spring的艺术(五):通俗易懂的AOP切面详解
- Spring的艺术(六):一文搞定Spring整合Mybatis
- 事务Transactional注解的参数与失效场景分析
- 写了两年代码之后再来看看Spring中的Bean
- 这次终于把Spring的监听器讲明白了
-
Mybatis
- Mybatis的原理介绍及超详细使用
- Mybatis增删改查,这一篇足以
- Mybatis配置详细解析
- MyBatis实现复杂环境的Sql查询
- Mybatis日志原来是这样使用的
- Mybatis动态Sql详解
- Mybatis缓存详解
- 想在一个项目中实现多数据源切换?几行代码就搞定了
- 用了MybatisPlus后,我很久没有手写sql了
-
SpringMVC
-
SpringBoot
- 如何用SpringBoot(2.3.3版本)快速搭建一个项目?文末有小彩蛋
- 一步步带你看SpringBoot(2.3.3版本)自动装配原理
- SpringBoot配置文件及自动配置原理详解,这应该是SpringBoot最大的优势了吧
- SpringBoot整合jdbc、durid、mybatis详解,数据库的连接就是这么简单
- SpringBoot整合SpringSecurity详解,认证授权从未如此简单
- SpringBoot整合Shiro详解,还在自己写登陆注册早落伍了
- SpringBoot如何实现异步、定时任务?
- 如何在SpringBoot启动时执行初始化操作,两个简单接口就可以实现
-
Mq
- RabbitMQ的了解安装和使用
- 简单队列详解
- 工作队列详解
- 发布-订阅模型详解
- routing路由模式和Topic主题模式
- RabbitMQ消息确认机制
-
Zookeeper
- Zookeeper实现分布式锁的原理是什么?
-
Netty
- 网络开发的最强大框架:Netty快速入门
- 粘包和半包有了解过吗?netty是如何解决这个问题的
-
-
这就是数据库
-
Mysql
- 一文汇总数据库基础知识点!
- Mysql的索引调优详解:如何去创建索引以及避免索引失效
- 都2020年了,你还不知道count(1)和count(*)谁效率更高吗?
- 图解Mysql索引的数据结构!看不懂你来找我
- 白话Mysql的锁和事务隔离级别!死锁、间隙锁你都知道吗?
- 数据库分库分表扫盲,不会用也得知道概念
-
Redis
- redis入门到精通系列(一):入门redis看这一篇就够了
- redis入门到精通系列(二):redis操作的两个实践案例
- redis入门到精通系列(三):key的通用操作和redis内部db的通用操作
- redis入门到精通系列(四):Jedis–使用java操作redis详解
- redis入门到精通系列(五):redis的持久化看这一篇就够了
- redis入门到精通系列(六):redis的事务详解
- redis入门到精通系列(七):redis高级数据类型详解(BitMaps,HyperLogLog,GEO)
- redis入门到精通系列(八):redis的高可用–主从复制详解
- redis入门到精通系列(九):redis哨兵模式详解
- redis入门到精通系列(十):springboot快速集成redis
- redis入门到精通系列(十一):redis的缓存穿透、缓存击穿以及缓存雪崩
- redis入门到精通系列(十二):看完这一篇文章别再说不懂布隆过滤器
-
-
分布式与微服务
-
SpringCloud
- 使用idea搭建第一个微服务项目(附源码)
- Eureka基础与进阶实战
- ribbon的服务调用和负载均衡
- Feign的入门和高级使用
- Hystrix的入门和高级使用
- SpringCloud之微服务网关的入门与进阶(请求过滤、网关限流)
-
SpringCloudAlibaba
- 服务发现、配置中心,Nacos帮我们都搞定了
- Sentinel快速入门:这可能是目前最好的分布式系统限流降级框架
-
Dubbo
- Dubbo两小时快速上手教程(直接代码、Spring、SpringBoot)
-
ElasticSearch
- ElasticSearch究竟是个什么东西
- 通过官方文档高效学习ElasticSearch的JavaAPI实现!
- 如何在自己的项目中引入ElasticSearch搜索引擎?
- ElasticSearch聚合查询Restful语法和JavaApi详解(基于ES7.6)
-
认证授权
- 分布式集群环境下,如何实现每个服务的登陆认证?
- 你知道JWT是什么吗?它和Session的区别又在哪里?
- SpringBoot+SpringSecurity实现基于真实数据的授权认证
- Oauth2是个什么东西?
-
任务调度
- 为什么要引入分布式任务调度系统?
- 为什么说datax是目前最好的异构数据源数据交换工具
-
-
设计模式
- 适配器模式详解与应用
- 迭代器模式:理解与实践
- 模板方法设计模式理论与应用
- 快速理解工厂方法模式,及其在源码中的应用
-
每个程序员都要会Linux
- 作为一个后端开发,你需要了解多少Nginx的知识?
- 取经阿里十年技术大佬,得到Java线上问题排查攻略!
-
实战项目
-
基于SpringBoot和BootStrap的论坛网址
- 基于SpringBoot和BootStrap的全栈论坛网站
- (一):准备阶段
- (二):后端人员如何快速使用BootStrap
- (三):登陆注册以及cookies的功能完成
- (四):完成问题发布功能
- (五):完成首页展示以及分页功能
- (六):完成个人中心、问题详情和问题编辑
- (七):完成回复和二级回复功能
- (八):完成回复通知的功能
-
搭建基于SpringBoot的秒杀后台项目
- (一):项目准备
- (二):快速搭建一个SpringBoot项目
- (三):首页、详情页编写
- (四):雪花算法生成订单号以及抢购功能实现
- (五):基于Shiro的人员登陆认证
- (六):使用RabbitMQ让订单指定时间后失效
- (七):高并发导致超卖问题分析处理
- (八):通过分布式锁解决多线程导致的问题
-
基于SpingBoot开发的小功能
- 基于SpringBoot和Redis实现短信验证码功能
- 基于SpringBoot实现文件的上传下载
- 一步步教你如何在SpringBoot项目中引入支付功能
- 基于SpringBoot实现文件的上传下载
-
-
开发经验大全
- 一个包含多种Get请求和Post请求的工具类
- 如何用Java写一个规范的http接口?
- 一个成熟的Java项目如何优雅地处理异常
- 项目经理最近感觉系统慢了,想知道整个系统每个方法的执行时间
- 财务说账单上少了一分钱,老板看到代码气疯了
- 浅析五种最常用的Java加密算法,以后可以直接拿来用了
- 你真的会用idea进行debug吗?idea实用debug教程
- 还不知道项目中怎么写日志?slf4j+log4j帮你搞定!
- 如何在工作中快速上手Git
- 号称"最强API文档工具"的Swagger到底厉害在哪
- 分享工作一年后收藏的超好用Idea插件,工作效率直接翻倍
- 怎样才能写出规范的好代码?
- 如何上传自己的jar包到maven中央仓库(2021最新版)
- 使用Optional更优雅地处理非空判断
- 查准考证网站卡了整整一个小时进不去,被抢票支配的恐惧又来了
- 线上报了内存溢出异常,又不完全是内存溢出
-
我的程序人生
- 作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
- 应届毕业生因为疫情休息在家,可以通过哪些途径提高自己?
- JAVA实习生刚进公司主要做些什么?以及进入职场后我的心理变化
- 工作中只需要增删改查的程序员,别安于现状
- 坚持写技术博客,我得到了什么?
- 从考研失败到最具成长力员工,这个2020就像过山车一样
- 今天不聊技术,谈谈我眼中的程序员到底是个怎样的职业
- 平稳运行半年的系统宕机了,记录一次排错调优的全过程!
- 裸辞后,我更加自律了
- 谈谈我裸辞以及一周内找到工作的经历
- 软件行业和互联网行业究竟有什么区别?又该如何去选择?
- 1到3年的Java开发工程师应该如何准备面试
- 互联网公司的完整开发流程是怎样的?
祝福
我一直相信一句话,你会累是因为你在走上坡路,希望我的这个系列文章能够帮助到点开的你