CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • IO 性能问题:瓶颈

    JAVA 25 SELF
    等级 41,课时 0
    本讲讲述什么是输入/输出中的“瓶颈”,以及如何发现并消除它。我们将分析为何磁盘与网络操作明显慢于内存(RAM),常见的反模式有哪些(通过 read() 逐字节读取、同步日志等),缓冲( BufferedInputStream、 BufferedReader)、性能分析器( VisualVM、 JProfiler)以及通过 System. currentTimeMillis () 进行时间测量如何提供帮助。我们将进行一个读取文件 "bigfile.txt" 的实践实验,对比有无缓冲的速度,观察 SSD/HDD 与网络的影响,并列举典型错误。
    可用
  • NIO 通道与 ByteBuffer

    JAVA 25 SELF
    等级 41,课时 1
    Java NIO 非阻塞 I/O 的实用入门:解析通道 Channel 和缓冲区 ByteBuffer 与流 InputStream/ OutputStream 的区别,如何使用 FileChannel 进行读写,借助 position()/ truncate() 进行定位,处理缓冲区参数( capacity、 limit、 position、 mark),以及在 allocate() 与 allocateDirect() 之间做选择。还展示了 zero-copy 操作 transferTo()/ transferFrom(),以及常见错误,比如忘记调用 flip() 和缓冲区模式不正确。
    可用
  • 超大文件:chunking 模式

    JAVA 25 SELF
    等级 41,课时 2
    如何在不触发 OutOfMemoryError 的情况下高效处理动辄几十 GB 的文件:将其按块(chunks)切分,使用 RandomAccessFile 和 FileChannel 按位置读取,借助 ExecutorService/ ForkJoinPool 并行化任务;而对简单拷贝使用通过 transferTo/ transferFrom 的零拷贝(zero-copy)。我们将讨论块大小的选择、行边界的处理、结果同步以及常见错误。
    可用
  • 处理大文件:chunking、memory mapping

    JAVA 25 SELF
    等级 41,课时 3
    如何在 Java 中安全且快速地处理海量文件:通过流与缓冲按块(chunking)读取,调节缓冲区大小以提升性能,使用 MappedByteBuffer 和 FileChannel 将文件映射到内存,实现超高速随机访问。我们将解析 memory mapping 的优缺点、资源与并行方面的建议,以及典型错误(例如 OutOfMemoryError、遗忘关闭的描述符、搜索时块重叠)。
    可用
  • 归档/压缩:java.util.zip

    JAVA 25 SELF
    等级 41,课时 4
    一堂关于在 Java 中处理归档与压缩的实战讲座:了解包 java.util.zip,流 ZipInputStream/ ZipOutputStream 以及随机访问类 ZipFile;通过 Deflater( 0… 9, DEFAULT_COMPRESSION)控制压缩级别;使用 GZIPInputStream/ GZIPOutputStream 处理单个File;借助 Files.walk 和基于 PathMatcher 的过滤( "glob:**/*.txt")来打包/解包目录。还将讨论安全性:通过路径规范化防护 Zip Slip,以及对 zip bomb 进行体积控制;最后我们将实现一个带通配符的迷你 CLI “zip/unzip”。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym