java学习
2021-10-29 16:21:14 137 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
本人学习java做的一些整理工作(自用),不定时更新. @updateTime 2021/3/28
作者其他创作
大纲/内容
default
private
public
protected
权限修饰符
static变量
static方法
static常量代码块
static
final变量
final方法
final类
final
abstract类
abstract方法
abstract
synchronized
volatile
transient
非权限修饰符
修饰符
隐式类型转换
显式类型转换
引用类型转换
类型转换
@Target
@Retention
@Document
@Inherited
元注解
@Override
@Deprecated
@SuppressWarnings
标准注解
自定义注解
注解
反射
map
list
set
容器
静态代理
代理
byte
short
int
long
float
double
boolean
char
基本数据类型
Integer
Long
Float
Double
Enum
Boolean
封装类型
count: int
threshold: int
loadFactor: int
modCount: int=0
变量
rehash(): void
方法
HashTable
resize
treeifyBin
size
HashMap
map: HashMap<>
HashSet
ArrayList
LinkedList
JDK自带类
类
对象持久化
网络传输对象
序列化的用途
验证版本一致性
作用
指定值
编译器自动生成
生成方式
静态变量序列化
serialVersionUID
序列化
Serializable
Cloneable
jdk自带接口
接口
类型
Java语法
JRE
SPI机制
lambda表达式
Function
Predicate
Consumer
Supplier
四大函数式接口
函数式接口
stream流式计算
Hashmap优化
concurrent优化
速度更快
of
ofNullable
orElse
orElseGet
区别:of遇到空值会返回NoSuchElement异常,而ofNullable允许空值的存在
区别:orElse不管Optinal中的值是否为空都会调用other,orElseGet只有在空的时候才会调用
Optional
Java8新特性
继承thread类
实现runnable方法
实现Callable接口
创建线程
run
start
setPriority
sleep
join
yield
interrupt
isAlive
ready
block
dead
线程状态
thread
用户线程
守护线程
同步方法
同步块
ReentrantLock
lock
await
signal
Condition
Lock
8锁现象
集合类不安全
CountDownLatch
CyclicBarrier
acquire
release
Semaphore
常见的辅助类
ReadWriteLock
读写锁
阻塞队列API表格
SynchronousQueue
BlockingQueue
队列
同步容器
三大方法
七大参数
AbortPolicy
CallerRunsPolicy
DiscardPolicy
DiscardOldestPolicy
四种拒接策略
IO密集型和CPU密集型
线程池
ForkJoin
并行流
异步回调
AtomicStampedReference
AtomicReference
Atomic类
jps
死锁解决
死锁
JUC
线程同步
ABA问题
自旋锁
CAS
Java 多线程
JDK
存放new的对象和数组
可以被所有的线程共享,不会存放别的对象引用
堆
存放基本变量类型(会包含这个基本类型的具体数值)
引用对象的变量(会存放这个引用在堆里面的具体地址)
栈
可以被所有线程共享
包含了所有的class和static变量
方法区
JMM
JVM位置
JVM体系结构
沙箱安全机制
Native
PC寄存器
运行时常量池
Java虚拟机栈
本地方法栈
sun公司 HotSpot
BEA JRockit
IBM J9VM
三种JVM
对象访问定位
堆内存分配策略
堆内存调优
引用计数器算法
引用可达性算法
对象是否死亡
强引用
软引用
弱引用
虚引用
引用
弱分代假说
强分代假说
跨代引用假说
分代假说
记忆集
新生代
老年代
划分堆
Minor GC/Young GC
Major GC/Old GC
Mixed GC
Partial GC
Full GC
收集策略
标记-清除算法
半区复制
分配担保
Appel式回收
标记-复制算法
标记-整理算法
”和稀泥式“解决方案
垃圾收集算法
Serial收集器
ParNew收集器
Parallel Scavenge收集器
Serial Old收集器
HotSpot虚拟机垃圾收集器
GC
直接内存
无符号
表
Class文件格式图
魔数
版本号
字面量
符号引用
常量池项目类型图
常量池
储存格式
类文件结构
类的生命周期图
加载
文件格式验证
元数据验证
字节码验证
符号引用验证
验证
准备
解析
初始化
使用
卸载
外框
类的生命周期
链接
虚拟机自带的加载器
启动类(根)加载器
扩展类加载器
应用程序(系统类)加载器
类加载器种类
双亲委派机制
类加载器
类加载
类文件及其加载
《深入理解JVM》
JVM
Java开发手册
命名规约
java基础
网络编程
i
x
:
命令模式
输入模式
q
w
底线命令模式
vim键盘图
Vim编辑器
useradd
userdel
usermod
su
passwd
账号管理
groupadd
groupdel
groupmod
newgrp
用户组管理
df
du
mount
unmount
磁盘管理
ps
|
grep
pstree
kill
进程管理
命令
硬链接
软链接
Linux
User Interface
Application
Domain
Infrastructure
DDD的分层结构图
分层架构
DDD(领域驱动设计)
架构设计方法论
Servlet
javaWeb
git结构
git基本命令
.gitignore文件
git文件状态
git
版本控制
openfeign
gateway
nacos
rabbitmq
spring cloud
就近原则
依赖传递
maven管理
自动配置
自动配置原理
@Configuration
@Bean
底层注解
基础入门
springboot2核心技术
springboot2响应式编程
尚硅谷springboot
spring boot
过程
目的
BeanFactory
ApplicationContext
实现方式
基于xml方式创建对象
基于xml方式注入属性
xml自动装配
基于xml配置文件实现
@Service
@Component
@Controller
@Repository
spring针对bean管理提供的注解
基于注解方式实现对象创建
@Autowired
@Qualifier
@Resource
@Value
基于注解方式实现属性注入
完全注解开发
基于注解方式实现
FactoryBean
scope
bean生命周期
Bean管理
IOC
有接口
无接口
底层原理
连接点
切入点
前置通知
后置通知
环绕通知
异常通知
最终通知
通知(增强)
切面
术语
准备工作
@Before
@After
@AfterThrowing
@Around
@AfterReturning
AspectJ注解
操作
AOP
update
queryForObject
query
batchUpdate
常用函数
原子性
一致性
隔离性
持久性
四个特性
表格
事务隔离级别
脏读
不可重复读
虚(幻)读
三个读问题
timeout
readOnly
rollbackFor
noRollbackFor
事务
@Transactional
jdbcTemplate
spring5框架整合Log4j2
spring5框架核心容器支持@Nullable注解
spring5核心容器支持函数式风格GenericApplicationContext
spring5支持整合Junit5
异步非阻塞
非阻塞式
函数式编程
特点
Observer
Observable
java8中提供类
观察者模式
Mono
Flux
实现类
元素值
错误信号
完成信息
三种数据信号
终止信号
Reactor实现
响应式编程
spring5框架新功能(Webflux)
spring5框架新功能
spring
springMVC
spring官网
微服务框架
mybatis官网
mybatis
Hibernate
ORM
持久化概念
持久层框架
Scheduler
Job
JobDataMap
@DisallowConcurrentExecution
@PersistJobDataAfterExecution
JobDetail
TriggerKey
jobKey
startTime
endTime
priority
misfire
calendar
公共属性
SimpleTrigger
Second
Minutes
Hours
Day-of-Month
Month
Day-of-Week
Year(optinal field)
CronExpression
CronTrigger
子主题
Trigger
JobBuilder
TriggerBuilder
TriggerListener
JobListener
SchedulerListener
API
Jobs
Triggers
StdSchedulerFactory
DirectSchedulerFactory
SchedulerFactory
RAMJobStore
JDBCJobStore
JobStores
quartz
任务框架
开发框架
单一职责原则
接口隔离原则
依赖倒转原则
里氏替换原则
开闭原则
迪米特法则
合成复用原则
设计模式七大原则
代码重用性
可读性
可扩展性
可靠性
高内聚,低耦合
设计模式目的
设计原则思想
饿汉式(静态变量)
饿汉式(静态代码块)
懒汉式(线程不安全)
懒汉式(线程安全,同步方法)
懒汉式(线程安全,同步代码块)
双重检查
静态内部类
枚举
单例模式
抽象工厂模式
类图
原型模式
建造者模式
简单工厂模式
工厂方法模式
工厂模式
创建型模式
类适配器
对象适配器
接口适配器
适配器模式
桥接模式
过滤器模式
装饰者模式
组合模式
外观模式
享元模式
动态代理
Cglib代理
形式
代理模式
结构型模式
模板方法模式
访问者模式
迭代器模式
中介者模式
备忘录模式
解释器模式(Interpreter模式)
状态模式
策略模式
职责链模式(责任链模式)
行为型模式
设计模式分类
设计模式
maven
项目管理
Free MyBatis plugin
Lombok
Maven Helper
IDEA插件
倒排索引
数据存储格式图
index(索引)
Type(类型)
Decument(文档)
Field(字段)
数据格式
Mapping(映射)
Shards(分片)
Replicas(副本)
Allocation(分配)
概念
elasticsearch
docker镜像技术
为什么要有docker
docker理念
docker是什么
之前的虚拟机技术
容器虚拟化技术
更快速的应用交付和部署
更便捷的升级和扩缩容
更简单的系统运维
更高效的计算资源利用
开发/运维
能干嘛
docker官网
docker中文网站
官网
docker hub
仓库
简介
UnionFS
docker镜像加载原理
是什么
镜像(image)
容器(container)
仓库(repository)
基本组成
加速器
工作原理
Docker与VM比较
docker version
docker info
docker --help
帮助命令
-a:列出本地所有的镜像(含中间映象层)
-q:只显示镜像ID
--digests:显示镜像的摘要信息
--no-trunc:显示完整的镜像信息
OPTIONS
docker images
--no-trunc:显示完整的镜像描述
-s <n>:列出收藏数不小于指定值的镜像
--automated:只列出automated build类型的镜像
docker search <image.name>
docker pull <image.name> [:TAG]:下载镜像
docker rmi -f
docker rmi -f $(docker images -qa)
docker rmi <iamge.name>[:TAG]
docker commit -m=\"提交的描述信息\" -a=\"作者\" 容器ID 要创建的目标镜像名:[标签名]
docker commit提交容器副本使之成为一个新的镜像
镜像命令
--name=\"容器新名字\":为容器指定一个名称
-d:后台运行容器,并返回容器ID,也即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-P:随机端口映射
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
-p:指定端口映射
OPTION
启动交互式容器
docker run [OPTIONS] image [COMMAND] [ARG...]
-a:列出当前所有正在的容器+历史上运行过的。
-l:显示最近创建的容器。
-n:显示最近n个创建的容器。
-q:静默模式,只显示容器编号。
--no-trunc:不截断输出。
docker ps [OPTIONS]
exit:容器停止并退出。
ctrl+P+Q:容器不停止退出。
docker start <container.ID/container.name>:启动容器
docker restart <container.ID/container.name>:重启容器
docker stop <container.ID/container.name>:停止容器
docker kill <container.ID/container.name>:强制停止容器
docker rm -f ${docker ps -a -q}
docker ps -a -q| xargs docker rm
docker rm <container.ID>:删除已停止的容器
一次性删除多个容器
-t:是加入时间戳
-f:跟随最新的日志打印
--tail <n>:显示最后n条
docker logs <container.ID>
docker top <container.ID>:查看容器内运行的进程
docker inspect <container.ID>:查看容器内部的细节
docker exec -it <container.ID> bashshell
docker attach <container.ID>
docker cp <container.ID>:<dir.src> <host.dst>:从容器内拷贝文件到主机上
docker commit -m=\"描述信息\" -a=\"作者\" 容器id 要创建的目标镜像名:[标签名]
容器命令
进入正在运行的容器并以命令行交互
总结
常用命令
ADD
ARG
CMD
COPY
ENTRYPOINT
ENV
EXPOSE
FROM
LABEL
MAINTAINER
RUN
USER
VOLUME
WORKDIR
Dockerfile
docker run -it -v /<host.dir>:/<container.dir>[:ro] <images.name>
直接添加命令
容器数据卷
docker
自动装箱
自我修复
水平扩展
服务发现
滚动更新
版本回退
密钥和配置管理
存储编排
批处理
功能
架构图
pod
controller
service
架构
kubernetes
解耦
可恢复性
缓冲
灵活性&峰值处理能力
异步通信
优点
点对点模式
发布/订阅模式
模式
消息队列
基础架构
bin/zookeeper-server-start.sh /config/zookeeper.properties
bin/kafka-server-start.sh [-daemon] /config/server.properties
kafka-topics.sh --list --zookeeper localhost:2181
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor <n> --partition <m> --topic <topic.name>
kafka-topics.sh --delete --zookeeper localhost:2181 --topic test
kafka-console-producer --broker-list localhost:9092 --topic test
kafka-console-consumer --bootstrap-server localhost:9092 --topic test [--from-beginning]
kafka-consumer-groups.sh --bootstrap-server 172.16.4.26:9092 --list
kafka-consumer-groups.sh --bootstrap-server 172.16.4.26:9092 --group consumer-group-pkiverifytopicreveiver --describe
kafka-topics.sh --zookeeper localhost:2181 --describe --topic test
kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --partition <n>
bin/kafka-run-class.sh kafka.tools.DumpLogSegments --file <log.dir> --print-data-log
kafka
产品
设备
topic
topic类
基本概念
发布/订阅消息模式
对负载内容屏蔽的消息传输
使用TCP/IP提供网络连接
三种消息发布服务质量
小型传输
使用Last Will和Testment特性通知有关各方客户端异常中断的机制。
主要特性
MQTT协议实现方式
网络传输与应用消息
MQTT客户端
MQTT服务器
订阅(Subscription)
会话(Session)
主题名(Topic Name)
主题筛选器(Topic Filter)
负载(Payload)
MQTT协议中的订阅、主题、会话
协议原理
mqtt
正向代理
反向代理
http代理
常用功能
轮询
加权轮询
Ip hash
内置策略
扩展策略
策略
负载均衡
全局块
events块
http块
server块
location块
文件结构
nginx -s signal
nginx
其他
存储引擎
字段类型
范式
逆范式
设计
只返回需要的结构
确保查询使用了正确的索引
尽量避免使用子查询
不要使用OFFSET实现分页
了解SQL子句的逻辑执行顺序
法则
合理SQL
mysql优化
客户端
server层
存储引擎层
物理文件层
mysql架构
myisam
独立表空间
共享表空间
表空间
innodb
……
选择
区别
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
永久性(Durability)
ACID
自动提交事务
显式事务
隐式事务
常见的事务
Begin Transaction
Commit Transaction
Rollback Transaction
Save Transaction
事务中常用的语句
应该创建索引的字段
索引失效情况
没有必要使用索引的情况
索引
幻读
并发读取问题
Read uncommitted
Read committed
Repeatable read
图片
隔离级别
锁
mysql
关系型数据库
行式数据库
列式数据库
NoSql
单线程+多路IO复用
特性
Redis6
*
keys
exists
type
del
unlink
expire
ttl
select
dbsize
flushdb
flushall
key
数据结构图
数据结构
get
append
strlen
setnx
incr
decr
incrby
decrby
mset
mget
msetnx
get range
set range
setex
getex
String
lpush/rpush
lpop/rpop
rpoplpush
lrange
lindex
llen
linsert
lrem
lset
List
对外
底层
sadd
smembers
sismemeber
scard
srem
spop
srandmember
smove
sinter
sunion
sdiff
Set
数据类型
hset
hget
hmset
hexists
hkeys
hvals
hincrby
hsetnx
Hash
结构图
跳跃表
zadd
withscores
limit offset count
zrange
zrangebyscore
zrevrangebyscore
zincrby
zrem
zcount
zrank
Zset
常用五大数据类型
Redis6配置文件详解
Redis的发布和订阅
setbit
getbit
[start end]
bitcount
bitop
Bitmaps
用法
pfadd
pfcount
pfmerge
HyperLogLog
geoadd
geopos
geodist
georadius
Geospatial
Redis6新数据类型
Jedis操作Redis6
引用依赖
application.properties
config
Redis6与Spring boot整合
discard
exec
multi
unwatch
watch
Redis6的事务操作
异常恢复
Rewrite压缩
AOF流程
优势
劣势
AOF
RDB流程
RDB
Redis6持久化方式
info replication
slaveof <主机ip><port>
slaveof no one
主从复制
薪火相传
选举过程
复制延时
哨兵模式
反客为主
Redis6的主从复制
配置
redis-cli --cluster create --cluster-replicas 1 [*.*.*.*:*]
cluster keyslot [key]
cluster countkeysinslot [slot]
cluster getkeysinslot [slot] <count>
无中心化集群
slots
故障恢复
HostAndPort
JedisCluster
Jedis操作
Redis6集群
图示
问题描述
对空值缓存
设置和访问的名单
采用布隆过滤器
进行实时监控
解决方案
缓存穿透
预先设置热门数据
实时调整
使用锁
缓存击穿
构建多级缓存架构
使用锁或队列
设置过期标志更新缓存
将缓存失效时间分散开
缓存雪崩
分布式锁
Redis6应用问题解决
acl list
acl cat
acl cat <Type>
acl whoami
acl setuser
acl规则
ACL
IO多线程
工具支持cluster
Redis6新功能
写操作
读操作
缺陷
旁路缓存
写
读
读写穿透
异步直写
缓存策略
redis
非关系型数据库
数据库
java后端开发
0 条评论
回复 删除
下一页