笔记
Java SE 8 流库
IO 流
- 重点关注内存映射:
FileChannel
时间类
Date
SimpleDateFormat
和Calendar
LocalDateTime
和DateTimeFormatter
Shocket 通讯
Socket
和ServerSocket
URL
和HttpURLConnection
- 重点关注可中断套接字:
SocketChannel
、Channels.newInputStream
、Channels.newOutputStream
、DatagramChannel
、MulticastChannel
- UDP通讯:
DatagramSocket
和DatagramPacket
【只允许发送到指定目标地址】 - UDP 多点通讯:
MulticastSocket
【组播】
类加载器
每个Java程序至少拥有三个类加载器,除引导类加载器外,每个类加载器都有父类加载器【注:双亲委派机制】
引导类加载器【通常由C语言实现】
扩展类加载器【用于加载
jre/lib/ext
类文件】系统类加载器(又名应用类加载器)【用于加载应用类文件】
自定义类加载器
需要重写
findClass
函数,在超类的loadClass
委托其父类加载器加载失败时会调用findClass
方法在
findClass
函数内加载到类数据时需要调用超类defineClass
方法,向虚拟机提供字节码1
2
3
4
5
6
7public class CustomClassLoader extends ClassLoader {
protected Class<?> findClass(String name) throws ClassNotFoundException {
byte[] classData = ...;// 加载类字节码数据
return defineClass(name,classData,off,len);// 加载字节码并返回
}
}
消息摘要
1 | // MD5 SHA-1 SHA-256 SHA-384 SHA-512....M |
加密
KeyGenerator
、SecureRandom
、Cipher
、KeyPairGenerator