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

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

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

Set集合和其子类HashSet、LinkedHashSet

HashSet
LinkedHashSet
Map

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

HashMap
CurrentHashMap
CopyOnWriteArrayList

常用API

Base64

Base64和byte[]数组互转的两种方式
Base64码常见操作(url链接文件转base64编码、本地文件转base64编码等)

Random类

Random类常用的方法和使用

String类

String类常用方法

Arrays类

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他来了,性能显著提升,还能再战十年

BigDecimal

Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余

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中的递归详解
Java字节流和字符流详解
Java流处理之高效读写的缓冲流
Java流处理之转换编码的转换流
Java流处理之序列化和打印流
Java把文件压缩成.zip压缩包和解压.zip压缩包(ZipOutputStream、ZipInputStream)

网络编程

Java网络编程入门(软件结构、网络通信协议、网络编程三要素)
Java网络编程之通过代码实现Socket通信
Java网络编程之实现文件上传
Java网络编程之InetAddress类详解,URL和URI的区别,URLDecoder和URLEncoder,IPv6和IPv4区别,IPv6的三种表示方法
TCP的三次握手和四次挥手的过程

Java8新特性

Java8中Lambda函数式编程详解
Java8中的函数式接口详解(Supplier、Consumer、Predicate、Function)
Stream流

Java进阶

Junit单元测试

Junit单元测试

反射

Java反射:框架设计的灵魂

注解

Java注解详解以及如何实现自定义注解

JDBC

Java中的JDBC详解
数据库连接池入门(c3p0、Druid)
Spring JdbcTemplate使用详解

HTML和CSS

HTML概念和相关标签指南
CSS:页面美化和布局控制

JavaScript

一文入门JavaScript
深入JavaScript之BOM、DOM和事件

Request和Response

常见的http请求参数和响应参数,前后端交互参数说明
Java中的Request和Response详解

XML

数据存储和传输文件之XML使用和解析详解

Tomcat

web服务器软件:Tomcat入门(window安装和配置Tomcat)

servlet

Servlet详解

jQuery

一文入门jQuery
一文深入jQuery
AJAX和JSON详解

Cookie和Session

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怎么把一个表的数据复制到另一个表
MySQL执行如下group by 语句报错:1055 - Expression …this is incompatible with sql_mode=only_full_group_by

Oracle

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

postgresql

PostgreSQL在Linux和Windows安装和入门基础教程

JVM

VM虚拟机配置动态ip和静态ip访问
Java内存模型(JMM)
怎么打印当前ClassLoader 加载了哪些Jar
Java 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中的配置文件详解(yml、properties全局配置和自定义配置、@ConfigurationProperties与@Vuale使用、有趣的banner图配置)
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中用到了哪些设计模式?
23种设计模式汇总概述
从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?

Redis

Windows10安装免安装版redis
Linux下载安装redis和zookeeper
一文入门Redis(下载安装、Redis常见数据类型、持久化、命令和客户端操作)
Redis数据类型
Redis的淘汰策略
Redis中缓存雪崩、缓存击穿和缓存穿透

微服务与分布式

微服务中的Spring Cloud和Spring Cloud Alibaba分别有哪些组件和作用,众多组件中如何做技术选型?
云原生应用的概念和云原生应用的 15 个特征
【云原生】腾讯带着北极星(spring-cloud-tencent)也来卷云原生了,一起瞅瞅吧

服务注册发现

Nacos

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

Eureka

【云原生】SpringCloud系列之服务治理Eureka

负载均衡

【云原生】SpringCloud系列之客户端负载均衡Ribbon

服务调用

服务配置

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

负载均衡

服务限流

熔断降级

网关路由

服务权限

链路追踪

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

分布式事务

Java面试系列

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

低代码开发

flowable camunda activiti功能对比和趋势

activiti

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

高并发

线程池

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

JUC

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

扩容

缓存

CPU多级缓存与缓存一致性

消息队列

消息队列概述

RabbitMQ

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

RocketMQ

Windows环境RocketMQ broker启动失败闪退
云原生中间件RocketMQ(一)基本概念&功能特性&架构设计&环境搭建
云原生中间件RocketMQ(二)源码包结构和集群架构模型
云原生中间件RocketMQ(三)RocketMQ集群(多Master和多Master-Slave方式)部署实操
云原生中间件RocketMQ-快速入门

Kafka

应用拆分

应用限流

服务降级

分库分表

高可用保证

数据结构与算法

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

Maven

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

Docker

添加docker权限给其他用户使用
Docker命令汇总
Linux安装Docker并配置Docker镜像加速,daemon.json完整配置详解
Docker安装Redis并配置启动
Docker 容器中的域名解析配置问题解决的四种方式

postman

Postman使用

JMeter

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

Navicat

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

gradle

gradle安装和在idea中使用

服务器

Nginx

Linux下安装和使用Nginx
nginx安装和配置详解
nginx访问日志报错:[error] 4560#4560_ 117823 client intended to send too large body 7562419 bytes,错误码413

Tomcat

Windows操作

windows下使用curl命令
电脑卡慢怎么办
Windows10系统安装docker
Windows10如何合并任务栏下的多窗口_多文件夹
谷歌浏览器设置地址栏默认搜索为百度搜索
Windows10安装免安装版redis
怎么把软件添加到右键菜单
QQ、微信可以正常访问通讯,浏览器无法打开网页
Windows常用快捷键和常用的cmd命令(亲测用了办公效率提升明显)
Markdown(MD)文档语法使用指南(学会后写文档写博客贼6)
Notepad++实用功能分享(正则行尾行首替换常用方法、文本比对功能等)
win10使用markdownpad2报错 An error occurred with the HTML rendering component. This issue may be fixed b

问题排查

Java 诊断工具 Arthas 常见命令使用和实战(排查函数调用异常、热更新、调用方法函数、查看堆栈调用等)

搜索引擎

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

web前端

老弟教你用CSS和JS实现曾经风靡一时的微信打飞机游戏
10天从入门到精通Vue(一)-vue基本概念和基础语法(v-text、v-bind、v-on、v-model等)
10天从入门到精通Vue(二)-vue的过滤器、自定义指令、Vue实例的生命周期、Vue中的动画
10天从入门到精通Vue(三)vue组件指南
10天从入门到精通Vue(四)Vue中的路由指南
10天从入门到精通Vue(五)Webpack打包

大数据

Flink

团队管理

文档管理

swagger

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

项目管理

项目管理工具推荐

运维

Jenkins

【云原生】持续集成和部署(Jenkins)
GitLab CI
通过钉钉机器人发送群消息通知

K8S

【云原生】容器服务(K8s版)使用 Kubectl 部署 web 服务到 K8s 集群
【云原生】容器编排K8S
【云原生】K8S包管理(helm)

Linux

Linux常用指令(命令)超级无敌全合集加图文说明
tailf、tail -f、tail -F三者区别
Linux下安装和使用Nginx
uptime命令详解
Linux的top命令详解
Linux rpm 命令使用详解
Linux下安装lrzsz
Linux下安装JDK
在Linux服务器下查看公网IP地址
linux查看某个文件夹的大小(ls命令、du命令详解)
linux查看服务器开放的端口和启用的端口五种方式

Python

Python从入门到入土-基础知识准备

其他

企业统一社会信用代码规则

开源项目推荐

职场人一起进阶吧(内附技术人进阶路径、Java开源项目完整推荐等)

本文内容到此结束了,
如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。
如有错误❌疑问💬欢迎各位大佬指出。
主页共饮一杯无的博客汇总👨‍💻

保持热爱,奔赴下一场山海。🏃🏃🏃

  • 21
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

共饮一杯无

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值