一: I/O框架
1.1. 流
概念:流是内存与存储设备之间传输数据的通道;
按方向分类:
输入流:将存储设备中的内容读入到内存中。
输出流:将内存中的内容写入到存储设备中。
按单位分类:
字节流:以字节为单位,可以读写所有数据;
字符流:以字符为单位,只能读写文本数据;
按功能分类:
节点流:具有实际传输数据的读写功能;
过滤流:在节点流的基础之上增强功能;
1.2.字节流
1.2.1 字节抽象类
1.2.2 字节节点流
1.2.3 字节缓冲流
1.2.4 对象流
1.3 字符编码
1.4 字符流
1.4.1 字符抽象类
1.4.2 字符节点流
1.4.3 字符缓冲流
1.4.4 打印流
1.4.5 转换流
1.5 File、FileFilter
1.5.1 File类
createNewFile()
|
创建一个新文件。
|
mkdir()
|
创建一个新目录。
|
delete()
|
删除文件或空目录。
|
exists()
|
判断
File
对象所对象所代表的对象是否存在
|
getAbsolutePath()
|
获取文件的绝对路径
|
getName()
|
取得名字。
|
getParent()
|
获取文件
/
目录所在的目录。
|
isDirectory()
|
是否是目录。
|
isFile()
|
是否是文件。
|
length()
|
获得文件的长度。
|
listFiles()
|
列出目录中的所有内容。
|
renameTo()
|
修改文件名为。
|
1.5.2 FileFilter接口
1.6 Properties实现流操作
二:网络编程
2.1 网络
网络:由点和线构成,表示诸多对象之间的相互联系;
计算机网络:为实现资源共享和信息传递,通过通信线路连接起来的若干主机;
常见计算机网络:
互联网:(Internet)点与点相连;
万维网:(WW-Word Wide Web)端与端相连;
物联网:(loT - Internet of things)物与物相连;
网络编程:让计算机与计算机之间建立连接、进行通信。
网络模型:
OSI参考模型:OSI(Open System Interconnect),即开放式系统互联。 是ISO组织在1985年研究的网络互联模型。 该体系结构标准定义了网络互联的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层)。每层功能:
TCP/IP模型:TCP/IP模型是因特网使用的参考模型,将协议分成四层:网络接口层、网络层、传输层、应用层。每层功能:
2.2 常见协议
2.3InetAddress类
public static InetAddress getLocalHost()
|
获得本地主机地址对象
|
public static InetAddress getByName(String host)
|
根据主机名称获得地址对象
|
public static InetAddress[] getAllByName(String host)
|
获得所有相关地址对象
|
public String getHostAddress()
|
获取
IP
地址字符串
|
public String getHostName()
|
获得
IP
地址主机名
|
三:反射
3.1 类对象
类的对象:基于某个类new出来的对象,也称为实例对象。
类对象:类加载的产物,封装了一个类的所有信息(类名、父类、接口、属性、方法、构造方法);每个类加载到内存都会生成一个唯一的类对象。
获取类对象的方法
(1)Student s = new Student(); Class c = s.getClass();
(2)Class c = 类名.class;
(3)Class c = Class.forName("包名.类名(全限定名)");
3.2 反射调用操作
常见方法:
public String getName()
|
获取类的完全名称
|
public Package getPackage()
|
获取包信息
|
public Class<? super T> getSuperclass()
|
获取父类
|
public Class<?>[] getInterfaces()
|
获取实现父接口
|
public Field[] getFields()
|
获取字段信息
|
public Method[] getMethods()
|
获取方法信息
|
public Constructor<?>[] getConstructors()
|
获取构造方法
|
public T newInstance()
|
反射创建对象
|
3.3 设计模式
public class SingleTon {
private static final SingleTon instance=new SingleTon();
private SingleTon() {}
public static SingleTon getInstance() {
return instance;
}
}
方式二:懒汉式(使用时创建,线程不安全,加同步)。
public class SingleTon2 {
// 创建对象
private static SingleTon2 instance = null;
// 私有化构造方法
private SingleTon2() { }
// 静态方法
public static SingleTon2 getInstance() {
if(instance==null) {
//提高执行效率
synchronized (SingleTon2.class) {
if (instance == null) {
instance = new SingleTon2();
}
}
}
return instance;
}
}
public class SingleTon3 {
private SingleTon3() {}
private static class Holder{
static SingleTon3 instance=new SingleTon3();
}
public static SingleTon3 getInstance() {
return Holder.instance;
}
}
3.4 枚举和注解
四: Java8新特性
4.1 Lambda表达式
接口
|
参数类型
| 返回类型 |
说明
|
Consumer< T >
消
费型接口
| T | void | void accept(T t);对类型为T的对象应用操作 |
Supplier< T >
供给
型接口
| 无 |
T
|
T get();
返回类型为
T
的对象
|
Function< T,R >
函
数型接口
|
T
|
R
|
R apply(T t);
对类型为
T
的对象应用操作,并返回类
型为
R
类型的对象。
|
Predicate< T >
断
言型接口
|
T
|
boolean
|
boolean test(T t);
确定类型为
T
的对象是否满足条
件,并返回
boolean
类型。
|
4.2 方法引用
概念: