在哪儿:jdk\jre\lib\rt.jar

package java.io;  

package java.nio;

1 分类

1.1 IO

持久化序列化对象并压缩步骤

  new FileOutputStream  文件输出流,用于向文件进行写入操作。

  BufferedOutputStream缓冲输出流,为另外一个输出流添加缓冲功能。

  ZipOutputStream

  ObjectOutputStream对象输出流,用来对基本数据或对象提供持久化存储。

  writeObject

1.2 NIO 

1.2.1 channels:包含socket file pipe三种管道

1.2.2 buffer

  Buffer CharBuffer  DoubleBuffer FloatBuffer  IntBuffer  LongBuffer ShortBuffer

1.2.3 charset字符编码

  CharsetDecoder将字节转换成字符序列

  CharsetEncoder将字符序列转换成字节

1.2.4 selector

2 区别

IO 面向流 阻塞IO  
NIO 面向缓存 非阻塞IO 选择器

3 阻塞和非阻塞区别

  阻塞:当某个事件执行时,如果请求操作未满足,则一直阻塞,直至条件满足。

  非阻塞:当某件事件执行时,如果请求操作未满足,不会一直阻塞,而是会立即返回一个标志信息告知条件不满足。

JAVA基础之——JDK分析io、nio的更多相关文章

  1. JAVA基础(10)——IO、NIO

    转载:http://blog.csdn.net/weitry/article/details/52964948 JAVA基础系列规划: JAVA基础(1)——基本概念 JAVA基础(2)——数据类型 ...

  2. 黑马程序员:Java基础总结----GUI&网络&IO综合开发

    黑马程序员:Java基础总结 GUI&网络&IO综合开发   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 网络架构 C/S:Client/Server ...

  3. Java基础知识强化之IO流笔记83:NIO与IO

    当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们如何影响您的代 ...

  4. 【java基础之jdk源码】集合类

    最近在整理JAVA 基础知识,从jdk源码入手,今天就jdk中 java.util包下集合类进行理解 先看图 从类图结构可以了解 java.util包下的2个大类: 1.Collecton:可以理解为 ...

  5. Java基础知识 ——JDK,JRE和JVM

    1.开发简单的Java程序过程: 名词解释: JDK:JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行 ...

  6. 【java基础之jdk源码】Object

    最新在整体回归下java基础薄弱环节,以下为自己整理笔记,若有理解错误,请批评指正,谢谢. java.lang.Object为java所有类的基类,所以一般的类都可用重写或直接使用Object下方法, ...

  7. Java基础(1)--JDK,变量

    Scanner的next()方法和nextLine()方法 1.next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动 ...

  8. Java 基础(四)| IO 流之使用文件流的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景 ...

  9. Java 基础(三)| IO流之使用 File 类的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 File 类? java ...

随机推荐

  1. 【ocp-12c】最新Oracle OCP-071考试题库(40题)

    40.(8-7) choose two Which two statements are true regarding views? (Choose two.) A) A simple view in ...

  2. BZOJ 1934--善意的投票(最小割)

    1934: [Shoi2007]Vote 善意的投票 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 2354  Solved: 1471[Submit][ ...

  3. Microsoft Visual C++ 14.0 is required

    building 'twisted.test.raiser' extensionerror: Microsoft Visual C++ 14.0 is required. Get it with &q ...

  4. vector类型介绍

    一.vector类型简介 标准库:集合或动态数组,我们可以放若干对象放在里面. vector他能把其他对象装进来,也被称为容器 #include <iostream> #include & ...

  5. Ubuntu下解决apt update时签名无效问题

    Ubuntu 18.04在执行apt-get update时出现一下报错: W: GPG 错误:http://repo.mysql.com/apt/ubuntu bionic InRelease: 下 ...

  6. [Xamarin]測試帳號申請與到期後如何續用 (转帖)

    在Xamarin網站上可以申請30天試用的測試帳號.試用期內,Xamarin會提供完整的功能試用. 30天試用時間到期後,在Visual Studio裡面你載入你的專案的時候,專案旁會標註(無法使用) ...

  7. (转)MySQL出现同步延迟有哪些原因?如何解决?

    http://oldboy.blog.51cto.com/2561410/1682147----MySQL出现同步延迟有哪些原因?如何解决? 原文:http://www.zjian.me/mysql/ ...

  8. flot中文详解

    调用plot函数的方法如下: var plot = $.plot(placeholder, data, options) Data的结构: data应该是data series的一个数组: [ ser ...

  9. Spring由于web配置导致的spring配置文件找不到的问题的解决方案

    在把某项技术整合到Spring中的时候,我们时常会发现报如下错误: org.springframework.beans.factory.BeanCreationException: Error cre ...

  10. javac的访问者模式

    这一篇重点来总结下javac的访问者模式,其定义的访问者接口为JCTree.Visitor,具体如下: /** A generic visitor class for trees. */ public ...