C++11大括号初始化
C++11 大括号初始化 C++11 可以将 {} 初始化器用于任何类型(可以用等号,也可以不用) 数组、集合初始化 在 C++11 中,集合(列表)的初始化已经成为 C++ 的一个基本功能,被称为“初始化列表”: // C++98支持,C++11支持 int a[] = {1, 2, 3}; // C++98不支持,C++11支持 int b[]{2, 3, 4}; // C++9...
C++11 大括号初始化 C++11 可以将 {} 初始化器用于任何类型(可以用等号,也可以不用) 数组、集合初始化 在 C++11 中,集合(列表)的初始化已经成为 C++ 的一个基本功能,被称为“初始化列表”: // C++98支持,C++11支持 int a[] = {1, 2, 3}; // C++98不支持,C++11支持 int b[]{2, 3, 4}; // C++9...
IO 和 NIO 区别: 可简单认为:IO 是面向流的处理,NIO 是面向块(缓冲区)的处理 面向流的 I/O 系统一次一个字节地处理数据。 一个面向块(缓冲区)的 I/O 系统以块的形式处理数据。 NIO 主要有两个核心部分组成: Buffer 缓冲区 Channel 通道 相对于传统 IO 而言,流是单向的。对于 NIO 而言,有了 Channel 通...
SocketChannel 和 ServerSocketChannel ServerSocketChannel 用于创建服务器端套接字,而 SocketChannel 用于创建客户端套接字。它们都支持阻塞和非阻塞模式,通过设置其 blocking 属性来切换。阻塞模式下,读/写操作会一直阻塞直到完成,而非阻塞模式下,读/写操作会立即返回。 阻塞模式: 优点:编程简单,适合低并发场...
传统 IO 基于字节流或字符流(如 FileInputStream、BufferedReader 等)进行文件读写,以及使用 Socket 和 ServerSocket 进行网络传输。 NIO 使用通道(Channel)和缓冲区(Buffer)进行文件操作,以及使用 SocketChannel 和 ServerSocketChannel 进行网络传输。 传统 IO 采用阻塞式模型,对于每...
Paths 类 Paths 类主要用于操作文件和目录路径。它提供了一些静态方法,用于创建java.nio.file.Path实例,代表文件系统中的路径。 // 创建一个Path实例,表示当前目录下的一个文件 Path path = Paths.get("example.txt"); // 创建一个绝对路径 Path absolutePath = Paths.get("/home/use...
AQS是AbstractQueuedSynchronizer的简称,即抽象队列同步器,从字面上可以这样理解: 抽象:抽象类,只实现一些主要逻辑,有些方法由子类实现; 队列:使用先进先出(FIFO)的队列存储数据; 同步:实现了同步的功能。 AQS 是一个用来构建锁和同步器的框架,使用 AQS 能简单且高效地构造出应用广泛的同步器,ReentrantLock,Semapho...
在 Java 中,关键字 synchronized 可以保证在同一个时刻,只有一个线程可以执行某个方法或者某个代码块(主要是对方法或者代码块中存在共享数据的操作),同时我们还应该注意到 synchronized 的另外一个重要的作用,synchronized 可保证一个线程的变化(主要是共享数据的变化)被其他线程所看到(保证可见性,完全可以替代 volatile 功能)。 synch...
BIO 全称 Block-IO 是一种同步且阻塞的通信模式。是一个比较传统的通信方式,模式简单,使用方便。但并发处理能力低,通信耗时,依赖网速。 Java NIO,全程 Non-Block IO ,是 Java SE 1.4 版以后,针对网络传输效能优化的新功能。是一种非阻塞同步的通信模式。 NIO 与原来的 I/O 有同样的作用和目的, 他们之间最重要的区别是数据打包和传输的方式。原来...
PrintStream 是 OutputStream 的子类,PrintWriter 是 Writer 的子类。 打印流具有以下几个特点: 可以自动进行数据类型转换:打印流可以将各种数据类型转换为字符串,并输出到指定的输出流中。 可以自动进行换行操作:打印流可以在输出字符串的末尾自动添加换行符,方便输出多个字符串时的格式控制。 可以输出到控制台或者文件中:打印流可以将数据输...
转换流主要有两种类型:InputStreamReader 和 OutputStreamWriter。 InputStreamReader 将一个字节输入流转换为一个字符输入流,而 OutputStreamWriter 将一个字节输出流转换为一个字符输出流。它们使用指定的字符集将字节流和字符流之间进行转换。常用的字符集包括 UTF-8、GBK、ISO-8859-1 等。 编码和解码 ...