JAVA IO
Stream:Java 中将数据的输入输出抽象为流,流是一组有顺序的,单向的,有起点和终点的数据集合,就像水流。按照流中的最小数据单元又分为字节流和字符流。
1,字节流:以 8 位(即 1 byte,8 bit)作为一个数据单元,数据流中最小的数据单元是字节。
2,字符流:以 16 位(即 1 char,2 byte,16 bit)作为一个数据单元,数据流中最小的数据单元是字符, Java 中的字符是 Unicode 编码,一个字符占用两个字节。
节点流分为文件流、数组流、字符串流、管道流
处理流分为缓冲流、转换流、数据流
IO 类虽然很多,但最基本的是 4 个抽象类:InputStream、OutputStream、Reader、Writer。最基本的方法也就是一个读 read() 方法、一个写 write() 方法。方法具体的实现还是要看继承这 4 个抽象类的子类
JAVA JDBC
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。
Statement接口,通过Connection接口的createStatement()方法实例化,来操作数据
ResultSet接口:接受所查询的记录,并显示内容,开发中要限制查询数量
PreparedStatement接口,是Statement的子接口,属于预处理操作
CallableStatement接口——主要调用数据库中的存储过程
JAVA 线程
线程:程序执行流的最小单元。它是进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派 CPU 的基本单位
Java 中的 Thread 类就是专门用来创建线程和操作线程的类
ThreadLocal,即线程变量,是一个以 ThreadLocal 对象为键、任意对象为值的存储结构。
当多个线程操作同一个对象时,就会出现线程安全问题,被多个线程同时操作的对象数据可能会发生错误。线程同步可以保证在同一个时刻该对象只被一个线程访问
在多线程环境下,锁的使用非常频繁,但是它会带来一下问题,比如死锁。当死锁发生时,系统将会瘫痪。比如两个线程互相等待对方释放锁。
线程的声明周期共有 6 种状态,分别是:新建 New、运行(可运行)Runnable、阻塞Blocked、计时等待Timed Waiting、等待Waiting 和终止Terminate。
Java 网络
网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个 socket。
建立网络通信连接至少要一对端口号 (socket)
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议
UDP 提供面向事务的简单不可靠信息传送服务
HttpURLConnection 位于 java.net 包中,支持 HTTP 特定功能。
InetAddress类用于表示 IP 地址,比如在进行 Socket 编程时,就会使用到该类。
InetAddress没有公共构造方法,我们只能使用它提供的静态方法来构建一个 InetAddress 类实例
Socket 类代表一个客户端套接字,可以使用该类向服务器发送和接受数据
ServerSocket类用于实现服务器套接字,服务器套接字会等待客户端网络连接,与客户端连接之后,会进行一系列操作,然后将结果返回给客户端。