【Java进阶营】java面试题 --- IO

Java最全面试题->Java基础面试题->JavaSE面试题->IO面试题 本文主要有基本IO面试题和网络IO面试题 阅读详情
1. IO流的分类有哪些?

    按照流向分为输入流和输出流;
    按照实现功能分为节点流和处理流。节点就是从一个特定的地方读写数据,包括数组操作,管道操作和文件操作;处理流对已存在的流进行封装和处理,包括缓冲操作,打印操作和转化操作等;
    按照处理数据的单位分为字节流和字符流

2. 为什么有字节流还要有字符流?

    字节流是 java 用来 ASCII 字符文件的,但 java 也支持其他字符,比如 unicode,为了方便操作字符且不会乱码,就提供了字符流。

3. 什么是 java 序列化?

    将对象进行流化,对流化后的对象进行读写操作或者网络传输。要序列化的对象必须实现 Serializable 接口。

4. 对象序列化的过程是什么?

    用输出流构造一个 ObjectOutputStream 对象,然后调用其 writeObject(Object obj) 方法即可将对象转化成流,反序列化就是用输入流。

5. 如何克隆对象?

    重写 Object 的 clone 方法;
    通过序列化和反序列化克隆。

6. BIO、NIO 和 AIO 有什么区别?

    BIO 是同步阻塞 IO,并发性不好;
    NIO 是同步非阻塞 IO,JDK1.4 开始引入,基于通道和缓冲区操作,实现了 IO 多路复用;
    AIO 是异步非阻塞 IO,并发性很好,基于事件和回调机制,目前还未广泛使用。

7. 说说你对 NIO 的认识?

NIO 的核心就是缓冲区(Buffer)、通道(Channel)和选择器(Selector)。

(1). 缓冲区(Buffer)就是用来存储数据的,八种基本类型只有 Boolean 类型没有提供对应的缓冲区。

    核心属性:capacity,缓冲区的容量;limit,界线,缓冲区可用区域和已用区域的分界线;position,当前的位置。
    核心方法:allocate,分配缓冲区;put,往缓冲区写数据;get,从缓冲区读数据;

(2). 通道(Channel)就是源位置与目标位置之间打开的连接,数据传输的通路。

    核心实现类:FileChannel,操作文件的通道;DatagramChannel,通过 UDP 读取网络数据的通道;SocketChannel,通过 TCP 读取网络数据的通道;ServerSocketChannel,监听 TCP 连接的通道。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多
    核心方法:transferTo/transferFrom,通道间的数据传输;write,将缓冲区数据写入通道;read,把通道数据读取到缓冲区。

(3). 选择器用于IO多路复用,将channel都注册到选择器上,它会监听哪些通道有事件发生,然后进行处理。

8. 知道零拷贝吗?

    首先普通拷贝的过程是,源文件先经过 DMA 拷贝到内核 buffer,然后通过 CPU 拷贝到用户 buffer,接着再通过 CPU 拷贝到 socket buffer,最后通过 DMA 拷贝到协议栈。这里经过了四次拷贝,并且伴随着三次用户态的转换,用户态转为内核态,再转为用户态,最后又转为内核态。
    零拷贝不是不拷贝,是可以不经过用户 buffer,直接从内核 buffer 通过 CPU 拷贝到 socket buffer,且这里拷贝的内容非常少,只拷贝长度、偏移量等信息。通过 linux 的 sendFile 函数即可实现零拷贝。java NIO 中的 transferFrom/transferTo 方法就通过 sendFile 函数实现了零拷贝。
Java中的IO与NIO面试题 1、Java 中 IO 流? Java 中 IO 流分为几种? 按照流的流向分,可以分为输入流和输出流; 按照操作单元划分,可以划分为字节流和字符流; 按照流的角色划分为节点流和处理流。 Java Io 流共涉及 40 多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java I0 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。 InputStrea... 阅读详情

相关推荐

金九银十准备季:Java IO流面试题(含答案)

前言 本题集列举了众多IT公司面试真题,对应聘Java程序员职位的常见考点和知识体系都进行的分类和归纳整理。 本题集适合应聘Java和JavaEE职位的程序员作为面试复习、学习和强化的资料,也适合其他程序员作为拓展读物进行阅读。 本题集包含了常见的算法、面试题,也包含了新的高级技术,比如:微服务架构等技术的面试题目。本题集非常全面,对于工作1-5年左右的java程序员面试有非常好的指导作用。 大家也可以访问(直接在线观看最新版的面试题): Java考试_Java笔试题机试题真题讲解_JavaWeb

java8797的博客 2448

JAVA中IO面试题

Input:Output通过IO可以完成硬盘文件的读和写。IO流又叫输入输出流 ,输入和输出均是以内存作为参照物。

m0_48038376的博客 5892

IO流面试题汇总

      输入输出流是相对于内存而言的! 1、什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别      Bit最小的二进制单位 ,是计算机的操作部分 取值0或者1      Byte是计算机操作数据的最小单位由8位bit组成 取值(-128-127)      Char是用户的可读写的最小单位,在java里面由16位bit组...

Marmara 7120

【面试高高手】——JavaIO篇(23题)

Java面试 IO篇

是江迪呀 的博客 5906

深入剖析JavaIO面试题: 详细剖析了字节流与字符流的用法与区别以及BIO、NIO、AIO之间的区别与联系

本文系统梳理了Java I/O核心知识,对比了字节流与字符流的差异及适用场景,分析了缓冲机制的作用。深入讲解了Java I/O模型的演进历程:从同步阻塞的BIO(单连接单线程)、到同步非阻塞的NIO(多路复用),再到异步非阻塞的AIO(回调驱动)。详细解析了NIO三大核心组件(Buffer、Channel、Selector)和AIO的架构设计(异步通道、回调处理器)。通过代码示例展示了不同I/O模型的实现方式,并提供了性能对比和选型建议,帮助开发者根据连接数、业务特性和团队能力选择适合的I/O方案。

Java 后端|Python|AI 实战博主。专注微服务、分布式、大模型应用开发,输出可落地项目、源码剖析与面试总结。用通俗文字拆解技术难点,记录开发路上的学习与踩坑,期待和大家一起交流成长。 6006

使用 Python 获取实时港股行情数据

在本教程中,你将学习如何通过 Infoway API 获取港股实时行情数据,具体以腾讯控股(0700.HK)和汇丰控股(0005.HK)为例,使用 Python 进行数据请求和解析。

kk_stoper的博客 1518

Java IO面试题及答案整理汇总

说到Java开发,所有的java程序员都知道JavaIO流,而且相信大家在具体的工作中也都会用到,但是其实很多朋友们并没有完全掌握java IQ流的内容,而且java IO在java 面试中也会考察到,是在面试官常考的知识范围内的。近期也有不少的小伙伴面临着就业面试的问题,下面就整理了一些java IO的面试题及答案,帮助大家学习一下。 1、字节流和字符流的区别? 答:字节流读取的时候,读到一个字节就返回一个字节;字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在 UTF-8 码表中是 3 个

shuux666的博客 4286

深入解析时钟同步技术:相位同步、频率同步与同源时钟的实战应用

本文深入解析时钟同步技术的三种核心方式:相位同步、频率同步与同源时钟,详细阐述其技术原理、实现方案及实战应用。通过对比分析不同同步方式的特点与适用场景,为电子系统设计提供选型指南,帮助工程师优化时钟网络设计,提升系统稳定性和性能。

weixin_29240711的博客 452

2021大厂Java面试真题(Java IO)

2021大厂Java面试真题(Java I/O) 1、I/O 流的分类 按照读写的单位大小来分: 字符流:以字符为单位,每次次读入或读出是 16 位数据。其只能读取字符类型数据。 (Java 代码接收数据为一般为 char 数组,也可以是别的) 字节流:以字节为单位,每次次读入或读出是 8 位数据。可以读任何类型数据,图片、 文件、音乐视频等。 (Java 代码接收数据只能为 byte 数组) 按照实际 IO 操作来分: 输出流:从内存读出到文件。只能进行写操作。 输入流:从文件读入到内存。

ZJC'博客 850

从零开始:如何用STM32和MAX30100打造你的第一台智能心率监测设备

本文详细介绍了如何使用STM32微控制器和MAX30100传感器从零开始构建智能心率监测设备。涵盖硬件选择、电路设计、软件开发到心率算法实现的全过程,特别适合嵌入式开发新手和创客。通过OLED显示和蓝牙串口传输数据,打造低成本、高精度的心率检测仪,为健康监测项目提供实用解决方案。

7z8x2c4v6b9的博客 194

基于 Go 的微信滑块验证码自动化:协议还原与图像算法深度解析

本文从协议层、算法层和工程优化三个维度,系统拆解了基于Go的微信滑块验证码自动化方案。在协议层,通过手写protobuf编码器和RSA加密复现了微信UUID生成机制;在算法层,采用图像匹配技术实现滑块缺口定位;在工程层面,构建了包含HTTP状态机和随机化设备指纹的完整验证流程。文章重点阐述了技术实现的形式化建模、算法选择依据和复杂度分析,为工程师和算法研究者提供了可验证的技术方案。核心代码结构包括UUID生成、滑块状态机和图像匹配算法等模块,通过分层设计实现了高效可靠的验证码自动化破解。

weixin_65409651的博客 1295

Java IO 模型常见面试题总结

I/O 一直是很多小伙伴难以理解的一个知识点,这篇文章我会将我所理解的 I/O 讲给你听,希望可以对你有所帮助。

m0_71539493的博客 991

Coze智能体开发:扣子空间制作PPT功能

扣子空间内置了丰富的场景模板,涵盖人文历史、学术分享、研究报告、数据分析等场景,可以满足不同用户的需求。 你只需输入与制作 PPT 相关的提示词,Agent 就能基于这些提示词展示思考的过程,并自动生成完整的 PPT。

王国平的博客 2054

java io 面试题_Java IO面试题及答案整理汇总

说到Java开发,所有的java程序员都知道JavaIO流,而且相信大家在具体的工作中也都会用到,但是其实很多朋友们并没有完全掌握java IQ流的内容,而且java IO在java 面试中也会考察到,是在面试官常考的知识范围内的。近期也有不少的小伙伴面临着就业面试的问题,下面就整理了一些java IO的面试题及答案,帮助大家学习一下。1、字节流和字符流的区别?答:字节流读取的时候,读到一个字节...

weixin_36487107的博客 2949

【AI智能体】Coze 打通MySql实现数据报表展示应用搭建详解

Coze 打通MySql实现数据报表展示应用搭建详解

congge 3857

深度学习实战:YOLOv5模型转换与部署全流程详解(PyTorch→ONNX→TensorRT→TFLite)

本文详细介绍了YOLOv5目标检测模型的完整部署流程,包括PyTorch模型训练、模型转换(ONNX、TensorRT、TFLite)、以及基于PyQt5的图形界面开发。通过实际代码示例和详细说明,帮助读者掌握工业级目标检测系统的构建方法。YOLOv5采用CSPDarknet作为骨干网络,结合PANet和SPP模块,实现了多尺度特征融合…

YOLO 472

Java IO面试题(二)

1. 请谈谈Java NIO相比传统IO的优势和不足之处。 2. 什么是Reactive Programming(响应式编程)?它与异步IO有何关联? 3. 在Java中实现非阻塞IO操作时,如何避免数据不一致或数据乱序的问题? 4. 什么是Java中的CompletionHandler?它在异步IO中的作用是什么? 5. 请描述如何在Java中使用Future和Promise来处理异步操作结果。 6. 如何使用Java NIO实现一个高性能的Echo服务器? 7. 多路复用技术中的“多路”是什么意思?它与

闲依农圃邻,偶似山林客。 1516

【SAP HANA 46】关于HANA CPU高峰到 80-100%

关于HANA CPU高峰到 80-100%

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 431

Java IO(面试题)

目录 1、IO 里面的常见类,字节流、字符流、接口、实现类、方法阻塞? 2、谈谈对 NIO 的认知? 3、字节流和字符流的区别? 4、NIO 和传统的 IO 有什么区别? 5、BIO 和 NIO 和 AIO 的区别以及应用场景? 6、什么是 Java 序列化,如何实现 Java 序列化? 7、PrintStream、BufferedWriter、PrintWriter 的比较? 8、什么是节点流,什么是处理流,各有什么好处,处理流的创建有什么特征? 9、什么是 IO 流? 10、有.

weixin_44196561的博客 6102

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java面试题之IO流分为几种?

各位伙伴们,大家好!随着时间的推进,由于本人需要为实习面试做准备,同时也希望每天能将面试题整理一点,来帮助和我有同样需求的伙伴,古人云:不积跬步,无以至千里;不积小流,无以成江海;所以呢?每天进步一点点,日积月累,终会有大的进步。今天要讲解的是面试过程中常有的一道题目: IO流分为几种? 通过这个框架我们有一定的认识,还需要进行深层次的反问? IO流是用来做什么的?它的分类?常用的有哪几种? J...

qq_41026809的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java IO流处理 面试题汇总

说明:本节内容来源于网络汇总 输入输出流是相对于内存而言的! ##1、面试题汇总 (1)java中有几种类型的流? 2021-08-19更新: 从编码方式上,分为字符流和字节流。 如上图可知: 字节流继承inputStream和OutputStream 字符流继承自Reader和Writer。 (2)谈谈Java IO里面的常见类,字节流,字符流、接口、实现类、方法阻塞 答:输入流就是从外部文件输入到内存,输出流主要是从内存输出到文件。 IO里面常见的类,第一印象就只知道IO流中有很多类,IO流主要

egegerhn的博客 3440

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java中IO流的面试题,以及编写代码

java中IO流的面试题,以及编写代码 思路就是将文件通过IO流进行读取出来,然后进行遍历即可; 首先是介绍文件: 重点把文件下的目录显示出来就可以了 File表示了文件与文件夹两个种类; //实例化对象 File file = new File(文件/文件夹); //创建文件 createNewFile(); //创建单极文件夹 mkdir(); //创建多级文...

qq_36072434的博客 792

Java 面试题

基础: JDK 和 JRE 的区别 == 和 equals 的区别 基本类型和包装类对象使用 == 和 equals进行比较的结果? 什么是装箱?什么是拆箱?装箱和拆箱的执行过程?常见问题? hashCode()相同,equals() 也一定为 true吗? final 在 java 中的作用 final finally finalize()区别 finally语句块一定执行吗? ...

ConstXiong 1万+

全网最全的Java岗IO流面试题(含答案)

IO流: 257.下面哪个流类属于面向字符的输入流()选择一项) 258.要从文件”file.dat”文件中读出第10个字节到变量c中,下列哪个正确()(选择一项) 259.新建一个流对象,下面那个选项的代码是错误的?() 260.下面哪个流是面向字符的输入流() 261.Java类库中,将信息写入内存的类是() 262.请写出一段代码,能够完成将字符串写入文件 public class test { public static void main(S

m0_67455745的博客 1万+

IO面试题

1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中。其中, 所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类; 而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类。 【首先需要明白的是:流是干什么的???(为了永久性的保存数据) 根据数据流向的不...

一吻成痴 1万+
上一篇: 【Java进阶营】java面试题 --- 集合
下一篇: 【Java进阶营】java面试题 --- JVM之体系结构
宇小哥
博客等级 码龄5年 4粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值