注解和注释是两种完全不同的语法,注解可以为程序增加额外的功能,或为程序添加元数据。
函数式接口是指有且只有一个抽象方法的接口;
函数式接口可以使用 @FunctionalInterface 进行标注,但不是必须的。除了 “java.util.function” 包中的函数式接口以外,还存在其他的函数式接口。例如 Runnable就是一个函数式接口,但并不存在于“java.util.function”包中。四大函数式接口中的断言型接口是 Predicate,而不是 Assert。
TCP/IP在建立连接时需要三次握手:
第一次握手:建立连接时,源端发送同步序列编号(Synchronize Sequence Numbers,SYN)包(SYN = j)到目的端,等待目的端确认。
第二次握手:目的端收到SYN包,确认源端的SYN(ACK = j+1),同时自己也发送一个SYN包(SYN = k),即SYN + ACK包。
第三次握手:源端收到目的端的SYN + ACK包,向目的端发送确认包ACK(ACK = k+1)。此包发送完毕,源端和目的端完成三次握手,源端可以向目的端发送数据
TCP/IP在建立连接时需要三次握手:
第一次握手:建立连接时,源端发送同步序列编号(Synchronize Sequence Numbers,SYN)包(SYN = j)到目的端,等待目的端确认。
第二次握手:目的端收到SYN包,确认源端的SYN(ACK = j+1),同时自己也发送一个SYN包(SYN = k),即SYN + ACK包。
第三次握手:源端收到目的端的SYN + ACK包,向目的端发送确认包ACK(ACK = k+1)。此包发送完毕,源端和目的端完成三次握手,源端可以向目的端发送数据
线程通常在三种情况下会终止:①线程中的 run() 方法执行完毕后线程终止;②线程抛出了异常且未被捕获;③调用当前线程的 stop() 方法终止线程(该方法已被废弃)
Set 集合中的元素是无法通过下标索引来访问的、不可重复的。
List 集合中的元素是可以通过下标索引来访问的、可重复的;Set 集合中的元素是无法通过下标索引来访问的、不可重复的。
快速排序通过每一趟排序,将要排序的数组分割成两个独立的部分。其中,一部分的所有数据比另一部分的所有数据都要小。
IllegalAccessException 是访问权限不足构成的异常;ClassCastException 是类型转换异常;InputMismatchException 通常是使用 Scanner 输入数据时发生的异常。
FileInputStream 类存在于 java.io 包中,不是 JDBC API 中提供的。
JDBC API 定义了一组用于与数据库进行通信的接口和类存在于 JDK 中的 java.sql包中。
where,group by,having,order by