`
裴小星
  • 浏览: 265286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
8ccf5db2-0d60-335f-a337-3c30d2feabdb
Java NIO翻译
浏览量:27825
F3e939f0-dc16-3d6e-8c0b-3315c810fb91
PureJS开发过程详解
浏览量:74140
07a6d496-dc19-3c71-92cf-92edb5203cef
MongoDB Java ...
浏览量:62957
社区版块
存档分类
最新评论

JAVA NIO 全书 译稿

阅读更多

JAVA NIO 全书 译稿 

 

 

前言 

 

  本书介绍了Java平台上的高级输入/输出,具体点说,就是使用Java 2标准版(J2SE)软件开发包(SDK1.4及以后版本进行的输入/输出。J2SE 1.4版代号Merlin,包含可观的I/O新特性,对此我们将作详细论述。这些新的I/O特性主要包含在java.nio软件包及其子包中,并被命名为New I/ONIO)。通过本书,您将学会如何使用这些令人兴奋的新特性来极大地提升Java应用程序的I/O效率。   

 

 

第一章 简介 

 

  面向对象的程序设计讲的无非就是封装。封装是个好东西:它分解任务,隐藏实施细节,提高对象的重复利用率。这样的分解、整合既适用于程序,也适用于程序员。您没准就是一位技艺高超的Java程序员,创建极其复杂的对象,完成惊世骇俗的任务,而对支撑Java平台的基本I/O概念却几乎一无所知。本章,我们暂且把封装问题抛在一边,先来看看某些底层I/O实施细节,希望有助于你更好地组织协调各个零部件的I/O操作。

   

第二章 缓冲区 

 

  一个Buffer对象是固定数量的数据的容器。其作用是一个存储器,或者分段运输区,在这里数据可被存储并在之后用于检索。缓冲区如我们在第一章所讨论的那样被写满和释放。对于每个非布尔原始数据类型都有一个缓冲区类。尽管缓冲区作用于它们存储的原始数据类型,但缓冲区十分倾向于处理字节。非字节缓冲区可以在后台执行从字节或到字节的转换,这取决于缓冲区是如何创建的。我们将在本章节后面的部分检查缓冲区数据存储的含义。

  缓冲区的工作与通道紧密联系。通道是I/O传输发生时通过的入口,而缓冲区是这些数据传输的来源或目标。对于离开缓冲区的传输,您想传递出去的数据被置于一个缓冲区,被传送到通道。对于传回缓冲区的传输,一个通道将数据放置在您所提供的缓冲区中。这种在协同对象(通常是您所写的对象以及一到多个Channel对象)之间进行的缓冲区数据传递是高效数据处理的关键。通道将在第三章被详细涉及。  

 

第三章 通道 

 

  Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据。

  多数情况下,通道与操作系统的文件描述符(File Descriptor)和文件句柄(File Handle)有着一对一的关系。虽然通道比文件描述符更广义,但您将经常使用到的多数通道都是连接到开放的文件描述符的。Channel类提供维持平台独立性所需的抽象过程,不过仍然会模拟现代操作系统本身的I/O性能。

  通道是一种途径,借助该途径,可以用最小的总开销来访问操作系统本身的I/O服务。缓冲区则是通道内部用来发送和接收数据的端点。 

 

第四章 选择器 

 

   选择器(Selector)提供选择执行已经就绪的任务的能力,这使得多元I/O成为可能。就像在第一章中描述的那样,就绪选择和多元执行使得单线程能够有效率地同时管理多个I/O通道(channels)。

  有时我们需要采用快速检查大量资源中的任意一个是否需要关注,而在某些东西没有准备好时又不必被迫等待的通用模式。这种检查并继续的能力是可扩展性的关键,它使得仅仅使用单一的线程就可以通过就绪选择来监控大量的通道。
  选择器及相关的类就提供了这种 API,使得我们可以在通道上进行就绪选择。
 

 

第五章 正则表达式  

 

  本章我们将讨论新的程序包java.util.regex(见图5-1)中类的API(译注10)。JSR51,即Java规范请求(Java Specification Request),定义了新的I/O权能,它还明确了添加到Java平台上的正则表达式处理技术。尽管严格说来正则表达式并不是I/O,但是它们最常用于浏览从文件或数据流(stream)中读取的文本数据。

  Perl、egrep和其它文本处理工具有着功能强大的模式匹配(pattern matching),本章中你将学会如何使用新的Java API达到相同的模式匹配效果。  

 

第六章 字符集 

 

  在Java平台上,我们经常需要处理多种语言以及组成这些语言的多个字符。幸运的是,Java是第一个被广泛使用的编程语言,它使用内在的Unicode来表示字符。与以字节为导向的编程语言例如C或C++相比,Unicode的固有支持大大的简化了字符数据处理,但决不是自动地处理字符。您仍需要理解字符映射的工作原理以及如何处理多个字符集。 

 

 

  欢迎批评指正、探讨交流。

80
7
分享到:
评论
75 楼 DragonKiiiiiiiing 2016-04-13  
支持楼主,中国互联网太缺这种无私奉献的人了。您的这本书我已拜读,翻译的很不错,通俗易懂,专业性强但是某些时候还不缺反娱乐性语句,让人读起来很愉悦!
以后如果我掌握一定程度的专业知识,我觉得我也需要时常翻译或者写一些有深度文章。
74 楼 cfanllm 2014-05-18  
楼主辛苦了,,,谢谢分享啊
73 楼 join_wu 2014-03-13  
楼主 下载了 感谢
72 楼 BabyDuncan 2013-10-21  
确实挺牛逼
71 楼 aiquestion 2012-10-27  
大赞lz,之前只在网上找到过英文版的,英文的看的效率太低了。
70 楼 yangb2008 2012-08-12  
太棒了,我正找此类书籍,翻译的水平真棒,
69 楼 mifi_cheung 2012-07-04  
必须赞,楼主好人
68 楼 fengpy2009 2012-06-11  
67 楼 步青龙 2012-05-03  
谢楼主,感激不尽!
66 楼 sodmewuhan 2012-04-13  
LZ是好人
65 楼 jude_cn 2012-04-06  
正好需要!
64 楼 messon619 2012-03-20  
lz大哥真是好人啊,自己花大精力和时间去做翻译工作,还免费供大家下载学习!
63 楼 washheart163.com 2012-01-11  
踏实做事,成功做人
62 楼 mifi_cheung 2011-12-25  
顶啊,谢谢
61 楼 lynnkong 2011-12-19  
这年头肯花时间做好事的人越来越少咯
60 楼 zhfally520 2011-11-02  
楼主 太牛逼了
59 楼 cai555 2011-09-14  
帅呆了
58 楼 shujin 2011-09-07  
楼主辛苦了,楼主威武!
57 楼 forchase 2011-08-29  
LZ真是好人呀,不知道翻译这么多内容要花多少时间?
56 楼 zuchunlei2010 2011-08-25  
非常感谢,LZ真牛!

相关推荐

    java NIO和java并发编程的书籍

    java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...

    JavaNIO chm帮助文档

    Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...

    java NIO.zip

    Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java标准库提供的一种替代传统的I/O模型的新技术。自Java 1.4版本引入NIO后,它为Java开发者提供了更高效的数据传输方式,尤其是在处理大量并发...

    Java NIO英文高清原版

    Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java平台中用于替代标准I/O(BIO)模型的一种新机制。NIO在Java 1.4版本引入,提供了更高效的数据处理和通道通信方式,特别适用于高并发、大数据...

    Java NIO 中文 Java NIO 中文 Java NIO 中文文档

    Java NIO 深入探讨了 1.4 版的 I/O 新特性,并告诉您如何使用这些特性来极大地提升您所写的 Java 代码的执行效率。这本小册子就程序员所面临的有代表性的 I/O 问题作了详尽阐述,并讲解了 如何才能充分利用新的 I/O ...

    java NIO 视频教程

    Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,...

    java nio 包读取超大数据文件

    ### Java NIO 处理超大数据文件的知识点详解 #### 一、Java NIO简介 Java NIO(New IO)是Java平台上的新输入/输出流API,它提供了与传统IO(即Java IO)不同的数据处理方式。NIO在Java 1.4版本引入,并在后续版本...

    java NIO技巧及原理

    Java NIO(New Input/Output)是Java标准库提供的一种I/O模型,它与传统的 Blocking I/O(IO)相比,提供了更加高效的数据传输方式。在Java NIO中,"新"主要体现在非阻塞和多路复用这两个特性上,这使得NIO更适合于...

    java NIO实例

    Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java从1.4版本开始引入的一种新的I/O模型,它为Java应用程序提供了更高效的数据传输方式。传统的Java I/O模型(BIO)在处理大量并发连接时效率较...

    一个java NIO的例子

    Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java标准库提供的一种替代传统I/O模型的新技术。在传统的Java IO模型中,读写操作是阻塞的,即当调用read或write方法时,线程会等待数据准备好或...

    Java Nio selector例程

    java侧起server(NioUdpServer1.java),基于Java Nio的selector 阻塞等候,一个android app(NioUdpClient1文件夹)和一个java程序(UI.java)作为两个client分别向该server发数据,server收到后分别打印收到的消息...

    Java NIO Socket基本

    Java NIO(New Input/Output)是Java标准库中提供的一种I/O模型,与传统的 Blocking I/O(同步阻塞I/O)相对。NIO在Java 1.4版本引入,其设计目标是提供一种更高效、更灵活的I/O操作方式,特别适合处理大量并发连接...

    java nio入门学习,两个pdf

    Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java标准库提供的一种替代传统I/O模型的新技术。在Java 1.4版本中引入,NIO提供了一种全新的I/O编程方式,使得Java开发者能够更高效地处理I/O操作...

    基于Java NIO实现五子棋游戏.zip

    基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现...

    java nio 实现socket

    ### Java NIO 实现Socket通信详解 #### 一、NIO与传统IO的区别及优势 在探讨如何使用Java NIO实现Socket通信之前,我们需要先理解NIO(Non-blocking I/O,非阻塞I/O)与传统阻塞I/O之间的区别。 **传统阻塞I/O...

Global site tag (gtag.js) - Google Analytics