MarkerHub公众号文章索引
梳理Java知识,解析开源项目! 公众号【MarkerHub】的文章分类索引,直联公众号文章链接!
扫码关注公众号,学习Java,在MarkerHub!
基础知识
基础中基础
- 从输入URL到页面展示到底发生了什么
- 终于明白为什么要加 final 关键字了!
- 面试官:BigDecimal一定不会丢失精度吗?
- 聊一聊Java 泛型中的通配符 T,E,K,V,?
- 前方高能!如何自己手写一个热加载!
- 为什么重写了equals()也要重写hashCode()
- 面试官欺负人:new Object()到底占用几个字节?
- 超细!在浏览器输入xxxhub 回车之后发生了什么?
- PO、VO、DAO、BO、DTO、POJO能分清吗?
- 为什么我不建议你用去 “ ! = null " 做判空?
- Java 泛型 T,E,K,V,?,傻傻分不清?
- 面试官:String长度有限制吗?是多少?
- 傻傻分不清之 Cookie、Session、Token、JWT
- 又一个难题!Java序列化和反序列化为什么要实现Serializable接口
- 谈谈在Java中如何优雅地判空
- 懵!啥是Java软引用、弱引用、虚引用?
- 为什么Java中1000==1000为false,而100==100为true?
- StringBuider 在什么条件下、如何使用效率更高?
- 浅析 VO、DTO、DO、PO 的概念、区别和用处!
Java特性
- 感受lambda之美,推荐收藏,需要时查阅
- 来了来了,Java14它真的来了!
- 别用Date了,Java8新特性之日期处理,现在学会也不迟!
- 一次List对象去重失败,引发对Java8中distinct()的思考
- 还在用if(obj!=null)做非空判断?带你快速上手Optional实战性理解!
- 1万七千字精讲,JDK8 的 Lambda、Stream、LocalDate 骚技能
- Lambda表达式入门,看这篇就够了!
- 从LocalDateTime序列化探讨全局一致性序列化
工具集
- 通俗易懂讲布隆过滤器
- 只需要这三步,用Java也能图片识别
- JAVA实现PDF和EXCEL生成和数据动态插入以及导出
- Excel大批量数据的导入和导出,如何做优化?
- 4次迭代!10w行级别数据的Excel导入优化记录
- 两难!到底用Apache BeanUtils还是Spring BeanUtils?
- 好用到爆的 Java 技巧
框架集合
HashMap
- 图文并茂,HashMap经典详解!
- 面试官: HashMap 为什么线程不安全?
- 精髓!Java中遍历Map集合的五种方式
- 面试:如何从 100 亿 URL 中找出相同的 URL?
- 面试官:为什么 HashMap 的加载因子是0.75?
设计模式
JDK
框架知识
Spring & SpringMVC
- 面试问烂的 Spring AOP 原理、SpringMVC 过程
- Spring系列最全 69 道 面试题和详解
- 9 种设计模式在 Spring 中的运用,一定要非常熟练!
- Spring 和 Spring Boot 最核心的 3 大区别,详解!
- Spring IOC 知识点总结
- Spring Validation最佳实践及其实现原理,参数校验没那么简单!
- Spring 中的bean 是线程安全的吗?
- Spring如何实现AOP,请不要再说cglib了!
- Spring容器IOC初始化过程--今天终于进行总结了
- 图解Spring解决循环依赖,认清IOC!
SpringBoot
- Spring MVC 到 Spring BOOT的简化之路
- 给你一份SpringBoot知识清单
- 发现mybatis plus的牛逼,解决单表操作!
- 为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow
- 使用 SpringBoot2.X 实现 Quartz 动态任务的分布式调度
- SpringBoot-Vue 前后端分离开发首秀
- Spring Boot 2 + Spring Security 5 + JWT 的单页应用 Restful 解决方案
- SpringBoot 全局日期格式化(基于注解)
- Spring cache整合Redis,并给它一个过期时间!
- 小白教程,Springboot项目搭建(前端到数据库,超详细)
- 深度解析 Spring Boot 以及手写一个 starter
- 一个 SpringBoot 项目该包含哪些?
- SpringBoot集成Swagger-Bootstrap-UI,页面更清爽!
- 3W 字的 Spring Boot 超详细总结
- Spring Boot 无侵入式 实现 API 接口统一 JSON 格式返回
- 总在说SpringBoot内置了tomcat启动,那它的原理你说的清楚吗?
- Spring Boot 注解大全,一键收藏了!
- SpringBoot封装我们自己的Starter
- Up主发表新教程啦,SpringBoot入门到精通!
- Spring Boot 最流行的 16 条实践解读,值得收藏!
Mybatis
- 为啥mybatis的mapper只有接口没有实现类,但它却能工作?
- 自己手写一个Mybatis框架(简化)
- MyBatis的底层实现原理!是动态代理的运用~
- 超全 MyBatis 动态 SQL 详解!(看完 SQL 爽多了)
- MyBatis 的执行流程,写得太好了!
- Mybatis接口Mapper内的方法为啥不能重载?
- 新技能 MyBatis 千万数据表,快速分页!
- 阿里巴巴的持久层抛弃了hibernate,采用的却是MyBatis框架。。
- mybatis的mapper为啥只有接口没有实现类,它却能工作?
- 解放双手,不写SQL!一个开源mybatis神器
SpringCloud
- 从 Spring Cloud 看一个微服务框架的「五脏六腑」
- 狠人 Spring Cloud 20000 字总结!
- Spring Cloud架构的各个组件的原理分析
- SpringCloud常见面试题(2020最新版)
Shiro
- SpringBoot 整合Shiro实现动态权限加载更新+Session共享+单点登录
- 理解这9大内置过滤器,才算是精通Shiro
- 只需要6个步骤,springboot集成shiro,并完成登录
- 极简入门,Shiro的认证与授权流程解析
- 并不复杂,只需4步搞定Shiro集成redis实现会话共享
- 权限管理系统之集成Shiro实现登录、url和页面按钮的访问控制
- Up主新教程,Shiro入门到精通!
Spring Security
- SpringBoot 并发登录人数控制
- Spring Boot 2 + Spring Security 5 + JWT 的单页应用 Restful 解决方案
- 详细!SpringBoot整合SpringSecurity实现JWT认证
- SpringSecurity + JWT,从入门到精通!
- 用Spring Security, JWT, Vue实现一个前后端分离无状态认证Demo
定时任务
前后端分离
- Springboot + Vue + shiro 实现前后端分离、权限控制
- 前、后端分离权限控制设计与实现
- 从入门到运用,Jwt其实并不难!
- Spring Boot 解决跨域问题的 3 种方案!
- 推荐一个基于SpringBoot + Mybatis + Vue的代码生成器
- 前后端分离后,如何定义接口规范~
- 动手实践!从零开始实现Springboot+Vue登录
- Spring Boot 2 + Spring Security 5 + JWT 的单页应用 Restful 解决方案
- Vue项目使用拦截器和JWT验证 完整案例
- 记一次Spring boot 和Vue前后端分离的入门培训
- 一篇来自前端同学对后端接口的吐槽
并发知识
- 请谨慎使用Arrays.asList、ArrayList的subList
- 为什么阿里巴巴要禁用Executors创建线程池?
- 面试官问:高并发下,你都怎么选择最优的线程数?
- 线程异常如何处理?试试这样
- Spring / Spring boot 异步任务编程 WebAsyncTask
- 面试官:Thread.sleep(0) 有什么用?
- 什么时候线程不安全?怎样做到线程安全?怎么扩展线程安全的类?
中间件
mysql
- 一次非常有意思的 SQL 优化经历: 从 30248.271s 到 0.001s
- 记住:永远不要在 MySQL 中使用 UTF-8
- 一千行 MySQL 详细学习笔记(值得学习与收藏)
- SQL 性能优化,太太太太太太太有用了!
- 少侠!如何写一手好 SQL ?
- 一个比 c3p0 快 200 倍的数据库连接池,这么牛?
- SQL的各种连接Join详解,都需要熟练掌握!
- 除了不要 SELECT _ ,数据库还有哪些技巧
- 你写的 SQL 为啥执行这么慢 ?
- 刚入职一周的小姐姐问我,delete、truncate、drop 的区别有哪些,该如何选择?
- 为什么不建议在 MySQL 中使用 UTF-8?
- 求求你别再用offset和limit分页了
- delete后加 limit是个好习惯么
- 面试官问:MySQL 的自增 ID 用完了,怎么办?
- 为什么大家都说SELECT * 效率低
- 为什么MySQL不推荐使用uuid或者雪花id作为主键?
- 15000 字的 SQL 语句大全
- 数据量很大,分页查询很慢,有什么优化方案?
- SQL查找是否"存在",别再count了,很耗费时间的
- mysql数据库时间类型datetime、bigint、timestamp的查询效率比较
- 是真的猛!SQL 语法速成手册
RabbitMq
- springboot + rabbitmq发送邮件(保证消息100%投递成功并被消费)
- 基于消息中间件RabbitMQ实现简单的RPC服务
- RabbitMQ 死信机制真的可以作为延时任务这个场景的解决方案吗?
- 非常强悍的 RabbitMQ 总结,写得真好!
- 再见,Kafka!RocketMQ已成气候!
Zookeeper
Nginx
Kafka
redis
- 我是如何用 redis 做实时订阅推送的
- 如何保证缓存与数据库的双写一致性?
- Redis 是如何实现点赞、取消点赞的?
- 我才懂!SpringBoot的StringRedisTemplate与RedisTemplate的序列化策略有啥不同~
- SpringBoot整合redisson实现分布式锁
- Spring cache整合Redis,并给它一个过期时间!
- 点赞功能,用mysql还是redis?
- 关于Redis缓存,这三个问题一定要知道!
- 请勿过度依赖Redis的过期监听
- 你的Redis为什么变慢了?
- 总结!数据库缓存最终一致性的四种方案
elasticsearch
- 很全很牛逼,看完这篇Elasticsearch实战,我觉得我可以写个百度~
- 原来 Elasticsearch 还可以这么理解
- SpringBoot整合Elastricsearch + LogStash + Kibana太简单了!
- 八年踩坑经验告诉你,搜索引擎哪家强!
- MySQL用得好好的,为什么要转ES?
网络编程
websocket
- 从理论到综合实例,终于弄懂了双工通讯协议websocket!
- 使用spring boot+WebSocket 实现定时消息推送(基于注解)
- 传统@ServerEndpoint方式开发WebSocket应用和SpringBoot构建WebSocket应用程序
HTTP
- HTTP客户端连接,选择HttpClient还是OkHttp?
- 我终于决定要放弃okhttp、httpClient,选择了这个牛逼的神仙工具!贼爽
- 终于有人把 HTTPS 原理讲清楚了!
- GET 和 POST请求的本质区别是什么?原来我一直理解错了
- 我为什么放弃RESTful,全面拥抱GraphQL
- 用了HTTPS就安全了吗?HTTPS 会被抓包吗?
- GET 和 POST请求的本质区别是什么?原来我一直理解错了
- 完美,竟然用一个脚本就把系统升级到https了,且永久免费!
- 一款直击痛点的优秀http框架,让我超高效完成了第三方接口的对接
工具插件
IDEA
- 是时候扔掉Postman了,又一个被低估的IDEA插件出来了...
- 教你一招 IDE 中比较骚的操作技巧!
- 是时候扔掉 Postman 了,试试 IntelliJ IDEA 自带的高能神器!
- 推荐几个IDEA插件,Java开发者撸码利器
- IDEA 调试技巧,比 Eclipse 强太多了!
- IntelliJ IDEA 超全优化设置,效率杠杠的!
github
项目解读
- 必读经典项目,web开发框架renren-fast项目解读
- 基于Jwt资源无状态认证权限管理系统bootshiro项目分析
- SpringBoot 微信点餐开源系统
- 【项目实践】SpringBoot三招组合拳,手把手教你打出优雅的后端接口
- SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
原创项目
eblog
- 开源博客项目eblog完整搭建教程!
- (eblog)1、Github上最值得学习的Springboot开源博客项目!
- (eblog)2、小Hub手把手教你如何从0搭建一个开源项目架构
- (eblog)3、整合Redis,以及项目优雅的异常处理与返回结果封装
- (eblog)4、用Redis的zset有序集合实现一个本周热议功能
- (eblog)5、自定义Freemaker标签实现博客首页数据填充
- (eblog)6、博客分类填充、登录注册逻辑
- (eblog)7、博客发布收藏、用户中心的设置
- (eblog)8、消息异步通知、细节调整
- (eblog)9、博客搜索引擎开发、后台精选
- (eblog)10、即时群聊开发,聊天记录等
- 11、eblog项目讲解视频上线啦,长达17个小时!!
vueblog
其他项目
- 又一经典开源项目Guns完全解读,小Hub好棒!
- 基于Jwt资源无状态认证权限管理系统bootshiro
- 用Java实现天天酷跑(附源码),这个真的有点强了!
- 基于Spring Cloud微服务化开发平台Cloud-Platform完整解析
- 这是我读过写得最好的【秒杀系统架构】分析与实战!
面试心得
- 最近面试Java后端开发的感受
- 2019年最新的常问企业面试题大全以及答案
- 精选41 道 Spring Boot 面试题,附答案!
- 月薪10K、15K、20K的Java程序员分别需要掌握哪些技术?
- 面试时写不出排序算法?看这篇就够了
解决方案
高并发
分库分表、多数据源
- sharding jdbc + mybatis +spring boot的分库分表实现
- Springboot整合多数据源以及多数据源中的事务处理(附源码)
- 手把手带你用数据库中间件Mycat+SpringBoot完成分库分表
- SpringBoot+MyBatis+MySQL读写分离(实例)
- 分库分表【Sharding-JDBC】入门与项目实战
服务化
限流
- 高并发场景下限流,常见的限流算法、方案解析!
- 高并发之API接口,分布式,防刷限流,如何做?
- 图文并茂!微服务流控防护场景与应对措施
- 限流10万QPS、跨域、过滤器、令牌桶算法-网关Gateway内容都在这儿
搜索引擎
锁
高可用
架构设计
- 以淘宝网为例,解析大型Java项目架构演进
- 千万级 高并发 “秒杀” 架构设计(含源码)
- 重试机制!java retry(重试) spring retry, guava retrying 详解
- 从一个程序员的角度告诉你:“12306”有多牛逼?
分布式
业务设计
- 所谓代码生成,简单!我详细分析给你看!
- 手把手教你如何玩转统一异常处理
- springboot+redis+Interceptor+自定义annotation实现接口自动幂等
- 图片验证码的需求分析、优雅实现
- jwt思维导图,让jwt不再难懂
- 基于 token 的多平台身份认证架构设计
- 别在 Java 代码里乱打日志了,这才是打印日志的正确姿势!
- 如何优雅的设计java异常
- 超全面的权限系统设计方案!
- 从0到1,如何搭建一个好用的springboot开源项目
- 这么写参数校验(validator)就不会被劝退了~
- SpringBoot 中使用 @Valid 注解 + Exception 全局处理器优雅处理参数验证
- Java实现文件批量导入导出实践(兼容xls,xlsx)
- Springboot异常处理只会@ControllerAdvice+@ExceptionHandler?还远远不够!
- 为什么要前后端分离?这些接口规范你都懂吗?
- 如何设计 QQ、微信等第三方账号登陆 ?还要我说出数据库表设计!
- 写个日志请求切面,前后端甩锅更方便
- 万字长文教你如何干掉丑陋的try,catch,写出优雅的代码
- 内容分类扩展性标签设计
安全设计
- 你的登录接口真的安全吗?快看看你有没有中招!
- 搞一个短信验证码登录,难吗?
- 拒绝接口裸奔!开放API接口签名验证!
- Spring Validation最佳实践及其实现原理,参数校验没那么简单!
- 企业服务内部接口校验方案
单点登录
- 我去!原来单点登录这么简单,这下糗大了!
- SpringBoot 整合Shiro实现动态权限加载更新+Session共享+单点登录
- 一文搞懂主流的扫码登录技术原理
- 单点登录的三种实现方式,你会几种?
- 基于 token 的多平台身份认证架构设计
- SpringBoot 整合Shiro实现动态权限加载更新+Session共享+单点登录
- 微服务统一登陆认证怎么做?JWT ?
技术栈
单元测试
操作系统
Linux
- Linux最常用命令(简单易学,但能解决 95% 以上的问题)
- 史上最全的 Linux Shell 文本处理工具集锦,快收藏!
- 线上服务 CPU 又 100% 啦?一键定位 so easy!
- Vim 命令、操作、快捷键(收藏大全)
- ping 命令的七种用法,看完瞬间成大神
- 写给 Linux 初学者的一封信
- 面试被问:Thread.sleep(0) 到底有什么用?
- 牛逼!Linux命令速查手册出炉!
- 为什么建议大家使用 Linux 开发?爽(外加七个感叹号)
测试运维
运维
代码管理
Maven
Docker
- 终于有人把 Docker 讲清楚了,万字详解!
- 就几条命令,一键学会Docker部署SpringBoot项目
- 高中生也能读懂的Docker入门教程
- Docker部署SpringBoot的两种方法,后一种一键部署超好用!
- 教你三分钟用docker compose搭建一个自己的个人博客网站
- 手把手教你Docker+nginx部署Springboot+vue前后端分离项目
- 为什么不建议把数据库部署在docker容器内?
- Docker 实战总结(非常全面)
- 两小时入门 Docker(好文推荐)
- 还在手动部署springboot项目?不妨试试它,让你部署项目飞起来!
- 如何编写最佳的Dockerfile
持续交付
- 「Jenkins+Git+Maven+Shell+Tomcat持续集成」经典教程
- 一套基础自动化部署搭建过程
- SpringBoot项目打包+shell脚本部署实践,太有用了!
- 花30分钟,用Jenkins部署码云上的SpringBoot项目
- Shell脚本结合Git实现增量项目部署
攻击预防
其他
技术迭代
杂谈
- 如何写出让同事无法维护的代码?
- 比心!Java编程中,有哪些好的习惯从一开始就值得坚持?
- 程序员需知的 58 个网站
- 如何优雅地给妹子优化电脑(Windows)?
- 国内程序员最容易发音错误的单词集合
- 史上最污技术解读,我竟然秒懂了
- 新手也能看懂的源码阅读技巧
小Hub
扫码关注公众号,学习Java,在MarkerHub!