javastack
javastack copied to clipboard
Java技术栈,分享最主流的 Java 技术。
说明
可能有些人还不明白:
- 学 Java 到底该学什么?
- 现在市面上都流行什么技术?
- Java 面试都问些什么问题?
- 有什么汇总之类的教程?
带着这几个问题,栈长在这里整理了大量主流的 Java 系列文章和教程,供你学习、工作、面试复习参考。
大多内容为栈长原创,首发自微信公众号:Java技术栈,这些内容在Java技术栈公众号菜单中都有作分类整理,如果你想在微信上阅读,也可以关注微信公众号,在微信上阅读体验更好,也方便随时随地手机查阅,微信公众号第一时间更新。
扫一扫关注微信公众号:
另外,教程会在Java技术栈官方博客中同步更新。
本文会定期更新,欢迎 Star。
目录分类
点击快速跳转分类文章:
-
Java
- 基础
- 集合
- 多线程
- JVM
- IO
-
新特性
-
Java8
- Stream
- Java9
- Java10
- Java11
- Java12
-
Java8
- 进阶
-
后端技术
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- MyBatis
- Docker
- Dubbo
- Elasticsearch
- Elastic Job
- JWT
- Netty
- Shrio
- Tomcat
- Zookeeper
- 开源框架
- 日志
-
消息队列
- Kafka
- 缓存
- 连接池
- 综合技术
-
数据库
- MySQL
- Redis
- MongoDB
- 分布式技术
- 架构
- 设计模式
- 数据结构 & 算法
- 规范
- 安全漏洞
- 性能优化
- 行业动态
- Linux
- 区块链
-
工具
- Eclipse
- Intellij IDEA
- Git
- Maven
- Swagger
- 效率
- 工具类
- 面试
- 程序人生
- 资料
- 其他
Java
基础
- Java 中的基本数据类型转换详解
- StringBuffer 和 StringBuilder 的 3 个区别
- switch case 支持的 6 种数据类型!
- switch多值匹配骚操作,带你涨姿势!
- 一张图搞清楚Java异常机制
- 你真的搞懂 transient 关键字了吗?
- 关于 Java 序列化你不知道的 5 件事
- 关于Java序列化你应该知道的一切
- 坑爹的 Java 可变参数,把我整得够惨。
- 字符串拼接 + 和 concat 的区别
- 常见的 3 种 Class 级别的错误
- 深入浅出 Java 中的包装类
- 通用唯一标识码 UUID 的介绍及使用。
- 10 个深恶痛绝的 Java 异常。
- Java Base64 编码解码方案总结
- Java Jar包压缩、解压使用指南
- Java 父类强制转换子类原则
集合
- Java 中初始化 List 集合的 6 种方式!
- HashMap 和 Hashtable 的 6 个区别
- HashMap, ConcurrentHashMap 原理及源码
- Hashtable 为什么不叫 HashTable?
多线程
- i++ 是线程安全的吗?
- Java 多线程 join 使用及原理
- Java 多线程可以分组,还能这样玩!
- Java 虚拟机对锁优化所做的努力
- sleep( ) 和 wait( ) 的这 5 个区别,你知道几个?
- Synchronized 与 ReentrantLock 的区别!
- Synchronized 有几种用法?
- 一文搞懂 Java 线程中断
- 出场率比较高的一道多线程安全面试题
- 到底什么是重入锁,拜托,一次搞清楚!
- 多线程 start 和 run 方法到底有什么区别?
- 多线程 Thread.yield 方法到底有什么用?
- 多线程通信的三大法器,你真的会用吗?
- 并行任务执行神器 Fork & Join 实战
- 教你如何监控 Java 线程池运行状态
- 线程休眠只会用Thread.sleep?那就弱爆了!
- 面试官问线程安全的List,看完再也不怕了!
JVM
- JVM运行时区域详解
IO
待更新……
新特性
- Java 5 ~ 10 新特性倾情整理!
Java8
- Java8 新特性之Lambda表达式
- Java8 新特性之Optional
- Java8 新特性之函数式接口
- Java8 新特性之接口默认方法与静态方法
- Java8 新特性之方法引用
- Java8 新特性之重复注解
- Java8 之新特性扩展篇
Stream
- Java 8 新特性之Stream流
- Java 8 创建 Stream 的 10 种方式,我保证你受益无穷!
- Java 8 新特性之 Stream 流(一)基础体验
- Java 8 新特性之 Stream 流(七)流与迭代器,流系列大结局!
- Java 8 新特性之 Stream 流(三)缩减操作
- Java 8 新特性之 Stream 流(二)关键知识点
- Java 8 新特性之 Stream 流(五)映射
- Java 8 新特性之 Stream 流(六)收集
- Java 8 新特性之 Stream 流(四)并行流
Java9
- Java9 简化流关闭新姿势。
Java10
- Java 10 局部变量类型推断介绍及实战
- Java 10 的 10 个新特性,将彻底改变你写代码的方式
Java11
- Java 11 已发布,String 还能这样玩!
- Java 11 正式发布,这 8 个新特性教你写出更牛逼的代码
Java12
- Java 12 骚操作, String居然还能这样玩!
- Java 12 骚操作, switch居然还能这样玩!
- Java 12 骚操作, 文件比对居然还能这样玩!
进阶
- hashCode 和 identityHashCode 的区别你知道吗?
- Java 中的 6 颗语法糖
- Java 中的 String 真的是不可变吗?
- Java 中的伪共享详解及解决方案
- Java 中的宏变量,宏替换详解。
- Java 中获取类名的三种方法,你知道几种?
- Java 对象引用四个级别(强、软、弱、虚)
- Java 异常处理 10 个最佳实践
- Java 类初始化顺序,3个示例带你躺坑。
- Java 自定义 ClassLoader 实战
- 不能用 + 拼接字符串? 这次我要吊打面试官!
- 别再写 bug 了,避免空指针的 5 个案例!
- 字符串 substring 方法在 JDK 6,7,8 中的差异。
- 神奇,教你用随机数打印hello world
- 金融系统中正确的金额计算及存储方式
- 面试问我 Java 逃逸分析,瞬间被秒杀了。
后端技术
Spring
- Spring 事务失效的 8 大原因,这次可以吊打面试官了!
- Spring Aware 容器感知技术
- Spring Enable 高级应用及原理
- Spring import 配置文件使用占位符
- Spring 开启方法异步执行
- Spring 快速开启计划任务
- 终于,Spring 5.0 正式发布了!
Spring MVC
- Spring MVC 常用注解
- Spring MVC 表单防重复提交
- Spring MVC 表单验证器
Spring Boot
- Spring Boot 2.2.2 发布,新增 2 个新特性!
- Spring Boot 2.2.1 发布,一个有点坑的版本!
- Spring Boot 2.2 增加了一个新功能,启动飞起~
- Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
- Spring Boot 2.1.0 已发布,7 个重大更新!
- Spring Boot 2.0 正式发布!
- Spring Boot 1.5.10 发布:修复重要安全漏洞!!!
- Spring Boot 2.x 与 1.x 的区别,以及如何做版本迁移
- Spring Boot 2.x 启动全过程源码分析(上)入口类剖析
- Spring Boot 2.x 启动全过程源码分析(下)运行方法剖析
- Spring Boot Debug调试,日后必定有用!
- Spring Boot Profile 配置详解
- Spring Boot Runner启动器
- Spring Boot Server容器配置
- Spring Boot Starters启动器
- Spring Boot YML 掀翻 Properties!!
- Spring Boot 主类及目录结构介绍
- Spring Boot 之配置导入,强大到不行!
- Spring Boot 功能实战
- Spring Boot 单元测试详解+实战教程
- Spring Boot 发布将 jar 包转为 war 包。
- Spring Boot 发邮件,1 分钟教会你
- Spring Boot 国际化支持
- Spring Boot 定制启动图案
- Spring Boot 实现热部署
- Spring Boot 应用 10 种保护绝佳方法
- Spring Boot 开启的2种方式
- Spring Boot 怎么打一个可执行 Jar 包?
- Spring Boot 排除自动配置的 4 种方法,关键时刻很有用!
- Spring Boot 支持 HTTPS 如此简单,So easy!
- Spring Boot 整合Thymeleaf模板引擎
- Spring Boot 日志集成
- Spring Boot 是什么?
- Spring Boot 最核心的 25 个注解,都是干货!
- Spring Boot 最核心的 3 个注解详解
- Spring Boot 构造器参数绑定,越来越强大了!
- Spring Boot 核心配置
- Spring Boot 注册 Servlet 的三种方法,真是太有用了!
- Spring Boot 的 10 个核心模块
- Spring Boot 真是个牛逼货!
- Spring Boot 自动配置原理、实战
- Spring Boot 自定义日志详解
- Spring Boot 读取配置的几种方式
- Spring Boot 运行应用的 3 种方式
- Spring Boot 返回 JSON 数据,一分钟搞定!
- Spring Boot 返回 XML 数据,一分钟搞定!
- Spring Boot 配置加载顺序
- Spring Boot 配置加载顺序详解。
- Spring Boot 配置文件 bootstrap vs application 到底有什么区别?
- Spring Boot 配置随机数技巧
- Spring Boot 集成Mybatis双数据源
- Spring Boot 面试,一个问题就干趴下了!
- Spring Boot 面试,一个问题就干趴下了!(下)
- 公司不用 Spring Boot,果断离职了!
- 年轻人的第一个 Spring Boot 应用,太爽了!
- 年轻人的第一个自定义 Spring Boot Starter!
Spring Cloud
- Spring Cloud 是什么?
- Spring Cloud Greenwich.SR4 发布了,跟不上了……
- Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝。。
- Spring Cloud 升级最新 Greenwich 版本,舒服了~
- Spring Cloud 升级最新 Finchley 版本,踩了所有的坑!
- Spring Cloud Finchley 正式发布,包含 4个重大更新!
- Spring Cloud Eureka 常用配置详解,建议收藏!
- Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!
- Spring Cloud Eureka 注册安全一定要做到位!
- Spring Cloud Eureka 自我保护机制
- Spring Cloud Eureka 自我保护机制实战分析
- Spring Cloud Gateway VS Zuul 比较,怎么选择?
- Spring Cloud 多版本管理那些事。
- Spring Cloud 如何动态刷新 Git 仓库配置?
- Spring Cloud @RefreshScope 原理是什么?
- Spring Cloud 服务安全连接
- Spring Cloud 注册中心高可用搭建
- Spring Cloud 配置中心内容加密
- Spring Cloud 配置中心客户端读取配置
- Spring Cloud 配置中心高可用搭建
- Spring Cloud Alibaba Sentinel 整合 Feign 的设计实现
- 凉凉了,Eureka 宣布停更,Spring Cloud 何去何从?
- 厉害了,Spring Cloud for Alibaba 来了!
MyBatis
- MyBatis 传递多个参数的 4 种方式
- 推荐一款 MyBatis 开发神器,为简化而生!
Docker
- Docker核心概念、安装、端口映射及常用操作命令。
Dubbo
- Dubbo & Spring Boot 要来了
- 厉害了,Dubbo 正式毕业!
- 惊艳,Dubbo域名已改,也不再局限于Java!!
- 重大利好,Dubbo 3.0要来了。
Elasticsearch
待更新……
Elastic Job
- Elastic Job - 分布式作业调度解决方案
- 分布式作业 Elastic Job 如何动态调整?
- 分布式作业 Elastic-Job 快速上手指南!
JWT
- JWT - 服务端信息传输安全解决方案。
- JWT 生成Token及解密实战。
Netty
- 为什么 Netty 这么火?与 Mina 相比有什么优势?
Shrio
- 10 分钟快速上手 Shiro 新手教程
- Shiro Realm 权限的验证流程和缓存机制
- 一文搞定 Spring Boot & Shiro 实战
- 非常详尽的 Shiro 架构解析
Tomcat
- Tomcat Get 请求的坑!
- Tomcat 集群 session 复制与 Oracle 的坑。。
- 一分钟开启 Tomcat https 支持
Zookeeper
- Zookeeper 集群安装配置,超详细!
开源框架
- 2019 好戏连连,阿里又开源了一个分布式事务框架!
- 腾讯,排行前10的开源项目
- 阿里启动新项目:Nacos,比 Eureka 更强!
- 阿里巴巴,排行前 10 的开源项目
日志
- Java 正确获取客户端真实 IP 方法整理
- Java 程序如何正确的打日志
- 坑爹的日志无法按天切割问题!
- 日志打印的 8 种级别,很详细
消息队列
Kafka
- Spring Boot & Kafka 实战
- 告诉你,Kafka 是个牛逼货!
- 为什么高并发需要用消息队列?
- 消息中间件如何选型?
缓存
- 缓存雪崩,穿透,预热,热备都是什么鬼?
连接池
- Druid - 目前最好的连接池
- 一次 Druid 连接池泄露引发的血案。。
- 阿里 Druid 连接池的坑。。
- 阿里 Druid 连接池监控的两个坑
综合技术
- 2018最新后端开发人员的路线图
- Java Cookie 增删改查操作。
- Java 接入 Google 身份验证器实战
- Java 程序员必备的 15 个框架,前 3 个地位无可动摇!
- SaaS,PaaS,IaaS都是什么鬼?
- 一个比 Spring Boot 快 44 倍的 Java 框架!
- 什么是 CPU 密集型、IO密集型?
- 什么是Kotlin?Java的替代语言?
- 参数验证 @Validated 和 @Valid 的区别
数据库
MySQL
待更新……
Redis
- Redis是什么?4大优势,必学中间件!
- Redis 的 8 大应用场景!
- Redis Linux 安装运行实战全记录
- 超详细的 Redis Cluster 官方集群搭建指南
- Redis 再牛逼,也得设置密码!!
- Redis 如何分析慢查询操作?
- Redis 常用操作命令,非常详细!
- Redisson - Redis官方推荐的分布式协调客服端
- Spring Boot Redis Cluster 实战干货
- Spring Data Redis 详解及实战一文搞定
- 一个致命的 Redis 命令,导致公司损失 400 万!!
MongoDB
- 什么是 MongoDB
- MongoDB 删除数据用法
- MongoDB 安装、配置、启动、连接
- MongoDB 插入数据用法
- MongoDB 数据库与集合特性
- MongoDB 更新数据用法
- MongoDB 查询数据用法
- MongoDB 索引篇
- MongoDB 集成到SpringBoot
- MongoDB 从Oracle导入数据
分布式技术
- 到底什么是分布式系统?
- 分布式 ID 生成器的解决方案总结
- 分布式 Session 共享解决方案
- 分布式服务防雪崩熔断器,Hystrix 理论实战。
- 分布式系统中处理参数配置的 4 种方案
- 分布式系统架构常识:CAP理论。
架构
- 一张图告诉你为什么是服务网关
- 一张图告诉你什么是系统架构师
- 到底什么是跨域?附解决方案!
- 服务降级的概念及应用手段
- 服务高可用:幂等性设计
- 架构师必须掌握的 10 条设计原则
- SLA 服务可用性 4 个 9 是什么意思?怎么达到?
- 自从用了灰度发布,睡觉真香!
设计模式
待更新……
数据结构 & 算法
- 常用缓存淘汰算法详解
- 接口限流算法:漏桶算法 & 令牌桶算法。
- 浅析负载均衡的 6 种算法,Ngnix 的 5 种算法。
- 递归算法介绍及 Java 应用实战
规范
- 疯了!同事又问我为什么不能用 isXXX
- 阿里巴巴制定了这 16 条设计规约!
安全漏洞
- JDK 紧急漏洞,XMLDecoder反序列化攻击
- Slow HTTP POST 慢速攻击
- 会话固定攻击漏洞(session fixation attack)
性能优化
- 44 个 Java 代码性能优化总结
- 90 % Java 程序员被误导的一个性能优化策略
- 8 条关于 Web 前端性能的优化建议
- 网站性能测试指标详解
行业动态
- GitHub for mobile 来了,码农苦逼了!
- 全球 IPv4 地址正式耗尽
- 今天是 Java 诞生日,Java 24 岁了!
- 6月来了,Java还是第一!
- Elastic Search 上市了,市值翻倍,这群人财务自由了!
- Hystrix 停止开发,Spring Cloud 何去何从?
- Java 11 快要来了,编译 & 运行一个命令搞定!
- Java 13 发布了!
- Java 9 被无情抛弃,Java 8 直接升级到 Java10!!
- Java 序列化技术即将被废除!!!
- Junit5 新功能一览
- 天了噜,Java 8 要停止维护了!
- 屌炸天,Oracle 发布了一个全栈虚拟机!
- 恭喜微微软喜当爹,Github 嫁入豪门。
- 新年放大招:Github 私库免费了!
- Eclipse 代替 Oracle 接管 Java EE
Linux
- Java程序员必须掌握的常用Linux命令。
- 开放端口命令
区块链
- 2017 双11:区块链在阿里巴巴天猫中的应用
- 中山大学深圳研究院“智能金融和区块链技术”论坛(理论+实战PPT)
- 什么是以太坊?
- 什么是共识机制?
- 以太坊私有链搭建
- 区块链怎么学习?
工具
Eclipse
- 10 个 Eclipse 珍藏插件推荐
- Eclipse 最常用的 10 组快捷键!
Intellij IDEA
- IDEA 公司推出新字体,极度舒适~
- Intellij IDEA 智能补全的 10 个姿势,太牛逼了。。
- Intellij IDEA 最头大的问题,如何自定义注释模板?
- Intellij IDEA 最新乱码解决必杀技
- Intellij IDEA 最蛋疼的 10 个问题!
- Intellij IDEA 阅读源码的 4 个绝技!
Git
- Git SSH 连接方式配置
- Git 仓库操作命令
- Git 分支管理
- Git 提交记住用户名和密码
- Git 文件操作命令
- Git 的安装配置
- Git 的这个神技,学会爽歪歪~
- 一文告诉你如何导出 Git 变更文件
- 推荐一个实用的 .gitignore 文件
Maven
- Maven classifier 元素妙用
- Maven Optional & Exclusions使用区别
- Maven 如何发布 jar 包到 Nexus 私库
- Maven 远程仓库地址
Swagger
- Spring Boot 集成 Swagger,生成接口文档就这么简单!
- 推荐一款接口 API 设计神器!
效率
- 3种骚操作,教你查看 Java 字节码!
- 推荐一个在线创作流程图、思维导图软件
- 推荐一款代码神器,代码量至少省一半!
- 推荐一款阿里开源的 Java 诊断工具,好用到爆!
- 神器,阿里巴巴 Java 代码检查插件
工具类
- Java界的瑞士军刀,无法想象的轻量级工具包
- 排名前 16 的 Java 工具类
面试
- 10 道腾讯的 Java 面试题
- 18 道 Java 基础面试笔试题
- 75 道 BAJT 中高级 Java 面试题,你能答上几道?
- Java 中创建 String 的两道面试题及详解
- Java 面试题经典 77 问(含答案)!
- Redis 面试题 50 问,史上最全。
- 为什么面试你要25K,HR只给你20K?
- 为什么面试完,总是让你回去等通知?
- 去 BAT 面试完的 MySQL 面试题总结
- 史上最全 40 道 Dubbo 面试题及答案!
- 史上最全 Java 多线程面试题及答案
- 史上最全 Javascript 面试题及答案
- 史上最全阿里 Java 面试题总结
- 吐血整理 20 道 Spring Boot 面试题!
- 周末去面试,进去 5 分钟就出来了…
- 程序员如何面对 HR 面试的 40 的问题!
- 通往大神之路,百度Java面试题前 200 页。
- 阿里巴巴高级 Java 面试题 70 道
- 面试一个 3 年 Java 程序员,一个问题都不会!
程序人生
- 10年老兵给程序员的 10 条建议!
- IG赢了,微博挂了
- 一个程序员的国庆血泪相亲史,惨败而归…
- 为什么公司宁愿 25K 重新招人,也不给你加到 20K?
- 从 0 开始搭建一个技术博客,私藏干货~
- 年底了,是时候做个了断了。。。
- 微博什么技术啊……还说支持八个明星并发出轨,结果…
- 毕业不到一年,绩效打了个D!
- 相亲无数,全靠招数
- 程序猿,你工作几年了?
- 聊聊我面试过的一个最奇葩的 Java 程序猿!
- 过了所有技术面,却倒在 HR 一个问题上。。
- 过年回家,程序猿最怕的 5 件事,深有感触。
资料
- 《全球架构师峰会》参会回来,想和大家分享下
其他
- 代码写成这样,老夫无可奈何!
- 写完这段代码,就被开除了……
- 刚写完排序算法,就被开除了…
- 20200202,千年难遇啊!
结束语
不定期陆续更新中……
希望大家能真正学到东西,有错误之处,欢迎提出。
如果你想投稿贡献、转载,关注微信公众号了解详情,关注微信公众号,最新干货,第一时间推送。