SE
阶
段
知
识
梳
理
API
知
识
点
罗
列
JAVA IO
java.io.File
背
景
知
识
硬盘
机
械
硬盘
固
态
硬盘
硬盘的
特
性
⻓
久保
存
数据
读
写
性
能
⻓
久保
存
数据
,
读
写
性
能
低
硬盘
与
内
存
什么
是
内
存
内
存
的
特
性
内
存
与
硬盘的
关
系
内
存
读
写
性
能
快
,
满
⾜
CPU
运
⾏
效
率
。
结
论
常
⽤
构
造
器
File(String pathname)
File(File parent,String child)
常
⽤
API
查
看
属
性
相
关
⽅
法
获
取名
字
String getName()
获
取
⻓
度
long length
是
否可
读
boolean canRead()
是
否可
写
boolean canWrite()
是
否
隐
藏
boolean isHidden()
是
否
存
在
boolean exists()
是
否
存
在
且
是
⼀个
⽂
件
boolean isFile()
是
否
存
在
且
是
⼀个
⽬
录
boolean isDirectory()
创
建
与
删
除
创
建
新⽂
件
boolean createNewFile()
创
建
⽬
录
boolean mkdir()
boolean mkdirs()
删
除
⽂
件
或
⽬
录
boolean delete()
删
除
⽂
件
删
除
⽬
录
获
取
⽬
录
⼦
项
listFiles()
⽅
法
FIle[] listFiles()
File[] listFiles(FileFilter filter)
回
调
模
式
匿名
内
部
类
创
建
过
滤
器
FileFilter
接
⼝
重
写
accept()
⽅
法
lambda
表
达
式
基
本
语
法
要
求
(
参
数
列
表
)->{
⽅
法
体
}
⼏
种
特
殊
写
法
何
时
可
以
不
写
"()"
何
时
可
以
忽
略
"{}"
忽
略
return
JDK8
⽀
持
常
⻅
问题
File
的
length()
⽅
法
返
回
的
⽂
件
⻓
度
为
0
?
创
建
⽂
件
出
现
异常
:java.io.IOException:
系统
找
不
到
指
定
的
路
径
。
⽂
件
所
在
的⽬
录
不
存
在
删
除
⽬
录
失
败
不
是
空
⽬
录
stream
流
流
的
分
类
输
⼊
与
输
出
input
输
⼊
负责
读
取
操
作
output
输
出
负责
写出
操
作
字
节
与
字
符
流
字
节
流
java.io.InputStream
int read()
块
读
操
作
int read(byte[] data)
int read(byte[] data,int offset,int len)
java.io.OutputStream
void write(int d)
块
写
操
作
void write(byte[] data)
void write(byte[] data,int offset,int len)
字
符
流
java.io.Reader
int read()
int read(char[] data)
int read(char[] data,int offset,int len)
int read(CharBuffer target)
java.io.Writer
void write(int d)
void write(char[] data)
void write(char[]data,int offset,int len)
void write(String str)
节
点
与
处
理
流
节
点
流
(
低
级
流
)
⽂
件
流
FileInputStream
FileOutputStream
字
节
数
组
流
ByteArrayInputStream
ByteArrayOutputStream
处
理
流
(
⾼
级
流
)
缓
冲
字
节
流
BufferedInputStream
BufferedOutputStream
对
象
流
ObjectInputStream
ObjectOutputStream
转
换
流
InputStreamReader
OutputStreamWriter
缓
冲
字
符
流
BufferedReader
PrintWriter
常
⽤
API
⽂
件
流
FileInputStream
从
⽂
件中
读
取
字
节
数据
的
流
常
⽤
构
造
器
FileInputStream(String filename)
FileInputStream(File file)
实
例
化
时
常
⻅
异常
FileNotFoundException
如
果
该
⽂
件
不
存
在
,
或
者
它
是
⼀个
⽬
录
,
⽽
不
是
⼀个
常
规
⽂
件
,
抑或
因
为
其
他
某
些
原
因
⽽
⽆
法
打
开
进
⾏读
取
。
FileOutputStream
向
⽂
件中
写⼊
字
节
的
流
常
⽤
构
造
器
覆
盖
模
式
FileOutputStream(String filename)
FileOutputStream(File file)
如
果
指
定
的
⽂
件
存
在
,
会
先
将
⽂
件
原
数据
清
除
追
加
模
式
FileOutputStream(String filename,boolean append)
FileOutputStream(File file,boolean append)
如
果
参
数
append
为
true
,
则写⼊
的
数据
会
追
加到
⽂
件中
实
例
化
时
常
⻅
异常
FileNotFoundException
如
果
该
⽂
件
存
在
,
但
它
是
⼀个
⽬
录
,
⽽
不
是
⼀个
常
规
⽂
件
;
或
者
该
⽂
件
不
存
在
,
但
⽆
法
创
建
它
;
抑或
因
为
其
他
某
些
原
因
⽽
⽆
法
打
开
缓
冲
字
节
流
以
块
读
写
形式
加
快
字
节
数据
的
读
写
效
率
BufferedInputStream
常
⽤
构
造
器
BufferedInputStream(InputStream in)
创
建
⼀个
⽤
于
连
接
参
数
指
定
的
输
⼊
流
上
的
缓
冲
字
节
输
⼊
流
,
默
认
缓
冲
区
(
内
部
字
节
数
组
)
⼤
⼩
8kb(8192
个
字
节
)
BufferedInputStream(InputStream in, int size)
创
建
⼀个
⽤
于
连
接
参
数
指
定
的
输
⼊
流
上
的
缓
冲
字
节
输
⼊
流
,
缓
冲
区
(
内
部
字
节
数
组
)
⼤
⼩
由
参
数
size
指
定
BufferedOutputStream
常
⽤
构
造
器
BufferedOutputStream(OutputStream out)
创
建
⼀个
⽤
于
连
接
参
数
指
定
的
输
出
流
上
的
缓
冲
字
节
输
出
流
,
默
认
缓
冲
区
(
内
部
字
节
数
组
)
⼤
⼩
8kb(8192
个
字
节
)
BufferedOutputStream(OutputStream out, int size)
创
建
⼀个
⽤
于
连
接
参
数
指
定
的
输
出
流
上
的
缓
冲
字
节
输
出
流
,
缓
冲
区
(
内
部
字
节
数
组
)
⼤
⼩
由
参
数
size
指
定
对
象
流
ObjectInputStream
对
象
反
序
列化
常
⽤
⽅
法
Object readObject()
读
取
⼀
组
字
节
并
将
其
反
序
列化
为
对
象
常
⻅
异常
ClassNotFoundException
找
不
到
序
列化
对
象
的
类
。
InvalidClassException
序
列化
使
⽤
的
类
出
了
问题
。
ObjectOutputStream
对
象
序
列化
常
⽤
⽅
法
void writeObject(Object obj)
将
参
数
对
象
obj
序
列化
并
写出
常
⻅
异常
InvalidClassException
序
列化
操
作使
⽤
的
类
出
了
问题
NotSerializableException
某
个
要
序
列化
的
对
象
没
有
实
现
java.io.Serializable
接
⼝
Serializable
serialVersionUID
transient
关
键
字
应
⽤
场
景
持
久
化
对
象
通过
在
流
中使
⽤
⽂
件
可
以
实
现
对
象
的
持
久
存
储
⽹络
传
输
对
象
如
果
流
是
⽹络
套
接
字
流
,
则
可
以
在
另
⼀
台
主
机
上
或
另
⼀个
进
程
中
重
构
对
象
。
转
换
流
转
换
流
是
字
节
流
与
字
符
流
之
间
的
桥
梁
,
起
到
了
"
转
换
器
"
的
作
⽤
。
InputStreamReader
常
⽤
构
造
器
InputStreamReader(InputStream in)
使
⽤
系统
默
认
字
符
集
创
建并
连
接
到
参
数
in
指
定
的直
接
输
⼊
流
上
InputStreamReader(InputStream in,Charset cs)
使
⽤
参
数
cs
指
定
的
字
符
集
创
建并
连
接
到
参
数
in
指
定
的直
接
输
⼊
流
上
。
字
符
集
通
常
使
⽤
:
StandardCharset.UTF-8
OutputStreamWriter
常
⽤
构
造
器
OutputStreamReader(OutputStream out)
使
⽤
系统
默
认
字
符
集
创
建并
连
接
到
参
数
out
指
定
的直
接
输
出
流
上
OutputStreamReader(OutputStream out,Charset cs)
使
⽤
参
数
cs
指
定
的
字
符
集
创
建并
连
接
到
参
数
out
指
定
的直
接
输
出
流
上
。
字
符
集
通
常
使
⽤
:
StandardCharset.UTF-8
缓
冲
字
符
流
以
块
读
写
形式
加
快
字
符
数据
的
读
写
效
率
BufferedReader
常
⽤
构
造
器
BufferedReader(Reader in)
创
建
⼀个
⽤
于
连
接
在
指
定
的
字
符
输
⼊
流
in
上
的
缓
冲
字
符
输
⼊
流
,
默
认
内
部
缓
冲
区
(char
数
组
)
⼤
⼩
为
8k(8192
个
字
符
)
BufferedReader(Reader in, int size)
创
建
⼀个
⽤
于
连
接
在
指
定
的
字
符
输
⼊
流
in
上
的
缓
冲
字
符
输
⼊
流
,
内
部
缓
冲
区
⼤
⼩
由
参
数
size
指
定
常
⽤
⽅
法
String readLine()
读
取
⼀个
⽂
本
⾏
。
通过
下
列
字
符
之
⼀
即可
认
为
某
⾏
已
终
⽌
:
换
⾏
('')
、
回
⻋
('')
或
回
⻋
后
直
接
跟
着
换
⾏
。
PrintWriter
常
⽤
构
造
器
直
接
对
⽂
件
进
⾏
操
作
PrintWriter(String fileName)
创
建
具
有
指
定
⽂
件
名
称
且不
带
⾃
动
⾏
刷
新
的
新
PrintWriter
PrintWriter(String fileName, String csn)
创
建
具
有
指
定
⽂
件
名
称
和
字
符
集
且不
带
⾃
动
⾏
刷
新
的
新
PrintWriter
PrintWriter(File file)
使
⽤
指
定
⽂
件
创
建
不
具
有
⾃
动
⾏
刷
新
的
新
PrintWriter
PrintWriter(File file, String csn)
创
建
具
有
指
定
⽂
件
和
字
符
集
且不
带
⾃
动刷
⾏
新
的
新
PrintWriter
常
⻅
异常
FileNotFoundException
如
果
给
定
的
⽂
件
不
表
示
现
有
的
可
写
常
规
⽂
件
,
并
且
⽆
法
创
建
该
名
称
的
新
常
规
⽂
件
,
或
者
在
打
开
或
创
建
⽂
件
时
发
⽣
其
他
⼀
些
错
误
UnsupportedEncodingException
如
果
不
⽀
持指
定字
符
集
,
通
常
原
因
是
字
符
集
名
字
拼
写
错
误
直
接
连
接
字
节
输
出
流
缺
点
是
不
可
以
指
定字
符
集
只
能
⽤
系统
默
认
字
符
集
创
建
时
会
⾃
动
在
内
部连
接
this->
BufferedWriter->OutputStreamWriter->out
PrintWriter(OutputStream out)
根
据
现
有
的
OutputStream
创
建
不
带
⾃
动
⾏
刷
新
的
新
PrintWriter
。
此
便
捷
构
造
⽅
法
创
建必
要
的
中
间
OutputStreamWriter
,
后
者
使
⽤
默
认
字
符
编
码
将字
符
转
换
为
字
节
。
PrintWriter(OutputStream out, boolean autoFlush)
根
据
现
有
的
OutputStream
创
建
不
带
⾃
动
⾏
刷
新
的
新
PrintWriter
。
此
便
捷
构
造
⽅
法
创
建必
要
的
中
间
OutputStreamWriter
,
后
者
使
⽤
默
认
字
符
编
码
将字
符
转
换
为
字
节
。
连
接
在
其
他
字
符
输
出
流
PrintWriter(Writer out)
创
建
不
带
⾃
动
⾏
刷
新
的
新
PrintWriter
。
PrintWriter(Writer out, boolean autoFlush)
创
建
新
PrintWriter
,
通过
参
数
autoFlush
设
定
是
否
需
要
⾃
动
⾏
刷
新
要
特
别
注
意
,
此
种
创
建
⽅
式
不
会
⾃
动
在
内
部连
接
缓
冲
字
符
输
出
流
。
所
以
如
果
需
要
则
需
要
⾃
⾏
连
接
BufferedWriter
。
字
节
数
组
流
ByteArrayInputStream
从
字
节
数
组
中
读
取
数据
的
流
(
其内
部
维
护
的
字
节
数
组
,
该
数
组
可
以
在
创
建
流
时
传
⼊
)
ByteArrayOutputStream
向
字
节
数
组
中
写⼊
数据
的
流
(
写⼊
流
内
部
维
护
的
字
节
数
组
中
,
该
数
组
会
⾃
动
扩
容
)
在
WebServer
项
⽬
中
实
现
动
态
数据
响
应
时
,
HttpServletResponse
中
有
所
应
⽤
常
⽤
构
造
器
ByteArrayOutputStream()
创
建
⼀个
新
的
byte
数
组
输
出
流
。
缓
冲
区
的
容
量
最
初
是
32
字
节
,
如
有
必
要
可
增
加其
⼤
⼩
。
ByteArrayOutputStream(int size)
创
建
⼀个
新
的
byte
数
组
输
出
流
,
它
具
有
指
定
⼤
⼩
的
缓
冲
区
容
量
(
以
字
节
为
单
位
)
。
常
⽤
⽅
法
byte[] toByteArray()
创
建
⼀个
新
分
配
的
byte
数
组
。
其
⼤
⼩
是
此
输
出
流
的
当
前
⼤
⼩
,
并
且
缓
冲
区
的
有
效
内
容已
复
制到
该
数
组
中
。
int size()
返
回
缓
冲
区
的
当
前
⼤
⼩
。
流
连
接
意
义
实
际
开
发
中
我
们
经
常
会串
联
⼀
组
⾼
级
流
最
终
连
接
到
低
级
流
上,
在
读
写
操
作
时
以
流
⽔
线
式
的
加
⼯
完
成
复
杂
IO
操
作
。
这
个
过
程
也
称
为
"
流
的
连
接
"
。
示
意
图
继
承
树
java.io.AutoCloseable
接
⼝
java.io.Closeable
接
⼝
java.io.InputStream
java.io.FileInputStream
java.io.BufferedInputStream
java.io.ObjectInputStream
java.io.OutputStream
java.io.FileOutputStream
java.io.ByteOutputStream
java.io.BufferedOutputStream
java.io.ObjectOutputStream
java.io.Reader
java.io.InputStreamReader
java.io.BufferedReader
java.io.Writer
java.io.OutputStreamWriter
java.io.BufferedWriter
java.io.PrintWriter
java.io.Flushable
异常
异常
类
型
Throwable
Error
表
示
JVM
级
别
的
系统
错
误
,
导
致
JVM
⽆
法
继续
执
⾏
,
这
类
错
误
是
不
可
恢
复
的
。
Exception
表
示
可
以
恢
复
的
异常
,
这通
常
都
是
程
序
中
出
现
的
异常
try-catch
基
本
结
构
try-catch
try-catch-finally
try-finally
多
catch
针
对
不
同
异常
有
不
同
处
理
⽅
式
时
,
可
以
分别
catch
并
处
理
合
并
catch
当
多
个
异常
具
有
相
同
处
理
⽅
式
时
可
以
合
并
在
⼀个
catch
中
处
理
catch
捕
获
优
先
级
由
上
⾄
下,上
⾯
的
catch
处
理
后
就
不
会
在
执
⾏
下
⾯
同
样
可
以
处
理
该
异常
的
catch
异常
处
理
执
⾏
流
程
try
语
句
块
中
出
现
异常
跳
出
try
语
句
块
并
执
⾏
对
应
的
catch
语
句
块
有
finally
继续
执
⾏
finally
块
代
码
,
之
后
退
出
异常
处
理
机
制
继续
向后
执
⾏
⽆
finally
退
出
异常
处
理
机
制
继续
向后
执
⾏
try
语
句
块
中
不
出
现
异常
有
finally
try
语
句
块
中代
码
执
⾏
到
return
先
执
⾏
finally
中代
码
,
之
后
⽅
法
返
回
。
try
语
句
块
中
没
有
return
先
执
⾏
finally
中
的
代
码
,
之
后
退
出
异常
处
理
机
制
,
程
序
继续
向后
执
⾏
。
⽆
finally
try
语
句
块
执
⾏
完
正
常
退
出
异常
处
理
机
制
,
程
序
继
续
向后
执
⾏
代
码
finally
finally
特点
⽆
论
try
语
句
块
中
的
代
码
是
否
出
现
异常
,
finally
最
终
都
必
定
执
⾏
finally
在
IO
中
的
应
⽤
⾃
动关
闭
特
性
AutoCloseable
只
有
实
现
了
AutoCloseable
接
⼝
的
类
在
可
以
在
try()
中
定
义
并
初
始
化
编
译
器
认
可
,
编
译
后
会
将
在
try()
中
声
明
并
初
始
化
的
对
象
在
finally
中
调
⽤
close
⽅
法
关
闭
。
throw
与
throws
异常
抛
出
的
原
则
异常
不
应当
在
当
前
代
码
⽚
段
被
处
理
时
可
以
将
其
抛
出
当
遇
到
满
⾜
语
法
但
是
不
满
⾜
业
务
场
景时
可
以
抛
出
⾃
定
义
异常
throws
重
写
规
则
允
许
不
再
抛
出
任何
异常
抛
出
部
分
异常
抛
出
超
类
⽅
法
抛
出
异常
的
⼦
类
型
异常
不
允
许
额
外
异常
(
超
类
⽅
法没
有
声
明
抛
出
并
且
也
没
有
继
承
关
系
的
异常
)
抛
出
超
类
⽅
法
抛
出
异常
的
超
类
型
异常
异常
API
printStackTrace
getMessage
⾃
定
义
异常
⾃
定
义
异常
意
义
通
常
⽤
来
描
述
业
务
上
的
错
误
问题
⾃
定
义
异常
定
义
步
骤
类
名
⻅
名
知
义
直
接
或
间
接
继
承
Exception
提
供
超
类
异常
提
供
的
所
有构
造
器
Exception
中
的
分
类
检
查
与
⾮
检
查
异常
⾮
检
查
异常
RuntimeException
NullPointerException
空
指
针
异常
,
当
使
⽤
⼀个
引
⽤
类
型
变
量
调
⽤
其
属
性
或
⽅
法
时
,
若
该
引
⽤
变
量
值
为
null
时
则
会
引
发
空
指
针
异常
。
ArrayIndexOutOfBoundException
数
组
下
标
越
界
,
当
指
定
的
数
组
下
标
超
过
了
数
组
允
许
的
下
标
范
围
时
(
给
定
的
下
标
<0
或
>=
数
组
⻓
度
)
引
发
该
异常
。
ClassCastException
将
⼀个
超
类
向
下
造
型
成
某
个
⼦
类
型
时
,
如
果
该
超
类
引
⽤
指
向
的
对
象
并
⾮
造
型
的
类
型
时
引
发
该
异
常
。
NumberFormatException
在
使
⽤
数
字
类
型
包
装
类
将字
符
串
解
析
为
对
应
数
字
时
,
如
果
该
字
符
串
描
述
的
内
容
并
⾮
数
字
或
是
基
本
类
型
⽆
法
保
存
的
数
字
时
引
发
该
异常
掌握
出
现
场
景
检
查
异常
IOException
SQLException
SocketException
...
多
线
程
进
程
与
线
程
什么
是
进
程
什么
是
线
程
线
程
⽣
命周
期
线
程
的
创
建
与
启
动
继
承
Thread
实
现
Runnable
接
⼝
线
程
API
static Thread currentThread()
线
程
信
息
相
关
int getId()
String getName()
int getPriority()
boolean isAlive()
boolean isInterrupted()
boolean isDaemon()
static void sleep(long ms)
void setDaemon(boolean on)
void setPriority(int priority)
⽤
户
线
程
与
守
护
线
程
线
程
并
发
安
全
问题
并
发
安
全
的
出
现
场
景
synchronized
同
步
⽅
法
成
员
⽅
法
静
态
⽅
法
同
步
块
同
步
监
视
器
对
象
的
选
取原
则
成
员
⽅
法
中
静
态
⽅
法
中
同
步
范
围
互
斥
死
锁
线
程
池
⽹络
TCP
协
议
三
次
握
⼿
与
四
次
挥
⼿
三
次
握
⼿
四
次
挥
⼿
客
户
端
与
服
务
端
的
划分
Socket
与
ServerSocket
相
关
API
java.net.Socket
构
造
⽅
法
主
机
地址
信
息
的
含
义
端
⼝号
的
含
义
流
的
获
取
getInputStream
getOutputStream
与
远
端
计
算
机
的
数据
交互
close
⽅
法
java.net.ServerSocket
构
造
⽅
法
端
⼝
的
含
义
java.net.BindException
accept
⽅
法
聊
天
室
案
例
客
户
端
与
服
务
端
建
⽴
连
接
过
程
交互
过
程
多
线
程
并
发
安
全
问题
的
分
析
与
解
决
常
⻅
问题
java.net.ConnectException: Connection refused: connect
连
接
拒
绝
,
通
常
是
客
户
端
连
接
服
务
端
时
,
由
于
服
务
端
没
有
启
动
导
致
的
java.net.ConnectException: Time out
连
接
超
时
,
通
常
时
由
于
服
务
端
计
算
机
的
防
⽕
墙
导
致
客
户
端
⽆
法
连
接
java.net.BindException: address already in use
地址
已
被
使
⽤
,
原
因
时服
务
端
申
请
的
服
务
端
⼝
已
经
被
系统
其
他
进
程
所
使
⽤
导
致
java.net.SocketException: Connection reset
远
端
计
算
机
异常
断
开
导
致
(
没
有
调
⽤
socket.close()
进
⾏
正
常
的
挥
⼿
操
作
)
含
义
及
解
决办
法
集
合
框架
java.util.Collection
常
⻅
⼦
类
List
Set
区
别
常
⽤
API
元
素
equals
对
集
合
的
影
响
泛
型
应
⽤
内
存
图
分
析
迭
代
器
与
新
循
环
Iterator
常
⽤
API
遍
历
规
则
增
强
型
for
循
环
遍
历
数
组
遍
历
集
合
编
译
器
认
可
,
还
原后
的
区
别
forEach()
List
集
合
常
⽤
List
ArrayList
LinkedList
数据
结
构
区
别
与
特点
,
性
能
差
异
分
析
常
⽤
API
集
合
与
数
组
的
转
换
Collection
的
toArray()
Arrays.asList()
集
合
排
序
Collections.sort
⽆
参
sort
有
参
sort Comparator
匿名
内
部
类
创
建
lambda
创
建
compare
⽅
法
重
写
规
则
侵
⼊
性
问题
List.sort()
Map
散
列
表
应
⽤
反
射
机
制
Class
类
类
加
载
⽅
式
反
射
API
实
例
化
对
象
⽅
法
调
⽤
暴
⼒
反
射
注
解
操
作
JDK
新
特
性
汇
总
lambda
变
⻓
参
数
⾃
动关
闭
特
性
常
⻅
⾯
试
题
IO
如
何
将
⼀个
Java
对
象
序
列化到
⽂
件
⾥
?
线
程
并
发
安
全
多
线
程
同
步
有
哪
些
⽅
法
?
⼀个
对
象
的
两个
⽅
法
加
synchronized
,⼀个
线
程
进
去
sleep
,
另
⼀个
线
程
可
以
进
⼊到
另
⼀个
⽅
法
吗
?
什么
是
可
重
⼊
锁
(
ReentrantLock
)
多
线
程
会产
⽣
哪
些
并
发
问题
?
线
程
的
创
建
创
建
线
程
的
三个
⽅
法
是
什么
?
多
线
程
越
多
效
率
越
⾼
吗
?
线
程
池
线
程
池
有
哪
⼏
种
创
建
⽅
式
?
线
程
池
参
数
有
哪
些
?
线
程
池
拒
绝
策
略
有
哪
些
?
你
认
为
对
线
程
池
的
核
⼼
参
数
实
现
⾃
定
义
可
配
置
,
三个
核
⼼
参
数
是
什么
?
ThreadPoolExecutor
线
程
池
,
corePoolSize=
5
,
maximumPoolSize=10
,
queueCapacity=
10
,
有
20
个
耗
时
任
务
交
给
这
个
线
程
池
执
⾏
,
线
程
池
会
如
何
执
⾏
这
20
个
任
务
?
给
⽤
户
发
消
息
任
务
超
出
队
列
,
你
⽤
哪
个
拒
绝
策
略
?
有
其
他
⽅
法
吗
?
ThreadLocal
描
述
ThreadLocal
(
线
程
本
地
变
量
)
的
底
层实
现
原
理
及
常
⽤
场
景
?
异常
简
述
下
Java
的
异常
体
系
集
合
Map
HashMap
的
底
层
数据
结
构是
怎
样
的
?
HashMap
的
扩
容
机
制
是
怎
样
的
?
ConcurrentHashMap
的
存
储
结
构是
怎
样
的
?
Collection
栈
与
队
列
什么
是栈
和
队
列
,
举
个
使
⽤
场
景
例
⼦
?
⽹络
TCP
TCP
和
UDP
区
别
?
TCP/IP
协
议
涉
及
哪
⼏
层
架构
?
描
述
下
TCP
连
接
4
次
挥
⼿
的
过
程
?
为什么
要
4
次
挥
⼿
?
HTTP
JDK
特
性
Java8
新
特
性
有
哪
些了
解
?
Lambda
表
达
式
是
啥
?
优
缺
点
?
讲
⼀下
Lambda
的
表
达
式
作
⽤
域
反
射
涉
及
到
的
基
础
操
作
git
git
安
装
idea
中
git
的
配
置
gitee
,
华
为云
,
github
账
号
注
册
过
程
仓
库
的
创
建
权
限
管
理
(
开
源
权
限
)
token
使
⽤
idea
中
VCS
操
作
导
⼊
git
版
本
控
制
操
作
提
交
commit
push
操
作
push
远
程
仓
库
常
⻅
错
误
提
交
拒
绝
⽆
⽹络
⽤
户
名
密
码
错
误
版
本
不⼀
致
⽆
法
识
别
远
端
仓
库
邮
箱私
有
pull
操
作
rollback
操
作
操
作
系统
windows
mac
maven
基
础
配
置
maven
项
⽬的
创
建
IDEA
中
maven
配
置
User Setting File
windows
默
认
位
置
mac
默
认
位
置
定
位
Finder
的
使
⽤
settings.xml
⽂
件
配
置
doc.canglaoshi.org
⽹
站
下
载
Local repository
idea
中
mave
依
赖
下
载
失
败
解
决
⽅
案
可
修
改
仓
库
位
置
idea
基
本
操
作
新
建
项
⽬
项
⽬
位
置
更
改
java
项
⽬
Maven
项
⽬
SpringBoot
项
⽬
https://start.springboot.io
group
与
artifact
JDK8
项
⽬
结
构
包
结
构
Application
主
启
动
类
Controller
包
定
义
规
则
注
解
@Controller
@RequestMapping
helloworld
终
极
版
项
⽬的
安
装
试
⽤
操
作
界
⾯
布局
的
修
改
本
地
jar
⽂
件依
赖
导
⼊
常
⽤
快
捷
键
windows
mac
SpringBoot
项
⽬的
创
建
标
签
提
示
推
荐
操
作
注
意
笔
记
扩
展
知
识
重
点
概
念
扩
展
知
识
设计
模
式
⽇
期
处
理
评论0