导图社区 全栈知识点
这是一篇关于全栈知识点的思维导图,介绍了编程和数据处理的基础知识,内容详细,知识全面,希望可以对大家有所帮助!
编辑于2024-05-30 14:59:38"Spring Security:守护应用安全的强大盾牌!作为应用层安全框架,它通过统一配置简化开发,避免代码混乱核心包org.springframeworksecurity.coreuserdetails提供用户管理基础,InMemoryUserDetailsManager等实现灵活接口设计从入门到实战,涵盖OAuth 2、OpenID Connect、HTTPS配置等关键场景,深度解析认证授权架构原理(如ssiach2ex1案例)无论是理解安全现状、接口设计,还是覆盖默认配置,它都直面‘为何软件安全至关重要’的命题,为开发者提供从理论到实践的全套解决方案。"
这是一篇关于全栈知识点的思维导图,介绍了编程和数据处理的基础知识,内容详细,知识全面,希望可以对大家有所帮助!
css知识点整理,一张图带你完全了解相关内容,通过思维导图帮你提高效率,赶紧来试一试吧~
社区模板帮助中心,点此进入>>
"Spring Security:守护应用安全的强大盾牌!作为应用层安全框架,它通过统一配置简化开发,避免代码混乱核心包org.springframeworksecurity.coreuserdetails提供用户管理基础,InMemoryUserDetailsManager等实现灵活接口设计从入门到实战,涵盖OAuth 2、OpenID Connect、HTTPS配置等关键场景,深度解析认证授权架构原理(如ssiach2ex1案例)无论是理解安全现状、接口设计,还是覆盖默认配置,它都直面‘为何软件安全至关重要’的命题,为开发者提供从理论到实践的全套解决方案。"
这是一篇关于全栈知识点的思维导图,介绍了编程和数据处理的基础知识,内容详细,知识全面,希望可以对大家有所帮助!
css知识点整理,一张图带你完全了解相关内容,通过思维导图帮你提高效率,赶紧来试一试吧~
全栈知识点
计算机组成原理
操作系统
计算机网络
数据结构和算法
数据结构
线性结构
数组
动态数组
链表
算法
前端
HTML
注释
排版标签
h1-h6
p
div
文本标签
span
还有很多文本标签都可以使用css达到相同效果
图片标签
img
src属性
alt属性
超链接标签
列表标签
表格标签
辅助标签
表单
框架标签
字符实体
meta原信息
H5标签
CSS
编写位置
选择器
JavaScript
JavaScript简介
简介
历史
词法结构(Lexical Structure)
程序文本
区分大小写
忽略空格和换行
行终止符
注释
单行注释
多行注释
字面量
标识符和保留字
Unicode
转义字符
可选的分号
类型、值和变量(Types,Values, and Variables)
类型概述
原始类型
数值
数值字面量
无穷值 Infinity
非数值 NaN
NaN与任何值比较都不相等(包括它自己)
负零
二进制浮点数与舍入错误
BigInt类型
123456789n
BigInt函数类型转换
不能与普通数值进行混合算数运算
时间戳
文本
字面量
转义字符
字符串使用
模板字面量
在反引号字符串中插入表达式
正则表达式
布尔值
假性值
false
undefined
null
0
-0
NaN
""
null和undefined
符号 Symbol
全局对象
node
global属性
浏览器
window属性
globalThis
原始值不可以修改,对象引用可以修改
类型转换
变量声明与赋值
const
let
var
解构赋值
解构数组
解构对象
表达式与操作符(Expressions and Operators)
操作符
表达式
主表达式
对象和数组初始化表达式
函数定义表达式
属性访问表达式
条件式属性访问表达式
调用表达式
条件式调用表达式
对象创建表达式
算数表达式
加 减 乘 除 幂 取模
一元操作符
位操作符
关系表达式
相等和不相等操作符
比较操作符
in
instanceof
逻辑表达式
&&
||
!
赋值表达式
=
赋值操作符
求值表达式
eval
条件操作符
条件 ? 符合条件表达式 : 不符合条件表达式
先定义
a ?? b
??与||的区别
typeof操作符
delete操作符
await操作符
void操作符
逗号操作符
语句(Statements)
表达式语句
复合语句和空语句
条件语句
if
switch
循环语句
while语句
do-while语句
for语句
for-of语句
遍历数组
for-in语句
遍历对象
跳出语句
break语句
continue语句
return语句
yield语句
throw语句
try-catch-finally语句
with语句
debugger语句
"use strict"语句
声明语句
对象(Objects)
创建对象
直接通过对象字面量创建对象
使用new通过构造函数创建对象
Object.create()创建对象
原型
查询和设置属性
通过点.或方括号[]查询和设置属性
属性继承
删除属性
delete
测试属性
in操作符
hasOwnProperty
propertyIsEnumerable
!==
枚举属性
for-in
Object.keys
for-of
Object.getOwnPropertyNames
Object.getOwnPropertySymbols
Reflect.ownKeys
扩展对象
Object.assign
序列化对象
JSON.stringify
序列化
JSON.parse
反序列化
对象方法
toString
toLocaleString
valueOf
toJSON
JSON.stringify时会用到
字面量扩展语法
属性简写
计算的属性名
符号作为属性名
数组(Arrays)
函数(Functions)
类(Classes)
模块(Modules)
JavaScript标准库
迭代器与生成器(Iterators and Generators)
异步(Asynchronous)
元编程(Metaprogramming)
浏览器中的JavaScript
Node服务器端JavaScript
nvm的使用
使用ESLint检查代码
使用Prettier格式化代码
使用Jest做单元测试
包管理工具
npm
cnpm
yarn
代码打包(Code Bundling)
webpack
Rollup
Rollup打包React
vite
使用Babel转译
JSX
使用Flow检查类型
TypeScript
Vue
React
Java基础
JavaSE
基础知识
变量
操作符
表达式、语句和块
流程控制语句
分支语句
循环语句
跳出循环
break
return
continue
标签跳转(跳到多层循环外)
JavaDoc
数组
数组的创建和使用
数组的复制
System.arraycopy(结果作为参数传入)
Arrays.copyOfRange(结果是返回值)
面向对象
类的声明
成员变量
方法
构造方法
this关键字
访问控制
修饰类
public
无修饰符
修饰成员
public
protected
无修饰符
private
类成员(静态成员)
字段初始化
静态字段和实例字段的初始化位置
字段的默认初始值
嵌套类
内部类
静态嵌套类
局部类
匿名类
Lambda表达式
枚举类型(Enum)
通过私有化构造,自己实现枚举
枚举的创建和使用
接口
继承
泛型
包
常用类
Numbers
Strings
日期时间对象
异常
File类和I/0
File类
main方法和测试方法中的相对路径
getAbsoluteFile使用场景
流
抽象类
字节流
InputStream
OutputStream
字符流
Reader
Writer
文件流
文件字节流
FileInputStream
FileOutputStream
文件字符流
FileReader
FileWriter
文件缓冲流
文件缓冲字节流
BufferedInputStream
BufferedOutputStream
文件缓冲字符流
BufferedReader
特有方法readLine()
BufferedWriter
特有方法:newLine()
flush()方法的用处
缓冲流的close清理过程
转换流
系统默认字符集
InputStreamReader
OutputStreamWriter
数据流和对象流
对象序列化
数据流
DataInputStream
DataOutputStream
对象流
ObjectInputStream
ObjectOutputStream
Serializable接口
serialVersionUID常量的作用
打印流
PrintStream
使用common io简化开发
并发编程
平台环境
正则表达式
集合(Collections)
打包程序为JAR文件
国际化
Java SE中的安全功能
JavaBeans
扩展机制
反射
Class类
获取Class对象的多种方式
注解
JDK常见注解
@Deprecated
@Override
@SuppressWarnings
自定义注解
元注解
@Target
@Retention
框架开发,注解和反射配合使用
客户端编程
JavaFX
Scene Builder
Swing
部署
2D图形
全屏独占模式API
JVM
类加载子系统
加载(Loading)
各种类加载器
引导类加载器
扩展类加载器
系统类加载器
用户自定义类加载器
双亲委派机制
链接(Linking)
验证(Verification)
准备(Preparation)
解析(Resolution)
初始化(Initialization)
运行时数据区
Java日志
日志门面
SLF4J(Simple Logging Facade for Java)
级别
ERROR
WARN
INFO
DEBUG
TRACE
适配器
无需适配器
nop
slf4j simple
logback
需要适配器
JUL
log4j
Apache Commons Logging (Jakarta Commons Logging,JCL)
级别
fatal
error
warn
info
debug
trace
配置实现
jcl会按顺序加载Log4JLogger,Jdk14Logger,Jdk13LumberjackLogger,SimpleLog(JCL自带的),有就使用,没有就去找下一个
默认使用JUL
只要引入Log4j依赖,JCL就会自动使用Log4j
日志框架
JUL(Java Util Logging)
结构
Logger(日志记录器)
Handler(日志输出,可以多个)
Formatter(日志格式)
Handler消息级别(控制日志是否被输出到指定位置)
日志记录器消息级别(控制日志是否被记录)
级别
SEVERE
WARNING
INFO
CONFIG
FINE
FINER
FINEST
日志记录器父子关系
通过配置文件
LogManager读取配置文件
Apache Log4j
级别
FATAL
ERROR
WARN
INFO
DEBUG
TRACE
配置
默认配置
BasicConfigurator.configure();
log4j.properties配置文件
Logback
log4j的改进版,也是SpringBoot默认的日志框架。
Log4j2
spring boot配置日志
默认配置
slf4j+logback
logback转log4j2
Java服务端开发
Spring
容器相关接口和类
BeanFactory接口
ApplicationContext接口
ClassPathXmlApplicationContext实现类
FileSystemXmlApplicationContext实现类
AnnotationConfigApplicationContext实现类
XML配置控制反转和依赖注入
配置Bean
无参构造
有参构造
静态工厂方法
非静态工厂方法
依赖注入
有参构造
setter方法
Web应用开发
Tomcat服务器
Java服务器软件种类
Tomcat版本与Jakarta EE版本关系
下载安装Tomcat
Tomcat配置
Tomcat控制台乱码问题
Servlet
动态网页和静态网页的区别
版本问题
Servlet目录规范
WEB-INF目录
Servlet接口
Servlet生命周期
Servlet对象何时被创建,何时被销毁?
service()方法
GenericServlet抽象类
基于GenericServlet开发和基于Servlet接口开发有什么区别?
GenericServlet抽象类如何将ServletConfig从局部变量变为字段?
ServletConfig对象
ServletContext对象
HttpServlet类
模板方法设计模式
HttpServletRequest接口
获取Http请求信息
转发
HttpServletResponse接口
设置响应头
解决中文乱码问题
响应字符
响应字节流
重定向
注解开发
JSP
JSP的作用和职责,与Servlet的关系?
JSP中的注释
如果编写一般注释会出现什么问题?
JSP中编写Java代码
<% %>
<%= %>
<%! %>
JSP内置对象
从Servlet的角度理解内置对象的原理
其实就是将JSP代码翻译为Servlet代码时,在service()方法中生成的局部变量。
指令
EL表达式
获取域数据
指定域范围获取数据
pageContext使用
param、paramValues使用
initParam使用
JSTL标签库
使用JSTL需要的Maven依赖
使用JSTL的目的是什么
Session和Cookie
Session的实现原理
Session对象何时会被创建?
Session过期时间
如何设置Cookie?
Cookie有效期
请求何时会携带Cookie
设置Cookie路径
过滤器
职责链设计模式
过滤器生命周期
Filter接口
web.xml或注解配置过滤器
过滤器路径通配符
监听器
监听器可以监听的时机以及对应需要实现的接口
web.xml或注解配置监听器
MVC
不使用MVC模式存在的问题
模型、视图和控制器
三层架构:表示层、业务逻辑层和持久化层
三层架构与MVC架构模式的关系
Java数据库开发
JDBC
流程
注册驱动
方式一:创建Driver对象
方式二:通过DriverManager注册驱动
mysql-connector-j驱动内部会自动注册驱动
获取连接
方式一:使用Driver对象获取
方式二:使用DriverManager获取
使用配置文件存储连接参数
执行Sql语句
ORM思想
Statement
存在Sql注入问题
PreparedStatement
占位符和预编译解决sql注入
增
删
改
查
结果集对象的处理
getMetaData获取结果集列信息
通过反射将结果集数据写入实体类对象中
BLOB类型数据处理
setBlob
getBlob
getBinaryStream
大文件处理:max_allowed_packet配置
批量插入数据
setAutoCommit设置连接不自动提交
使用Batch
流程小结
1.注册驱动 2.获取连接 DriverManager.getConnection 3.connection.setAutoCommit(false); 开启事务 4.获取Statement或者PreparedStatement对象 5.如果是PreparedStatement,设置占位符 6.执行Statement或PreparedStatement 7.connection.commit(); 手动提交 8.处理结果集
事务
四种隔离级别
读未提交(Read Uncommitted)
脏读(Dirty Read)
不可重复读(Non-Repeatable Read)
幻读(Phantom Read)
读已提交(Read Committed)
不可重复读(Non-Repeatable Read)
幻读(Phantom Read)
可重复读(Repeatable Read)
幻读(Phantom Read)
串行化(Serializable)
连接池
c3p0
c3p0-config.xml配置文件
ComboPooledDataSource连接池对象
dbcp
properties配置文件
BasicDataSourceFactory
BasicDataSource
druid
properties配置文件
DruidDataSourceFactory
DruidDataSource
Apache DBUtils工具类
简化sql执行参数和结果集编写
Mybatis
JDBC存在的不足
入门案例
导入Maven依赖
mybatis-config.xml核心配置文件
<configuration>
<properties> 属性
<settings> 设置
logImpl配置日志实现
<environments> default:默认环境
<environment> id:环境标识
<transactionManager> 事务管理 type="JDBC" mybatis自己管理事务 type="MANAGED" 容器管理事务
<dataSource> 配置连接参数 type:设置数据库连接池类型
<property>
<mappers>
配置XxxxMapper.xml文件位置
XxxxMapper.xml配置文件
执行代码
1.创建SqlSessionFactoryBuilder对象 2.获取配置文件数据流 3.创建SqlSessionFactory对象 4.创建SqlSession对象 5.执行sql 6.手动提交事务
增删改查
<mapper> namespace:命名空间
<insert>
<delete>
<update>
<select>
Web项目中使用Mybatis
Mybatis-Plus
Spring Boot
认证和鉴权
Apache Shiro
Spring Security
服务端API文档
分布式/微服务
服务注册与发现
Netflix Eureka
Etcd
Consul
概述
下载安装
服务注册步骤
1.导入依赖 2.配置yml 3.@EnableDiscoveryClient注解
Alibaba Nacos
负载与调用
Netflix Ribbon
Netflix Feign
LoadBalancer
OpenFeign
分布式事务
LCN
Hmily
Alibaba Seata
熔断降级
Netflix Hystrix
Circuit Breaker
Resilience4J
Spring Retry
Alibaba Sentinel
链路追踪
Sleuth+Zipkin
Micrometer Tracing
分布式配置
Spring Cloud Config + Bus
Consul
Alibaba Nacos
网关
Zuul
GateWay
专项研究
git
Linux
Linux的规则与安装
文件权限与目录配置
文件与目录管理
磁盘与文件系统管理
文件与文件系统的压缩
vim程序编辑器
认识与学习BASH
正则表达式与文件格式化处理
学习shell脚本
账号管理与ACL权限设置
磁盘配额(Quota)
计划任务(crontab)
进程管理与SELinux初探
系统服务(daemon)
分析日志文件
启动流程、模块管理与Loader
基础系统设置与备份策略
软件安装:源代码与Tarball
软件安装RPM、SRPM与YUM
X Window设置介绍
Linux内核编译与管理
Maven
Mysql数据库
安装与概述
安装
windows
5.x版安装
8.x版安装
卸载
初始化配置
MariaDB设置无密码不能登录
MariaDB设置远程登录
mysql 5.x默认字符集修改
规则和规范
Linux和Window中的区分大小写问题
DML(Data Manipulation Language)
SELECT
基础查询
后面跟表达式
别名:AS
去除重复项:DISTINCT
空值计算:IFNULL
着重号
显示表结构:DESC(DESCRIBE)
数据过滤:WHERE
运算符
算数运算符
字符串隐式转换为数字
与NULL计算的情况
比较运算符
与NULL比较
安全等于
与NULL相关的关键字和函数
区间查询
BETWEEN ... AND ...
集合查询
IN
模糊查询
LIKE
%占位符
_占位符
正则表达式
REGEXP
逻辑运算符
OR
AND
NOT
XOR(异或)
位运算符
排序
ORDER BY
ASC
DESC
分页
LIMIT
OFFSET
多表查询
内连接
外连接
左外连接
右外连接
满外连接
Mysql不支持FULL这种满外连接写法
使用UNION ALL实现满外连
自然连接
NATURAL JOIN
USING
函数
单行函数
数值函数
字符串函数
聚合函数
DDL
其它数据库对象
Mysql8新特性
Mysql架构
Mysql索引调优
Mysql事务
Mysql日志和备份
nginx
设计模式