> 文档中心 > 最新Java知识汇总(持续更新)

最新Java知识汇总(持续更新)

不积跬步无以至千里,本人从事Java开发多年,通过记录分享的形式,记录自己从事编程的一些心路历程和技术总结,希望能结交更多志同道合的朋友,个人见识有限,难免会有疏忽和错误之处,还望各位大佬能够指点迷津,感激不尽。
本文整理的Java知识汇总主要包括Java基础、Java进阶、数据库、JVM、消息队列、缓存、微服务与分布式、Java面试系列、高并发、数据结构与算法、计算机网络、开发工具、搜索引擎、大数据、团队管理、运维等。包含一个Java开发工程师所需的绝大多数知识。相信只要勤奋学习,每天进步一点点,各位大佬总有一天会成为飞过沧海横过大洋的海鸥。总结记录的同时,希望大家一起共同进步。

文章目录

    • Java基础
      • Java概述和常见Dos命令
      • Java环境搭建
      • Java基础语法
      • Java特性
      • 常用集合
        • List
          • ArrayList
          • LinkedList
        • Set
          • HashSet
          • LinkedHashSet
        • Map
          • HashMap
          • CurrentHashMap
          • CopyOnWriteArrayList
      • 常用API
        • Random类
        • String类
        • Arrays类
        • Math类
        • Object类
        • 时间处理
        • System类
        • StringBuffer、StringBuilder
        • Collections
        • fastjson
      • Java异常
      • 多线程
      • IO流
      • 网络编程
      • Java8新特性
    • Java进阶
      • Junit单元测试
      • 反射
      • 注解
      • JDBC
      • HTML和CSS
      • Request和Response
      • XML
      • Cookie和Session
      • Filter和Listener
      • 常用加解密
    • 数据库
      • MySQL
      • Oracle
    • JVM
    • 常用框架
      • Spring
      • Spring MVC
      • MyBatis
      • Spring JPA
      • SpringBoot
      • **Canal**
      • Dubbo
      • Shiro
      • Spring Security
      • MyCat
      • Tomcat
    • 设计模式
    • 消息队列
      • RabbitMQ
      • RocketMq
      • Kafka
    • Redis
    • 微服务与分布式
      • 服务注册发现
        • Nacos
      • 服务调用
      • 服务配置
      • 负载均衡
      • 服务限流
      • 熔断降级
      • 网关路由
      • 服务权限
      • 链路追踪
      • 分布式事务
    • Java面试系列
    • 低代码开发
      • activiti
    • 高并发
      • 线程池
      • JUC
      • 扩容
      • 缓存
      • 消息队列
      • 应用拆分
      • 应用限流
      • 服务降级
      • 分库分表
      • 高可用保证
    • 数据结构与算法
    • 开发工具
      • IntelliJ IDEA
      • Git
      • Navicat
      • Maven
      • Docker
      • postman
      • JMeter
      • Navicat
      • 服务器
        • Nginx
        • Tomcat
      • Windows操作
    • 搜索引擎
    • web端
    • 大数据
    • 团队管理
      • 文档管理
        • swagger
    • 运维
    • Linux
    • 开源项目推荐

Java基础

Java概述和常见Dos命令

常见Dos命令、Java历史、Java跨平台、第一个HelloWorld例子

Java环境搭建

Java环境搭建

Java基础语法

计算机存储单位转换(KB MB GB TB PB EB ZB)
常量和变量
Java的八种基本数据类型
数据类型转换
算数、赋值、比较、逻辑、三元运算符
方法的定义和调用
流程控制语句
Java数组详解

Java特性

Java类与对象详解
Java三大特性(一)—封装
Java三大特性(二)—继承
Java三大特性(三)—多态
Java中的接口详解
super和this关键字详解
群主发红包带你深入了解继承和super、this关键字
Java中的final关键字详解😁
final、finally、 finalize 有什么不同?
Java中的强引用、软引用、弱引用、幻象引用有什么区别和使用场景
Java中的四种权限修饰符
Java引用类型(class、interface)用法总结详解
内部类与匿名内部类详解
static关键字详解
Java中的泛型详解
Java中的拆箱与装箱

常用集合

Java中的Iterator迭代器详解
Java中的Collection集合
Java中的集合实现赌神、赌圣、赌侠斗地主

List

List集合和其子类ArrayList、LinkedList

ArrayList

ArrayList类基础使用
Java实现List中集合的元素进行排序
Java实现List集合去重的5种方式
List集合按照某个字段或者属性分组的两种方式

LinkedList

Set

HashSet
LinkedHashSet

Map

Map接口和其子类HashMap遍历、LinkedHashMap

HashMap
CurrentHashMap
CopyOnWriteArrayList

常用API

Base64和byte[]数组互转的两种方式

Random类

Random类常用的方法和使用

String类

String类常用方法

Arrays类

Math类

Math常用的数学运算(包括取整、取绝对值、保留几位小数等)

Object类

Java顶层类Object类(toString、equals)

时间处理

时间处理:当天早上七点到第二天早上七点 置成当天的23:59:59
日期工具类-操作字符串和Date、LocalDate互转,两个日期的时间差等
Java中的日期时间类(Date、DateFormat、Calendar)解读

System类

Java中的System类

StringBuffer、StringBuilder

Java中的StringBuilder类
String、StringBuffer、StringBuilder 有什么区别?

Collections

集合工具类Collections指南,以及Comparable和Comparator排序详解

fastjson

Fastjon2他来了,性能显著提升,还能再战十年

Java异常

NoClassDefFoundError 和 ClassNotFoundException 有什么区别
Exception和Error有什么区别吗
Java异常体系和分类
Java中的异常处理详解(try、catch、finally、throw、throws)
Java自定义异常

多线程

多线程基本概念(并发与并行、线程与进程)和入门案例
多线程原理和常用方法以及Thread和Runnable的区别
多线程安全问题原理和解决办法,Synchronized和ReentrantLock使用与区别
Java中线程的6种状态详解(NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED)
Java线程中的wait、notify和notifyAll解析
Java线程池详解

IO流

File类详解(获取文件名称、大小、路径、创建等)
Java中的递归详解
字节流、字节缓冲流
编码表、编码方式、转换流、序列化、序列化流、打印流、commons-io

网络编程

TCP和UDP的区别
TCP的三次握手和四次挥手的过程
Java实现最基础的TCP通信

Java8新特性

Java8中Lambda函数式编程详解
Stream流

Java进阶

Junit单元测试

反射

注解

JDBC

HTML和CSS

Request和Response

XML

Cookie和Session

Filter和Listener

自定义过滤器和拦截器实现ThreadLocal线程封闭

常用加解密

Java实现SM3加密和验证

数据库

事务的四大特性
事务的隔离级别详解
SQL中的DQL DML DDL和DCL是怎么区分和定义的

MySQL

长文一次说完MySQL常用语句和命令等汇总
windows 10下载安装mysql5.7
MySQL查询某个表中的所有字段并通过逗号分隔连接
MySQL中的DATEDIFF()、PERIOD_DIFF()和TIMESTAMPDIFF()函数使用
MySQL数据库执行Update卡死问题解决
count(字段),count(_)和count(1)的区别
group by和having的区别
SQL语句执行顺序是什么样的呢
MySQL查看数据库表中的重复记录并删除
MySQL使用性能优化—查看数据库的最大连接数、当前连接数等
MySQL/Oracle怎么把一个表的数据复制到另一个表

Oracle

oracle数据库表创建自增量主键
Oracle触发器概念和模板
完全卸载oracle11g步骤

JVM

VM虚拟机配置动态ip和静态ip访问
Java内存模型(JMM)
怎么打印当前ClassLoader 加载了哪些Jar
class文件和类加载机制
直接内存
程序计数器
虚拟机栈(栈)
本地方法栈
Java堆
JVM调优

常用框架

如何学习一个新技术或者新框架?
新技术或者新框架是随问题产生的,它的存在就是为了解决问题。
可以分如下步骤去学习:

  1. 了解这项技术的概念和这项技术能够解决什么问题。
  2. 学习这项技术需要储备哪些知识并学习。
  3. 在实际开发中的应用,注意事项。
  4. 了解实现原理。
  5. 深入熟悉这项技术的原理,是否能够做相关拓展。
  6. 深入和拓展的时候,会发现一些曾经上的知识误区,及时修正和总结。
  7. 交流分享,融会贯通。

Spring

Spring从入门到精通(一)—Spring概述、Spring的优势和体系结构
Spring从入门到精通(二)—Spring核心思想之IOC
Spring从入门到精通(三)—Spring核心思想之AOP
Spring从入门到精通(四)—IOC之BeanFactory与ApplicationContext区别
Spring从入门到精通(五)—Spring快速入门
Spring从入门到精通(六)—实例化Bean的三种⽅式
Spring从入门到精通(七)—Bean标签详解
Spring从入门到精通(八)—注解开发
Spring从入门到精通(九)—IOC之延迟加载(lazy-Init )
Spring 的事务传播特性和隔离级别

Spring MVC

MyBatis

MyBatis从入门到精通(一)—MyBatis基础知识和快速入门
MyBatis从入门到精通(二)—mybatis的Dao实现和配置文件深入
MyBatis从入门到精通(三)—MyBatis多表查询和注解开发
MyBatis从入门到精通(四)—MyBatis缓存和二级缓存整合Redis
MyBatis从入门到精通(五)—MyBatis插件原理探究和自定义插件实现
MyBatis从入门到精通(六)—MyBatis架构原理
MyBatis从入门到精通(七)—源码剖析之Configuration、SqlSession、Executor、StatementHandler细节
MyBatis从入门到精通(八)—源码剖析之Mapper代理方式细节
MyBatis从入门到精通(九)—源码剖析之二级缓存细节
MyBatis从入门到精通(十)—源码剖析之延迟加载源码细节
自定义持久层框架MyORMFramework(一)—JDBC分析和解决思路
自定义持久层框架MyORMFramework(二)—框架设计
自定义持久层框架MyORMFramework(三)—框架实现

Spring JPA

SpringBoot

相关整合:
springboot快速入门
springboot发送邮件
springboot建父工程,整合Thymeleaf模板引擎
springboot+quartz构建定时任务
SpringBoot设置允许跨域请求

错误:
springboot升级后跨域报错:When allowCredentials is true, allowedOrigins cannot contain the special value since that cannot

Canal

Dubbo

Shiro

Spring Security

MyCat

Tomcat

设计模式

Spring中用到了哪些设计模式?

消息队列

消息队列概述

RabbitMQ

请求rabbitmq链接报错:protocol method: #method<connection.close>(reply-code=530, reply-text=NOTALLOWED - vhost / not found

RocketMq

Windows环境RocketMQ broker启动失败闪退

Kafka

Redis

Windows10安装免安装版redis
Linux下载安装redis和zookeeper
Redis数据类型
Redis持久化
Redis的淘汰策略
Redis中缓存雪崩、缓存击穿和缓存穿透

微服务与分布式

服务注册发现

Nacos

Nacos基本概念和单机部署
Nacos客户端注册报错
Nacos集群部署-高可用保证

服务调用

服务配置

SpringCloud版本升级后bootstrap.yml配置不生效

负载均衡

服务限流

熔断降级

网关路由

服务权限

链路追踪

Windows下载安装zipkin
linux下载安装zipkin

分布式事务

Java面试系列

面试官:谈谈Spring中用到了哪些设计模式?
面试官:使用无界队列的线程池会导致内存飙升吗?
面试官:可以说下Java内存模型(JMM)吗

低代码开发

flowable camunda activiti功能对比和趋势

activiti

Activiti产生的背景和作用
BPMN和DMN基本概念和使用案例
Camunda整体架构和相关概念

高并发

线程池

Java线程池Executor详解
面试官:使用无界队列的线程池会导致内存飙升吗?

JUC

AQS同步组件-CountDownLatch解析和案例
AQS同步组件-Semaphore(信号量)解析和案例
AQS同步组件-CyclicBarrier(循环屏障)解析和用例
AQS同步组件-ReentrantLock、ReentrantReadWriteLock解析和用例
AQS同步组件-FutureTask、ForkJoin解析和用例

扩容

缓存

CPU多级缓存与缓存一致性

消息队列

应用拆分

应用限流

服务降级

分库分表

高可用保证

数据结构与算法

Java中的数据结构之常见的五种数据结构
数据结构:

队列

数组
链表


算法:
常见的排序算法
二分查找算法
分治算法
动态规划算法
KMP算法
贪心算法
普利姆算法

开发工具

IntelliJ IDEA

idea常用快捷键
idea好用插件收集,总有一款适合你
idea设置Run Dashboard同时开启多个服务
idea运行报Error running ‘XApplication‘_ Command line is too long. Shorten command line for XApplication
idea设置显示maven工具栏
idea中通过ssh推送代码到gitee_github报错
idea回退到上一次光标的位置失效:win8/win10 禁用ctrl+alt+方向键
idea中ctrl+alt+v快速生成返回变量无效
idea中快速实现继承父类方法
idea中查看某个类的继承关系
idea中配置通过tomcat启动web项目
idea中项目运行报错:Error_(33, 51) java_ -source 1.5 中不支持 diamond 运算符_ (请使用 -source 7 或更高版本以启用 diamond 运算符)

Git

Git基本概念和下载安装
常用的Git代码托管服务
github或者gitee配置ssh免密登录
ssh-keygen -t rsa -C xxxx@xxxx.com解释
Git常用命令
git 本地新建分支上传报错The current branch dev has no upstream branch.To push the current branch and setremote

Navicat

Maven

Maven安装和基本概念
Maven中常用命令以及idea中使用maven指南

Docker

添加docker权限给其他用户使用
Docker命令汇总

postman

Postman使用

JMeter

压力测试工具-JMeter安装和使用
Apache Bench(AB)性能测试压测接口

Navicat

Navicat保存查询和查询文件放在哪个位置

服务器

Nginx

Linux下安装和使用Nginx

Tomcat

Windows操作

windows下使用curl命令
电脑卡慢怎么办
Windows10系统安装docker
Windows10如何合并任务栏下的多窗口_多文件夹
谷歌浏览器设置地址栏默认搜索为百度搜索
Windows10安装免安装版redis
怎么把软件添加到右键菜单
QQ、微信可以正常访问通讯,浏览器无法打开网页

搜索引擎

Windows下载安装ELK(Elasticsearch、Kibana、Logstash)
ElasticSearch

web端

老弟教你用CSS和JS实现曾经风靡一时的微信打飞机游戏

大数据

Flink

团队管理

文档管理

swagger

设置swagger文档自动同步到YApi
访问swagger文档报错Illegal DefaultValue 1024 for parameter type integer,java.lang.NumberFormatException
让Typora单词拼写不冒红线
团队成长
技术影响力
系统拆分
任务规划

运维

Jenkins
GitLab CI
通过钉钉机器人发送群消息通知

Linux

Linux常用指令(命令)超级无敌全合集加图文说明
tailf、tail -f、tail -F三者区别
Linux下安装和使用Nginx
uptime命令详解
Linux的top命令详解
Linux rpm 命令使用详解
Linux下安装lrzsz
Linux下安装JDK
在Linux服务器下查看公网IP地址

开源项目推荐