javastack icon indicating copy to clipboard operation
javastack copied to clipboard

Java技术栈,分享最主流的 Java 技术。

说明

可能有些人还不明白:

  • 学 Java 到底该学什么?
  • 现在市面上都流行什么技术?
  • Java 面试都问些什么问题?
  • 有什么汇总之类的教程?

带着这几个问题,栈长在这里整理了大量主流的 Java 系列文章和教程,供你学习、工作、面试复习参考。

大多内容为栈长原创,首发自微信公众号:Java技术栈,这些内容在Java技术栈公众号菜单中都有作分类整理,如果你想在微信上阅读,也可以关注微信公众号,在微信上阅读体验更好,也方便随时随地手机查阅,微信公众号第一时间更新。

扫一扫关注微信公众号:

另外,教程会在Java技术栈官方博客中同步更新。

本文会定期更新,欢迎 Star。

目录分类

点击快速跳转分类文章:

  • Java
    • 基础
    • 集合
    • 多线程
    • JVM
    • IO
    • 新特性
      • Java8
        • Stream
      • Java9
      • Java10
      • Java11
      • Java12
    • 进阶
  • 后端技术
    • 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,千年难遇啊!

结束语

不定期陆续更新中……

希望大家能真正学到东西,有错误之处,欢迎提出。

如果你想投稿贡献、转载,关注微信公众号了解详情,关注微信公众号,最新干货,第一时间推送。