Java之NIO第二章:nio简介

简介: Java NIO(New IO)是用于Java(来自Java 1.4)的替代IO API,意味着替代标准Java IO和Java Networking API。

Java NIO(New IO)是用于Java(来自Java 1.4)的替代IO API,意味着替代标准Java IO和Java Networking API。 Java NIO提供了与标准IO API不同的IO工作方式。通俗点讲就是new io

Channels 和 Buffers

在标准IO 中,我们一般使用字节流和字符流来处理业务。 但在NIO中,会使用通道和缓冲区。 数据从通道读入缓冲区,或者从缓冲区写入通道channel。

非阻塞 IO

Java NIO能够执行非阻塞IO。

例如,一个线程可以请求一个通道将数据读入缓冲区。 当通道读取数据到缓冲区时,线程可以做其他事情。 一旦数据被读入缓冲区,线程可以继续处理它。 将数据写入通道也是如此。

Selectors 选择器

Java NIO包含“选择器”的概念。 选择器是一个对象,可以监视多个通道的事件(如:连接打开,数据到达等)。 因此,一个线程可以监视多个通道的数据。

后面的章节会详细介绍这几个类。

相关文章
|
4月前
|
人工智能 安全 Java
Go与Java泛型原理简介
本文介绍了Go与Java泛型的实现原理。Go通过单态化为不同类型生成函数副本,提升运行效率;而Java则采用类型擦除,将泛型转为Object类型处理,保持兼容性但牺牲部分类型安全。两种机制各有优劣,适用于不同场景。
169 24
|
4月前
|
人工智能 Java
java中static关键字简介
`static`关键字用于修饰类的成员变量和方法,使其属于类而非对象。静态成员可通过类名直接访问,无需实例化对象。静态方法只能访问静态成员,不能直接访问非静态成员或使用`this`关键字。此外,静态代码块在类首次加载时执行且仅执行一次,适用于初始化操作。
183 0
|
6月前
|
消息中间件 缓存 网络协议
Netty基础—4.NIO的使用简介
本文详细介绍了Java NIO(New Input/Output)的核心概念与编程模型。首先,讲解了Buffer缓冲区的作用及4个核心概念:capacity、limit、position、mark,并通过Direct模式创建的Buffer示例展示了其高性能特点。接着,分析了Channel通道的概念,说明其与Buffer的关系以及FileChannel在文件读写中的应用,包括顺序写、随机写和多线程安全特性。 随后,对比了BIO(Blocking IO)编程模型的局限性,如线程资源耗尽问题,引出伪异步IO编程的改进方案,但指出其仍存在级联故障风险。进一步探讨了长连接与短连接的区别及其实现代码。
|
8月前
|
存储 缓存 算法
JVM简介—1.Java内存区域
本文详细介绍了Java虚拟机运行时数据区的各个方面,包括其定义、类型(如程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和直接内存)及其作用。文中还探讨了各版本内存区域的变化、直接内存的使用、从线程角度分析Java内存区域、堆与栈的区别、对象创建步骤、对象内存布局及访问定位,并通过实例说明了常见内存溢出问题的原因和表现形式。这些内容帮助开发者深入理解Java内存管理机制,优化应用程序性能并解决潜在的内存问题。
399 29
JVM简介—1.Java内存区域
|
8月前
|
Java Linux API
课时3:Java简介(Java主要特点)
本文介绍了Java的主要特点及其运行机制。Java结合了编译型和解释型语言的优点,通过Java虚拟机(JVM)实现跨平台移植,简化了不同操作系统间的开发流程。Java的特点包括可移植性、简单易用、支持多线程编程、自动垃圾收集和面向对象编程。随着硬件技术的发展,Java的性能问题已大大改善,成为行业标准之一,广泛应用于各种商用平台开发。
289 1
|
8月前
|
开发框架 移动开发 Java
课时2:Java简介(Java发展概述)
课时2:Java简介(Java发展概述) 摘要: 1. Java基础知识:介绍Java作为编程语言及其思想。 2. Java的发展历史:从1991年GREEN项目到1995年正式推出,历经网景公司、HotJava浏览器等关键节点。 3. Java的版本信息:涵盖从JDK 1.0到JDK 1.8的主要版本及特性,如Lambda表达式和模块化支持。
182 0
|
8月前
|
存储 Java C语言
课时11:Java数据类型简介
本文介绍了Java中的数据类型划分,主要分为基本数据类型和引用数据类型。基本数据类型包括数值型(整型、浮点型)、布尔型和字符型,每种类型有固定的默认值和存储范围。引用数据类型涉及内存使用,如数组、类和接口,默认值为Null。文中还提供了不同类型的选择原则,帮助开发者在实际编程中合理选用数据类型。
120 0
|
8月前
|
Oracle Java Unix
课时1:认识Java(Java发展简介)
课时1:认识Java(Java发展简介)。主讲人李兴华介绍了Java的起源、发展历程及其广泛应用。Java由Sun公司开发,最初为嵌入式系统设计,后演变为三大方向:Java SE、Java ME和Java EE。尽管面临版权争议等挑战,Java仍是最流行的编程语言之一,广泛应用于大型企业及互联网平台开发。
118 0
|
11月前
|
存储 JavaScript Java
Java 中的 String Pool 简介
本文介绍了 Java 中 String 对象及其存储机制 String Pool 的基本概念,包括字符串引用、构造方法中的内存分配、字符串文字与对象的区别、手工引用、垃圾清理、性能优化,以及 Java 9 中的压缩字符串特性。文章详细解析了 String 对象的初始化、内存使用及优化方法,帮助开发者更好地理解和使用 Java 中的字符串。
178 2
Java 中的 String Pool 简介
|
10月前
|
自然语言处理 Java 关系型数据库
Java mysql根据很长的富文本如何自动获取简介
通过使用Jsoup解析富文本并提取纯文本,然后根据需要生成简介,可以有效地处理和展示长文本内容。该方法简单高效,适用于各种应用场景。希望本文对您在Java中处理富文本并生成简介的需求提供实用的指导和帮助。
190 9