Java知识体系最强总结(2021版)

你是否有为快速开发各种报表而烦恼?遇到类似如下的问题:

  • 表格少的,可以用代码写,几十上百张表格呢,纯手工需要用多少时间?
  • 格式复杂,逻辑复杂的,做起来更是头大
  • 需求总变来变去,修改和维护成本太高
  • 图形自己做不美观,而且工作量巨大
  • 用第三方的相对简单,但集成和学习成本也不小

从各行业合作伙伴的实际使用情况,证明使用下文说的报表做表格和图形,可以极大的提升效率,节省成本,详情请查看文章:https://thinkwon.blog.csdn.net/article/details/125035932
文章干货多多,欢迎一键三连,谢谢😊😊

更新于2021-08-13 22:55:12

欢迎关注微信公众号【技术人成长之路】

【技术人成长之路】,助力技术人成长!更多精彩文章第一时间在公众号发布哦!

本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽

整理的Java知识体系主要包括基础知识,工具,并发编程,数据结构与算法,数据库,JVM,架构设计,应用框架,中间件,微服务架构,分布式架构,程序员的一些思考,团队与项目管理,运维,权限,推荐书籍,云计算,区块链等,包含了作为一个Java工程师在开发工作学习中需要用到或者可能用到的绝大部分知识。千里之行始于足下,希望大家根据自己的薄弱点,查缺补漏,根据自己感兴趣的方面多学习,学的精通一点,从现在开始行动起来。路漫漫其修远兮,吾将上下而求索,不管编程开发的路有多么难走,多么艰辛,我们都将百折不挠,不遗余力地去追求和探索

文章目录

Java面试总结

Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大部分知识。欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章持续更新中…

序号内容链接地址
1Java基础知识面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104390612
2Java集合容器面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104588551
3Java异常面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104390689
4并发编程面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104863992
5JVM面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104390752
6Spring面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397516
7Spring MVC面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397427
8Spring Boot面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397299
9Spring Cloud面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397367
10MyBatis面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/101292950
11Redis面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/103522351
12MySQL数据库面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104778621
13消息中间件MQ与RabbitMQ面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104588612
14Dubbo面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104390006
15Linux面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104588679
16Tomcat面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397665
17ZooKeeper面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104397719
18Netty面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/104391081
19架构设计&分布式&数据结构与算法面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/105870730

基础知识

Java概述

序号内容链接地址
1Java简介https://thinkwon.blog.csdn.net/article/details/94353575
2Java发展历程https://thinkwon.blog.csdn.net/article/details/94353653
3Java语言特点https://thinkwon.blog.csdn.net/article/details/94354013
4JDK安装与环境变量配置https://thinkwon.blog.csdn.net/article/details/94353907
5JVM、JRE和JDK的关系https://thinkwon.blog.csdn.net/article/details/101369973
6Java是编译型还是解释型语言https://thinkwon.blog.csdn.net/article/details/108678327

基础语法

大部分已完成

待整理:

Java开发必会的反编译知识(附支持对Lambda进行反编译的工具)

一文读懂什么是Java中的自动拆装箱

Java的枚举类型用法介绍

类、枚举、接口、数组、可变参数

泛型、序列化

序号内容链接地址
1Java标识符https://thinkwon.blog.csdn.net/article/details/101637454
2Java关键字(Java 8版本)https://thinkwon.blog.csdn.net/article/details/101642385
3Java注释https://thinkwon.blog.csdn.net/article/details/101643185
4Java访问修饰符https://thinkwon.blog.csdn.net/article/details/101643412
5Java分隔符https://thinkwon.blog.csdn.net/article/details/101643617
6Java转义字符https://thinkwon.blog.csdn.net/article/details/101643769
7Java进制https://thinkwon.blog.csdn.net/article/details/101643936
8Java流程控制语句https://thinkwon.blog.csdn.net/article/details/101645978
9Java流程控制语句-顺序结构https://thinkwon.blog.csdn.net/article/details/101644820
10Java流程控制语句-分支结构https://thinkwon.blog.csdn.net/article/details/101645224
11Java流程控制语句-循环结构https://thinkwon.blog.csdn.net/article/details/101645757
12Java表达式https://thinkwon.blog.csdn.net/article/details/101648114
13Java运算符https://thinkwon.blog.csdn.net/article/details/101649002
14Java变量https://thinkwon.blog.csdn.net/article/details/101649292
15Java常量https://thinkwon.blog.csdn.net/article/details/101649446
16Java数据类型https://thinkwon.blog.csdn.net/article/details/101649568
17Java反射https://thinkwon.blog.csdn.net/article/details/100128361
18Java语法糖https://thinkwon.blog.csdn.net/article/details/100103689
19Java注解https://thinkwon.blog.csdn.net/article/details/100178709
20JSON简介https://thinkwon.blog.csdn.net/article/details/100642585
21Properties类简介https://thinkwon.blog.csdn.net/article/details/100667783
22XML简介https://thinkwon.blog.csdn.net/article/details/100642425
23YML简介https://thinkwon.blog.csdn.net/article/details/100642870
24Java8新特性-Lambda表达式https://thinkwon.blog.csdn.net/article/details/100642932
25Java基础语法https://thinkwon.blog.csdn.net/article/details/94354151

面向对象

待整理:

抽象

继承、封装、多态

接口、抽象类、内部类

序号内容链接地址
1什么是面向对象https://thinkwon.blog.csdn.net/article/details/100667386

集合框架

迭代器、增强for、泛型

序号内容链接地址
1Java集合框架总结https://thinkwon.blog.csdn.net/article/details/98844796
2ArrayList(JDK1.8)源码解析https://thinkwon.blog.csdn.net/article/details/98845119
3HashMap(JDK1.8)源码解析https://thinkwon.blog.csdn.net/article/details/98845487
4LinkedHashMap(JDK1.8)源码解析https://thinkwon.blog.csdn.net/article/details/102574293
5LinkedList(JDK1.8)源码解析https://thinkwon.blog.csdn.net/article/details/102573923
6TreeMap(JDK1.8)源码解析https://thinkwon.blog.csdn.net/article/details/102571883

IO流

待整理:

File、递归

字节流、字节缓冲流

编码表、编码方式、转换流、序列化、序列化流、打印流、commons-io

网络编程

网络概述、网络模型

Socket原理机制

UDP

TCP/IP

协议、OSI 七层协议、HTTP、HTTP2.0、HTTPS

网络安全

​ XSS、CSRF、SQL注入、Hash Dos、脚本注入、漏洞扫描工具、验证码

​ DDoS防范、用户隐私信息保护、序列化漏洞

​ 加密解密、对称加密、哈希算法、非对称加密

​ 服务安全、数据安全、数据备份

​ 网络隔离、登录跳板机、非外网分离

​ 认证、授权

常用API

String、StringBuffer、StringBuilder、正则表达式

Number、Radom、Math、System、包装类

Arrays、Collections

日期时间API

序号内容链接地址
1Java7日期时间APIhttps://thinkwon.blog.csdn.net/article/details/110777654
2史上最全Java7日期时间工具类https://thinkwon.blog.csdn.net/article/details/110779441
3Java8日期时间APIhttps://thinkwon.blog.csdn.net/article/details/111087199
4史上最全Java8日期时间工具类https://thinkwon.blog.csdn.net/article/details/111116600

常用工具类库

待整理:OkHttp、commons-lang3

序号内容链接地址
1HttpClient工具类https://thinkwon.blog.csdn.net/article/details/101391489
2WGS84地球坐标系,GCJ02火星坐标系,BD09百度坐标系简介与转换https://thinkwon.blog.csdn.net/article/details/101392187
3Lombok简介、使用、工作原理、优缺点https://thinkwon.blog.csdn.net/article/details/101392808
4Java几种常用JSON库性能比较https://thinkwon.blog.csdn.net/article/details/94354358

单元测试

JUnit

异常

序号内容链接地址
1Java异常总结https://thinkwon.blog.csdn.net/article/details/94346911
2Java异常架构与异常关键字https://thinkwon.blog.csdn.net/article/details/101676779
3Java异常处理流程https://thinkwon.blog.csdn.net/article/details/101677638
4如何选择异常类型https://thinkwon.blog.csdn.net/article/details/94346911
5Java异常常见面试题https://thinkwon.blog.csdn.net/article/details/101681073
6Java异常处理最佳实践https://thinkwon.blog.csdn.net/article/details/94347002

日志

序号内容链接地址
1常用日志框架Log4j,Logback,Log4j2性能比较与日志门面SLF4J简介https://thinkwon.blog.csdn.net/article/details/101621135
2日志作用https://thinkwon.blog.csdn.net/article/details/101619725
3Apache Log4j2详解https://thinkwon.blog.csdn.net/article/details/95043111
4Log4j2同步日志,混合日志和异步日志配置详解https://thinkwon.blog.csdn.net/article/details/101625124
5Log4j2配置文件详解https://thinkwon.blog.csdn.net/article/details/101629302
6Log4j2的Appenders配置详解https://thinkwon.blog.csdn.net/article/details/101625820
7Log4j2的Filters配置详解https://thinkwon.blog.csdn.net/article/details/101627162
8Log4j2的Policy触发策略与Strategy滚动策略配置详解https://thinkwon.blog.csdn.net/article/details/101628222
9Log4j2的Loggers配置详解https://thinkwon.blog.csdn.net/article/details/101628736

Java8新特性

序号内容链接地址
1Java8新特性-Lambda表达式https://thinkwon.blog.csdn.net/article/details/113764085
2Java8新特性-Optionalhttps://thinkwon.blog.csdn.net/article/details/113791796
3Java8新特性-Streamhttps://thinkwon.blog.csdn.net/article/details/113798096
4Java8新特性-Base64https://thinkwon.blog.csdn.net/article/details/113798575
5Java8新特性-日期时间APIhttps://thinkwon.blog.csdn.net/article/details/111087199

工具

IDEA

序号内容链接地址
1IDEA常用配置和常用插件https://thinkwon.blog.csdn.net/article/details/101020481
2IDEA中Maven依赖下载失败解决方案https://thinkwon.blog.csdn.net/article/details/101312918
3在IDEA中使用Linux命令https://thinkwon.blog.csdn.net/article/details/106320360

Eclipse & STS

序号内容链接地址
1Eclipse & Spring Tool Suite常用配置https://thinkwon.blog.csdn.net/article/details/101025543

Maven

序号内容链接地址
1Maven简介https://thinkwon.blog.csdn.net/article/details/94346090
2Maven安装与配置https://thinkwon.blog.csdn.net/article/details/94346569
3Maven依赖冲突https://thinkwon.blog.csdn.net/article/details/101483020
4手动安装Maven依赖https://thinkwon.blog.csdn.net/article/details/101483478
5Maven部署jar包到远程仓库https://thinkwon.blog.csdn.net/article/details/101483769
6Maven私服Nexus安装与使用https://thinkwon.blog.csdn.net/article/details/94346681

Docker

序号内容链接地址
1使用Docker安装GitLabhttps://thinkwon.blog.csdn.net/article/details/95042797
2虚拟机和容器有什么不同https://thinkwon.blog.csdn.net/article/details/107476886
3Docker 从入门到实践系列一 - 什么是Dockerhttps://thinkwon.blog.csdn.net/article/details/107477065
4Docker 从入门到实践系列二 - Docker 安装https://thinkwon.blog.csdn.net/article/details/117638107
5Docker 从入门到实践系列三 - Docker 常用命令https://thinkwon.blog.csdn.net/article/details/117638128
6Docker 从入门到实践系列四 - Docker 容器编排利器 Docker Composehttps://thinkwon.blog.csdn.net/article/details/119511551

Git

序号内容链接地址
1Git简介https://thinkwon.blog.csdn.net/article/details/94346816
2版本控制https://thinkwon.blog.csdn.net/article/details/101449228
3Git忽略文件.gitignore详解https://thinkwon.blog.csdn.net/article/details/101447866
4Git与SVN的区别https://thinkwon.blog.csdn.net/article/details/101449611
5常用Git命令https://thinkwon.blog.csdn.net/article/details/101450420
6Git,GitHub与GitLab的区别https://thinkwon.blog.csdn.net/article/details/101470086

GitLab

GitKraken

Navicat

并发编程

基础知识

序号内容链接地址
1并发编程的优缺点https://thinkwon.blog.csdn.net/article/details/102020811
2线程的状态和基本操作https://thinkwon.blog.csdn.net/article/details/102027115
3进程和线程的区别(超详细)https://thinkwon.blog.csdn.net/article/details/102021274
4创建线程的四种方式https://thinkwon.blog.csdn.net/article/details/102021143

并发理论

序号内容链接地址
1Java内存模型https://thinkwon.blog.csdn.net/article/details/102073578
2重排序与数据依赖性https://thinkwon.blog.csdn.net/article/details/102073858
3as-if-serial规则和happens-before规则的区别https://thinkwon.blog.csdn.net/article/details/102074107
4Java并发理论总结https://thinkwon.blog.csdn.net/article/details/102074440

并发关键字

序号内容链接地址
1Java并发关键字-synchronizedhttps://thinkwon.blog.csdn.net/article/details/102243189
2Java并发关键字-volatilehttps://thinkwon.blog.csdn.net/article/details/102243670
3Java并发关键字-finalhttps://thinkwon.blog.csdn.net/article/details/102244477

Lock体系

待整理:

公平锁 & 非公平锁

乐观锁 & 悲观锁

可重入锁 & 不可重入锁

互斥锁 & 共享锁

死锁

序号内容链接地址
1Lock简介与初识AQShttps://thinkwon.blog.csdn.net/article/details/102468837
2AQS(AbstractQueuedSynchronizer)详解与源码分析https://thinkwon.blog.csdn.net/article/details/102469112
3ReentrantLock(重入锁)实现原理与公平锁非公平锁区别https://thinkwon.blog.csdn.net/article/details/102469388
4读写锁ReentrantReadWriteLock源码分析https://thinkwon.blog.csdn.net/article/details/102469598
5Condition源码分析与等待通知机制https://thinkwon.blog.csdn.net/article/details/102469889
6LockSupport详解https://thinkwon.blog.csdn.net/article/details/102469993

并发容器

序号内容链接地址
1并发容器之ConcurrentHashMap详解(JDK1.8版本)与源码分析https://thinkwon.blog.csdn.net/article/details/102506447
2并发容器之ConcurrentLinkedQueue详解与源码分析https://thinkwon.blog.csdn.net/article/details/102508089
3并发容器之CopyOnWriteArrayList详解https://thinkwon.blog.csdn.net/article/details/102508258
4并发容器之ThreadLocal详解https://thinkwon.blog.csdn.net/article/details/102508381
5ThreadLocal内存泄漏分析与解决方案https://thinkwon.blog.csdn.net/article/details/102508721
6并发容器之BlockingQueue详解https://thinkwon.blog.csdn.net/article/details/102508901
7并发容器之ArrayBlockingQueue与LinkedBlockingQueue详解https://thinkwon.blog.csdn.net/article/details/102508971

线程池

序号内容链接地址
1线程池ThreadPoolExecutor详解https://thinkwon.blog.csdn.net/article/details/102541900
2Executors类创建四种常见线程池https://thinkwon.blog.csdn.net/article/details/102541990
3线程池之ScheduledThreadPoolExecutor详解https://thinkwon.blog.csdn.net/article/details/102542299
4FutureTask详解https://thinkwon.blog.csdn.net/article/details/102542404

原子操作类

序号内容链接地址
1原子操作类总结https://thinkwon.blog.csdn.net/article/details/102556910

并发工具

序号内容链接地址
1并发工具之CountDownLatch与CyclicBarrierhttps://thinkwon.blog.csdn.net/article/details/102556958
2并发工具之Semaphore与Exchangerhttps://thinkwon.blog.csdn.net/article/details/102557034

并发实践

序号内容链接地址
1实现生产者消费者的三种方式https://thinkwon.blog.csdn.net/article/details/102557126

数据结构与算法

数据结构

序号内容链接地址
1红黑树详细分析(图文详解),看了都说好https://thinkwon.blog.csdn.net/article/details/102571535
1、数组
2、栈
3、队列
4、链表
5、树
	二叉树
    完全二叉树
    平衡二叉树
    二叉查找树(BST)
    红黑树
    B,B+,B*树
    LSM 树

字段是不是数据结构

算法

语言只是编程工具,算法才是编程之魂!

1、排序算法:快速排序、归并排序、计数排序
2、搜索算法:回溯、递归、剪枝
3、图论:最短路径、最小生成树、网络流建模
4、动态规划:背包问题、最长子序列、计数问题
5、基础技巧:分治、倍增、二分法、贪心算法

宽度优先搜索
深度优先搜索
广度优先
双指针
扫描线

朴素贝叶斯
推荐算法

排序算法

序号内容链接地址
1史上最全经典排序算法总结(Java实现)https://thinkwon.blog.csdn.net/article/details/95616819
2冒泡排序(Bubble Sort)https://thinkwon.blog.csdn.net/article/details/101534473
3选择排序(Selection Sort)https://thinkwon.blog.csdn.net/article/details/101534721
4插入排序(Insertion Sort)https://thinkwon.blog.csdn.net/article/details/101537804
5希尔排序(Shell Sort)https://thinkwon.blog.csdn.net/article/details/101538166
6归并排序(Merge Sort)https://thinkwon.blog.csdn.net/article/details/101538756
7快速排序(Quick Sort)https://thinkwon.blog.csdn.net/article/details/101543580
8堆排序(Heap Sort)https://thinkwon.blog.csdn.net/article/details/101543941
9计数排序(Counting Sort)https://thinkwon.blog.csdn.net/article/details/101544159
10桶排序(Bucket Sort)https://thinkwon.blog.csdn.net/article/details/101544356
11基数排序(Radix Sort)https://thinkwon.blog.csdn.net/article/details/101545529

LeetCode

序号内容链接地址
1LeetCode第1题 两数之和(Two Sum)https://thinkwon.blog.csdn.net/article/details/103113049
2LeetCode第3题 无重复字符的最长子串(Longest Substring Without Repeating Characters)https://thinkwon.blog.csdn.net/article/details/103113969
3LeetCode第7题 整数反转(Reverse Integer)https://thinkwon.blog.csdn.net/article/details/103113167
4LeetCode第9题 回文数(Palindrome Number)https://thinkwon.blog.csdn.net/article/details/103113151
5LeetCode第13题 罗马数字转整数(Roman to Integer)https://thinkwon.blog.csdn.net/article/details/103113519
6LeetCode第14题 最长公共前缀(Longest Common Prefix)https://thinkwon.blog.csdn.net/article/details/103113700
7LeetCode第20题 有效的括号(Valid Parentheses)https://thinkwon.blog.csdn.net/article/details/103113848
8LeetCode第26题 删除排序数组中的重复项(Remove Duplicates from Sorted Array)https://thinkwon.blog.csdn.net/article/details/103113097

数据库

Oracle

MySQL

数据库基础知识

序号内容链接地址
1MySQL语句分类https://thinkwon.blog.csdn.net/article/details/106610851
2MySQL插入语句insert into,insert ignore into,insert into … on duplicate key update,replace into-解决唯一键约束https://thinkwon.blog.csdn.net/article/details/106610789
3MySQL复制表的三种方式https://thinkwon.blog.csdn.net/article/details/106610810
4MySQL删除表的三种方式https://thinkwon.blog.csdn.net/article/details/106610831
5MySQL中count(字段) ,count(主键 id) ,count(1)和count(*)的区别https://thinkwon.blog.csdn.net/article/details/106610859

数据类型

引擎

索引

三大范式

常用SQL语句

存储过程与函数

视图

MySQL优化

事务

数据备份与还原

Redis

序号内容链接地址
1Redis总结https://thinkwon.blog.csdn.net/article/details/99999584
2Redis使用场景https://thinkwon.blog.csdn.net/article/details/101521497
3Redis数据类型https://thinkwon.blog.csdn.net/article/details/101521724
4Redis持久化https://thinkwon.blog.csdn.net/article/details/101522209
5Redis过期键的删除策略https://thinkwon.blog.csdn.net/article/details/101522970
6Redis数据淘汰策略https://thinkwon.blog.csdn.net/article/details/101530624
7Redis与Memcached的区别https://thinkwon.blog.csdn.net/article/details/101530406
8Redis常见面试题(精简版)https://thinkwon.blog.csdn.net/article/details/103522351
9Redis中缓存雪崩、缓存穿透等问题的解决方案https://thinkwon.blog.csdn.net/article/details/103402008
10阿里云Redis开发规范学习总结https://thinkwon.blog.csdn.net/article/details/103400250
11Redis开发常用规范https://thinkwon.blog.csdn.net/article/details/103401781
12这可能是最中肯的Redis规范了https://thinkwon.blog.csdn.net/article/details/103401978

Java虚拟机

深入理解Java虚拟机

序号内容链接地址
1深入理解Java虚拟机-走近Javahttps://thinkwon.blog.csdn.net/article/details/103804387
2深入理解Java虚拟机-Java内存区域与内存溢出异常https://thinkwon.blog.csdn.net/article/details/103827387
3深入理解Java虚拟机-垃圾回收器与内存分配策略https://thinkwon.blog.csdn.net/article/details/103831676
4深入理解Java虚拟机-虚拟机执行子系统https://thinkwon.blog.csdn.net/article/details/103835168
5深入理解Java虚拟机-程序编译与代码优化https://thinkwon.blog.csdn.net/article/details/103835883
6深入理解Java虚拟机-高效并发https://thinkwon.blog.csdn.net/article/details/103836167

架构设计

高可用架构

高并发架构

可伸缩架构

集群

设计模式

常用设计模式

创建型:
单例模式、工厂模式、抽象工厂模式

结构型:
适配器模式、外观模式、代理模式、装饰器模式

行为型:
观察者模式、策略模式、模板模式

序号内容链接地址
1设计模式https://thinkwon.blog.csdn.net/article/details/96829572

创建型模式

序号内容链接地址
1抽象工厂模式https://thinkwon.blog.csdn.net/article/details/101382584
2单例模式https://thinkwon.blog.csdn.net/article/details/101382855
3工厂模式https://thinkwon.blog.csdn.net/article/details/101383285
4建造者模式https://thinkwon.blog.csdn.net/article/details/101383401
5原型模式https://thinkwon.blog.csdn.net/article/details/101383491

结构型模式

序号内容链接地址
1代理模式https://thinkwon.blog.csdn.net/article/details/101384436
2过滤器模式https://thinkwon.blog.csdn.net/article/details/101384514
3桥接模式https://thinkwon.blog.csdn.net/article/details/101384584
4适配器模式https://thinkwon.blog.csdn.net/article/details/101384619
5外观模式https://thinkwon.blog.csdn.net/article/details/101384676
6享元模式https://thinkwon.blog.csdn.net/article/details/101384716
7装饰器模式https://thinkwon.blog.csdn.net/article/details/101384753
8组合模式https://thinkwon.blog.csdn.net/article/details/101384786

行为型模式

序号内容链接地址
1备忘录模式https://thinkwon.blog.csdn.net/article/details/101383582
2策略模式https://thinkwon.blog.csdn.net/article/details/101383647
3迭代器模式https://thinkwon.blog.csdn.net/article/details/101383722
4访问者模式https://thinkwon.blog.csdn.net/article/details/101383780
5观察者模式https://thinkwon.blog.csdn.net/article/details/101383872
6解释器模式https://thinkwon.blog.csdn.net/article/details/101383930
7空对象模式https://thinkwon.blog.csdn.net/article/details/101384001
8命令模式https://thinkwon.blog.csdn.net/article/details/101384090
9模板模式https://thinkwon.blog.csdn.net/article/details/101384138
10责任链模式https://thinkwon.blog.csdn.net/article/details/101384195
11中介者模式https://thinkwon.blog.csdn.net/article/details/101384251
12状态模式https://thinkwon.blog.csdn.net/article/details/101384315

J2EE模式

序号内容链接地址
1MVC模式https://thinkwon.blog.csdn.net/article/details/101381701
2传输对象模式https://thinkwon.blog.csdn.net/article/details/101382134
3服务定位器模式https://thinkwon.blog.csdn.net/article/details/101382179
4拦截过滤器模式https://thinkwon.blog.csdn.net/article/details/101382210
5前端控制器模式https://thinkwon.blog.csdn.net/article/details/101382247
6数据访问对象模式https://thinkwon.blog.csdn.net/article/details/101382287
7业务代表模式https://thinkwon.blog.csdn.net/article/details/101382356
8组合实体模式https://thinkwon.blog.csdn.net/article/details/101382390

实践应用

序号内容链接地址
1业务复杂=if else?刚来的大神竟然用策略+工厂彻底干掉了他们!https://thinkwon.blog.csdn.net/article/details/102924813

应用框架

如何学习一个框架或者技术

  • 是什么,简介,概述

  • 有什么用,用途,使用场景

  • 怎么用,在实际开发中的应用,注意事项

  • 优缺点

  • 框架原理,工作流程,工作原理

  • 常见面试题

  • 源码分析,核心类,核心方法,设计模式

  • 发布博客,在开发和实践中,博客反馈中持续改进

  • 与同事朋友交流,技术论坛,技术分享中持续丰富知识

常用框架

  • 集成开发工具(IDE):Eclipse、MyEclipse、Spring Tool Suite(STS)、Intellij IDEA、NetBeans、JBuilder、JCreator

  • JAVA服务器:tomcat、jboss、websphere、weblogic、resin、jetty、apusic、apache

  • 负载均衡:nginx、lvs

  • web层框架:Spring MVC、Struts2、Struts1、Google Web Toolkit(GWT)、JQWEB

  • 服务层框架:Spring、EJB

  • 持久层框架:Hibernate、MyBatis、JPA、TopLink

  • 数据库:Oracle、MySql、MSSQL、Redis

  • 项目构建:maven、ant

  • 持续集成:Jenkins

  • 版本控制:SVN、CVS、VSS、GIT

  • 私服:Nexus

  • 消息组件:IBM MQ、RabbitMQ、ActiveMQ、RocketMq

  • 日志框架:Commons Logging、log4j 、slf4j、IOC

  • 缓存框架:memcache、redis、ehcache、jboss cache

  • RPC框架:Hessian、Dubbo

  • 规则引擎:Drools

  • 工作流:Activiti

  • 批处理:Spring Batch

  • 通用查询框架:Query DSL

  • JAVA安全框架:shiro、Spring Security

  • 代码静态检查工具:FindBugs、PMD

  • Linux操作系统:CentOS、Ubuntu、SUSE Linux、

  • 常用工具:PLSQL Developer(Oracle)、Navicat(MySql)、FileZilla(FTP)、Xshell(SSH)、putty(SSH)、SecureCRT(SSH)、jd-gui(反编译)

Spring

序号内容链接地址
1Spring简介、设计理念、优缺点、应用场景https://thinkwon.blog.csdn.net/article/details/102810748
2Spring模块组成(框架组成、整体架构、体系架构、体系结构)https://thinkwon.blog.csdn.net/article/details/102810819
3Spring容器中bean的生命周期https://thinkwon.blog.csdn.net/article/details/102866432
4控制反转(IoC)与依赖注入(DI)详解https://thinkwon.blog.csdn.net/article/details/102912332

《Spring实战》读书笔记

序号内容链接地址
1《Spring实战》读书笔记-第1章 Spring之旅https://thinkwon.blog.csdn.net/article/details/103097364
2《Spring实战》读书笔记-第2章 装配Beanhttps://thinkwon.blog.csdn.net/article/details/103527675
3《Spring实战》读书笔记-第3章 高级装配https://thinkwon.blog.csdn.net/article/details/103536621
4《Spring实战》读书笔记-第4章 面向切面的Springhttps://thinkwon.blog.csdn.net/article/details/103541166
5《Spring实战》读书笔记-第5章 构建Spring Web应用程序https://thinkwon.blog.csdn.net/article/details/103550083
6《Spring实战》读书笔记-第6章 渲染Web视图https://thinkwon.blog.csdn.net/article/details/103559672
7《Spring实战》读书笔记-第7章 Spring MVC的高级技术https://thinkwon.blog.csdn.net/article/details/103562467

Spring MVC

MyBatis

序号内容链接地址
1MyBatis官方文档https://thinkwon.blog.csdn.net/article/details/100887995
2MyBatis官方文档-简介https://thinkwon.blog.csdn.net/article/details/100887076
3MyBatis官方文档-入门https://thinkwon.blog.csdn.net/article/details/100887176
4MyBatis官方文档-XML 配置https://thinkwon.blog.csdn.net/article/details/100887349
5MyBatis官方文档-XML 映射文件https://thinkwon.blog.csdn.net/article/details/100887478
6MyBatis官方文档-动态 SQLhttps://thinkwon.blog.csdn.net/article/details/100887702
7MyBatis官方文档-Java APIhttps://thinkwon.blog.csdn.net/article/details/100887746
8MyBatis官方文档-SQL 语句构建器类https://thinkwon.blog.csdn.net/article/details/100887821
9MyBatis官方文档-日志https://thinkwon.blog.csdn.net/article/details/100887951
10MyBatis功能架构https://thinkwon.blog.csdn.net/article/details/101295025
11MyBatis工作原理https://thinkwon.blog.csdn.net/article/details/101293609
12MyBatis核心类https://thinkwon.blog.csdn.net/article/details/101293216
13MyBatis面试宝典https://thinkwon.blog.csdn.net/article/details/101292950
14MyBatis实现一对一,一对多关联查询https://thinkwon.blog.csdn.net/article/details/101322334
15MyBatis缓存https://thinkwon.blog.csdn.net/article/details/101351212

MyBatis 源码分析

序号内容链接地址
1MyBatis 源码分析 - MyBatis入门https://thinkwon.blog.csdn.net/article/details/114808852
2MyBatis 源码分析 - 配置文件解析过程https://thinkwon.blog.csdn.net/article/details/114808962
3MyBatis 源码分析 - 映射文件解析过程https://thinkwon.blog.csdn.net/article/details/115423167
4MyBatis 源码分析 - SQL 的执行过程https://thinkwon.blog.csdn.net/article/details/115603376
5MyBatis 源码分析 - 内置数据源https://thinkwon.blog.csdn.net/article/details/116331419
6MyBatis 源码分析 - 缓存原理https://thinkwon.blog.csdn.net/article/details/116809942
7MyBatis 源码分析 - 插件机制https://thinkwon.blog.csdn.net/article/details/116809961

Quartz

序号内容链接地址
1Quartz简介https://thinkwon.blog.csdn.net/article/details/109936696

Hibernate

Shiro

Spring Security

Netty

搜索引擎

Lucene/Solr

Elasticsearch

ELK

中间件

消息中间件

RabbitMQ

RocketMQ

ActiveMQ

Kafka

远程过程调用中间件

Dubbo

数据访问中间件

Sharding JDBC

MyCat

Web应用服务器

Tomcat

待整理:Tomcat各组件作用 Tomcat集群 Tomcat面试题

序号内容链接地址
1Win10安装Tomcat服务器与配置环境变量https://thinkwon.blog.csdn.net/article/details/102622905
2Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项https://thinkwon.blog.csdn.net/article/details/102717537
3Tomcat与JDK版本对应关系,Tomcat各版本特性https://thinkwon.blog.csdn.net/article/details/102622738
4Tomcat目录结构https://thinkwon.blog.csdn.net/article/details/102619466
5Tomcat乱码与端口占用的解决方案https://thinkwon.blog.csdn.net/article/details/102622824
6Tomcat系统架构与请求处理流程https://thinkwon.blog.csdn.net/article/details/102676442
7史上最强Tomcat8性能优化https://thinkwon.blog.csdn.net/article/details/102744033

Nginx

缓存

本地缓存

客户端缓存

服务端缓存

​ web缓存,Redis,Memcached,Ehcache

其他

Zookeeper

微服务与分布式

Spring Boot

序号内容链接地址
1application.yml与bootstrap.yml的区别https://thinkwon.blog.csdn.net/article/details/100007093
2一分钟了解约定优于配置https://thinkwon.blog.csdn.net/article/details/101703815

Spring Cloud

序号内容链接地址
1Spring Cloud入门-十分钟了解Spring Cloudhttps://thinkwon.blog.csdn.net/article/details/103715146
2Spring Cloud入门-Eureka服务注册与发现(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103726655
3Spring Cloud入门-Ribbon服务消费者(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103729080
4Spring Cloud入门-Hystrix断路器(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103732497
5Spring Cloud入门-Hystrix Dashboard与Turbine断路器监控(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103734664
6Spring Cloud入门-OpenFeign服务消费者(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103735751
7Spring Cloud入门-Zuul服务网关(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103738851
8Spring Cloud入门-Config分布式配置中心(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103739628
9Spring Cloud入门-Bus消息总线(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103753372
10Spring Cloud入门-Sleuth服务链路跟踪(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103753896
11Spring Cloud入门-Consul服务注册发现与配置中心(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103756139
12Spring Cloud入门-Gateway服务网关(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103757927
13Spring Cloud入门-Admin服务监控中心(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103758697
14Spring Cloud入门-Oauth2授权的使用(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103761687
15Spring Cloud入门-Oauth2授权之JWT集成(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103763364
16Spring Cloud入门-Oauth2授权之基于JWT完成单点登录(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103766368
17Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103769680
18Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103770879
19Spring Cloud入门-Seata处理分布式事务问题(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103786102
20Spring Cloud入门-汇总篇(Hoxton版本)https://thinkwon.blog.csdn.net/article/details/103786588

服务注册发现

服务配置

负载均衡

服务调用

服务限流

熔断降级

网关路由

服务权限

链路追踪

分布式事务

分布式缓存

分布式会话

日志收集

服务监控

消息驱动

数据处理流

自动化测试与部署

第三方支持

分布式协调服务Zookeeper

程序员的一些思考

序号内容链接地址
1程序员写个人技术博客的价值与意义https://thinkwon.blog.csdn.net/article/details/102980571
2Java知识体系最强总结(2020版)https://thinkwon.blog.csdn.net/article/details/103592572
3博客之星,有你的鼓励更精彩https://thinkwon.blog.csdn.net/article/details/112517796

团队与项目管理

需求调研

项目管理

序号内容链接地址
1Worktile、Teambition与Tower项目管理软件对比https://thinkwon.blog.csdn.net/article/details/106064807

代码管理

文档管理

序号内容链接地址
1几款常见接口管理平台对比https://thinkwon.blog.csdn.net/article/details/106064883
2Swagger2常用注解说明https://thinkwon.blog.csdn.net/article/details/107477801

测试

Python

序号内容链接地址
1Win10安装Python3.9https://thinkwon.blog.csdn.net/article/details/112411897
2Anaconda安装https://thinkwon.blog.csdn.net/article/details/112412165
3PyCharm2020.3.2安装https://thinkwon.blog.csdn.net/article/details/112412497
4PyCharm常用配置和常用插件https://thinkwon.blog.csdn.net/article/details/112412783

运维

常规监控

APM

持续集成(CI/CD):Jenkins,环境分离

自动化运维:Ansible,puppet,chef

测试:TDD 理论,单元测试,压力测试,全链路压测,A/B 、灰度、蓝绿测试

虚拟化:KVM,Xen,OpenVZ

容器技术:Docker

云技术:OpenStack

DevOps

操作系统

计算机操作系统

计算机原理

Linux

CPU

进程,线程,协程

CentOS8

序号内容链接地址
1VMware Workstation Pro 16搭建CentOS8虚拟机集群https://thinkwon.blog.csdn.net/article/details/115058171
2CentOS8安装Dockerhttps://thinkwon.blog.csdn.net/article/details/115056214
3CentOS8搭建Nacos1.4.0集群https://thinkwon.blog.csdn.net/article/details/115056401
4CentOS8安装GitLab13.7.2https://thinkwon.blog.csdn.net/article/details/115056528
5CentOS8安装MySQL8https://thinkwon.blog.csdn.net/article/details/115055934

推荐书籍

序号内容链接地址
1读书清单-计算机https://thinkwon.blog.csdn.net/article/details/108077754

读书笔记

序号内容链接地址
1高效休息法-读书笔记https://thinkwon.blog.csdn.net/article/details/118638191
2斯坦福高效睡眠法-读书笔记https://thinkwon.blog.csdn.net/article/details/108349844
3高效能人士的七个习惯-读书笔记https://thinkwon.blog.csdn.net/article/details/108941111
4富爸爸穷爸爸-读书笔记https://thinkwon.blog.csdn.net/article/details/109261723
5如何阅读一本书-读书笔记https://thinkwon.blog.csdn.net/article/details/115422659
6人性的弱点-读书笔记https://thinkwon.blog.csdn.net/article/details/116809824
7麦肯锡极简工作法-读书笔记https://thinkwon.blog.csdn.net/article/details/118638191

云计算

IaaS、SaaS、PaaS、虚拟化技术、openstack、Serverlsess

搜索引擎

Solr、Lucene、Nutch、Elasticsearch

权限管理

Shiro、Spring Security

区块链

哈希算法、Merkle树、公钥密码算法、共识算法、Raft协议、Paxos 算法与 Raft 算法、拜占庭问题与算法、消息认证码与数字签名

1JAVA SE 1.1深入JAVA API 1.1.1Lang包 1.1.1.1String类和StringBuffer类 位于java.lang包中,这个包中的类使用时不用导入 String类一旦初始化就不可以改变,而stringbuffer则可以。它用于封装内容可变的字符串。它可以使用tostring()转换成string字符串。 String x=”a”+4+”c”编译时等效于String x=new StringBuffer().append(“a”).append(4).append(“c”).toString(); 字符串常量是一种特殊的匿名对象,String s1=”hello”;String s2=”hello”;则s1==s2;因为他们指向同一个匿名对象。 如果String s1=new String(“hello”);String s2=new String(“hello”);则s1!=s2; /*逐行读取键盘输入,直到输入为“bye”时,结束程序 注:对于回车换行,在windows下面,有'\r'和'\n'两个,而unix下面只有'\n',但是写程序的时候都要把他区分开*/ public class readline { public static void main(String args[]) { String strInfo=null; int pos=0; byte[] buf=new byte[1024];//定义一个数组,存放换行前的各个字符 int ch=0; //存放读入的字符 system.out.println(“Please input a string:”); while(true) { try { ch=System.in.read(); //该方法每次读入一个字节的内容到ch变量中。 } catch(Exception e) { } switch(ch) { case '\r': //回车时,不进行处理 break; case '\n': //换行时,将数组总的内容放进字符串中 strInfo=new String(buf,0,pos); //该方法将数组中从第0个开始,到第pos个结束存入字符串。 if(strInfo.equals("bye")) //如果该字符串内容为bye,则退出程序。 { return; } else //如果不为bye,则输出,并且竟pos置为0,准备下次存入。 { System.out.println(strInfo); pos=0; break; } default: buf[pos++]=(byte)ch; //如果不是回车,换行,则将读取的数据存入数组中。 } } } } String类的常用成员方法 1、构造方法: String(byte[] byte,int offset,int length);这个在上面已经用到。 2、equalsIgnoreCase:忽略大小写的比较,上例中如果您输入的是BYE,则不会退出,因为大小写不同,但是如果使用这个方法,则会退出。 3、indexOf(int ch);返回字符ch在字符串中首次出现的位置 4、substring(int benginIndex); 5、substring(int beginIndex,int endIndex); 返回字符串的子字符串,4返回从benginindex位置开始到结束的子字符串,5返回beginindex和endindex-1之间的子字符串。 基本数据类型包装类的作用是:将基本的数据类型包装成对象。因为有些方法不可以直接处理基本数据类型,只能处理对象,例如vector的add方法,参数就只能是对象。这时就需要使用他们的包装类将他们包装成对象。 例:在屏幕上打印出一个*组成的矩形,矩形的宽度和高度通过启动程序时传递给main()方法的参数指定。 public class testInteger { public static void main(String[] args) //main()的参数是string类型的数组,用来做为长,宽时,要转换成整型。 { int w=new Integer(args[0]).intValue(); int h=Integer.parseInt(args[1]); //int h=Integer.valueOf(args[1]).intValue(); //以上为三种将字符串转换成整形的方法。 for(int i=0;i<h;i++) { StringBuffer sb=new StringBuffer(); //使用stringbuffer,是因为它是可追加的。 for(int j=0;j<w;j++) { sb.append('*'); } System.out.println(sb.toString()); //在打印之前,要将stringbuffer转化为string类型。 } } } 比较下面两段代码的执行效率: (1)String sb=new String(); For(int j=0;j<w;j++) { Sb=sb+’*’; } (2) StringBuffer sb=new StringBuffer(); For(int j=0;j<w;j++) { Sb.append(‘*’); } (1)和(2)在运行结果上相同,但效率相差很多。 (1)在每一次循环中,都要先将string类型转换为stringbuffer类型,然后将‘*’追加进去,然后再调用tostring()方法,转换为string类型,效率很低。 (2)在没次循环中,都只是调用原来的那个stringbuffer对象,没有创建新的对象,所以效率比较高。 1.1.1.2System类Runtime类 由于java不支持全局函数和全局变量,所以java设计者将一些系统相关的重要函数和变量放在system类中。 我们不能直接创建runtime的实例,只能通过runtime.getruntime()静态方法来获得。 编程实例:在java程序中启动一个windows记事本程序的运行实例,并在该运行实例中打开该运行程序的源文件,启动的记事本程序5秒后关闭。 public class Property { public static void main(String[] args) { Process p=null; //java虚拟机启动的进程。 try { p=Runtime.getRuntime().exec("notepad.exe Property.java"); //启动记事本并且打开源文件。 Thread.sleep(5000); //持续5秒 p.destroy(); //关闭该进程 } catch(Exception ex) { ex.printStackTrace(); } } } 1.1.1.3Java语言中两种异常的差别 Java提供了两类主要的异常:runtime exception和checked exception。所有的checked exception是从java.lang.Exception类衍生出来的,而runtime exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的。    它们的不同之处表现在两方面:机制上和逻辑上。    一、机制上    它们在机制上的不同表现在两点:1.如何定义方法;2. 如何处理抛出的异常。请看下面CheckedException的定义:    public class CheckedException extends Exception    {    public CheckedException() {}    public CheckedException( String message )    {    super( message );    }    }    以及一个使用exception的例子:    public class ExceptionalClass    {    public void method1()    throws CheckedException    {     // ... throw new CheckedException( “...出错了“ );    }    public void method2( String arg )    {     if( arg == null )     {      throw new NullPointerException( “method2的参数arg是null!” );     }    }    public void method3() throws CheckedException    {     method1();    }    }    你可能已经注意到了,两个方法method1()和method2()都会抛出exception,可是只有method1()做了声明。另外,method3()本身并不会抛出exception,可是它却声明会抛出CheckedException。在向你解释之前,让我们先来看看这个类的main()方法:    public static void main( String[] args )    {    ExceptionalClass example = new ExceptionalClass();    try    {    example.method1();    example.method3();    }    catch( CheckedException ex ) { } example.method2( null );    }    在main()方法中,如果要调用method1(),你必须把这个调用放在try/catch程序块当中,因为它会抛出Checked exception。    相比之下,当你调用method2()时,则不需要把它放在try/catch程序块当中,因为它会抛出的exception不是checked exception,而是runtime exception。会抛出runtime exception的方法在定义时不必声明它会抛出exception。    现在,让我们再来看看method3()。它调用了method1()却没有把这个调用放在try/catch程序块当中。它是通过声明它会抛出method1()会抛出的exception来避免这样做的。它没有捕获这个exception,而是把它传递下去。实际上main()方法也可以这样做,通过声明它会抛出Checked exception来避免使用try/catch程序块(当然我们反对这种做法)。    小结一下:    * Runtime exceptions:    在定义方法时不需要声明会抛出runtime exception;    在调用这个方法时不需要捕获这个runtime exception;    runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。    * Checked exceptions:    定义方法时必须声明所有可能会抛出的checked exception;    在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去;    checked exception是从java.lang.Exception类衍生出来的。    二、逻辑上    从逻辑的角度来说,checked exceptions和runtime exception是有不同的使用目的的。checked exception用来指示一种调用方能够直接处理的异常情况。而runtime exception则用来指示一种调用方本身无法处理或恢复的程序错误。    checked exception迫使你捕获它并处理这种异常情况。以java.net.URL类的构建器(constructor)为例,它的每一个构建器都会抛出MalformedURLException。MalformedURLException就是一种checked exception。设想一下,你有一个简单的程序,用来提示用户输入一个URL,然后通过这个URL去下载一个网页。如果用户输入的URL有错误,构建器就会抛出一个exception。既然这个exception是checked exception,你的程序就可以捕获它并正确处理:比如说提示用户重新输入。 

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 718

打赏作者

ThinkWon

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值