不积跬步无以至千里,本人从事Java开发多年,通过记录分享的形式,记录自己从事编程的一些心路历程和技术总结,希望能结交更多志同道合的朋友,个人见识有限,难免会有疏忽和错误之处,还望各位大佬能够指点迷津,感激不尽。
本文整理的Java知识汇总主要包括Java基础、Java进阶、数据库、JVM、消息队列、缓存、微服务与分布式、Java面试系列、高并发、数据结构与算法、计算机网络、开发工具、搜索引擎、大数据、团队管理、运维等。包含一个Java开发工程师所需的绝大多数知识。相信只要勤奋学习,每天进步一点点,各位大佬总有一天会成为飞过沧海横过大洋的海鸥。总结记录的同时,希望大家一起共同进步。
文章目录
Java基础
Java概述和常见Dos命令
常见Dos命令、Java历史、Java跨平台、第一个HelloWorld例子
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类
String类
Arrays类
Math类
Math常用的数学运算(包括取整、取绝对值、保留几位小数等)
Object类
Java顶层类Object类(toString、equals)
时间处理
时间处理:当天早上七点到第二天早上七点 置成当天的23:59:59
日期工具类-操作字符串和Date、LocalDate互转,两个日期的时间差等
Java中的日期时间类(Date、DateFormat、Calendar)解读
System类
StringBuffer、StringBuilder
Java中的StringBuilder类
String、StringBuffer、StringBuilder 有什么区别?
Collections
集合工具类Collections指南,以及Comparable和Comparator排序详解
fastjson
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单元测试
反射
注解
JDBC
Java中的JDBC详解
数据库连接池入门(c3p0、Druid)
Spring JdbcTemplate使用详解
HTML和CSS
JavaScript
一文入门JavaScript
深入JavaScript之BOM、DOM和事件
Request和Response
常见的http请求参数和响应参数,前后端交互参数说明
Java中的Request和Response详解
XML
Tomcat
web服务器软件:Tomcat入门(window安装和配置Tomcat)
servlet
jQuery
一文入门jQuery
一文深入jQuery
AJAX和JSON详解
Cookie和Session
Filter和Listener
常用加解密
数据库
事务的四大特性
事务的隔离级别详解
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调优
常用框架
如何学习一个新技术或者新框架?
新技术或者新框架是随问题产生的,它的存在就是为了解决问题。
可以分如下步骤去学习:
- 了解这项技术的概念和这项技术能够解决什么问题。
- 学习这项技术需要储备哪些知识并学习。
- 在实际开发中的应用,注意事项。
- 了解实现原理。
- 深入熟悉这项技术的原理,是否能够做相关拓展。
- 深入和拓展的时候,会发现一些曾经上的知识误区,及时修正和总结。
- 交流分享,融会贯通。
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设置允许跨域请求
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系列之客户端负载均衡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解析和用例
扩容
缓存
消息队列
RabbitMQ
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
JMeter
压力测试工具-JMeter安装和使用
Apache Bench(AB)性能测试压测接口
Navicat
gradle
服务器
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
其他
开源项目推荐
职场人一起进阶吧(内附技术人进阶路径、Java开源项目完整推荐等)
本文内容到此结束了,
如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。
如有错误❌疑问💬欢迎各位大佬指出。
主页:共饮一杯无的博客汇总👨💻保持热爱,奔赴下一场山海。🏃🏃🏃