加载中

IO

文章分类

浏览该分类下的所有文章

5 篇文章 1

代码优化的部分实例

小邹分享了几种常见的代码优化技巧:用String.format提升URL拼接可读性;采用BufferedInput/OutputStream并配合缓冲数组减少文件读写次数;通过把列表转为Map降低嵌套循环的复杂度;使用try‑finally或try‑with‑resources确保ResultSet、PreparedStatement、Connection等资源及时关闭;以及使用数据库连接池(如Druid)避免频繁创建/销毁连接提升并发性能。

Java实现对某一文件夹下的所有txt文件进行两两对比并展示差异

本文演示了使用 Java 实现对指定文件夹下所有 .txt 文件两两配对并逐行比较差异的完整过程。首先在 D:/txt 目录准备若干 txt 与其他类型文件,代码通过 `getFileName` 方法遍历目录仅收集 .txt 文件路径。随后在 `main` 中按顺序每次取相邻两个文件读取为 UTF‑8 字符串,若内容相同直接输出“完全相同”。若不同,则分别按行拆分,比较每行内容并打印出旧文件和新文件的差异行号及文本。程序还处理文件夹不存在或为空的情况。整体思路简单直观,适合作为 Java 基础文件 I/O 与字符串比较的练手案例。

面试现场【综合篇】

文章围绕面试常见技术点展开,先示例如何从项目经验、设计优化和代码亮点切入;随后系统阐述零拷贝的概念、实现方式及其对上下文切换和拷贝次数的削减;归纳五种IO模型,比较NIO与多路复用(select、poll、epoll)的区别与优势;解析FutureTask阻塞获取结果的内部状态机与等待机制;对比ReentrantLock与synchronized的实现原理及适用场景;并简要涉及乐观/悲观锁、AQS、Paxos、B+树、TCP拥塞、JVM调优、分库分表、分布式事务、RocketMQ可靠性等面试热点。整体提供了技术要点的概念解释与实现细节,帮助读者在面试中快速组织答案。

看一遍就理解:零拷贝详解

零拷贝是一种 I/O 优化技术,避免 CPU 在用户态与内核态之间复制数据,从而减少上下文切换和拷贝次数。传统 read‑write 流程需四次态切换、四次拷贝;而通过 mmap+write、sendfile 以及带 DMA scatter/gather 的 sendfile,可将拷贝次数降至 1‑2 次,后者实现全程 DMA 传输,真正的零拷贝。Java NIO 提供 MappedByteBuffer(基于 mmap)和 FileChannel 的 transferTo/transferFrom(封装 sendfile),是 Kafka、RocketMQ 等高性能系统的关键加速手段。

如何使用Java程序读取zip文档?

本文介绍了在 Java 中使用 `ZipInputStream` 读取 ZIP 文档的基本方法。首先在 Maven 中加入 `commons-io` 依赖,然后通过 `ZipFile` 与 `ZipInputStream`(指定 GBK 编码)打开压缩包,使用 `getNextEntry()` 循环遍历每个 `ZipEntry`,打印路径并对非目录且以 `.txt` 结尾的文件读取内容,利用 `IOUtils.readLines` 将流转为字符串列表。代码示例展示了完整的文件读取、文本输出以及资源的安全关闭,运行后可在控制台打印出压缩包内所有文件及 txt 文件内容。