1. 迭代器_遍历List_Set

    1. 迭代器的由来是什么?

Coollection集合继承了Iteratorable接口,继承了其内部的抽象方法Iterator().

为了在不同的集合(ArrayList、LinkedList、HashSet、TreeSet)遍历元素,实现目的相同,实现方法不同,所以就有了Iterator接口

  1. 使用迭代器遍历集合的原理是什么?

在集合类内部的内部类(可以访问外部类的所有成员)Itr继承了Iterator接口,在类中定义成员变量cursor用于表示元素遍历到的位置,lastRet表示定义的临时Object数组将要存储元素的位置下标——即将遍历到的集合中的元素对象存储在临时数组中的位置,实现了Iterator接口中返回类型为boolean类型的方法hasNext(),用于判断集合中的元素是否遍历完毕,原理实每次遍历到一个元素,cursor的值加一表示下一个遍历到的元素位置,当cursor的值<集合长度时表示集合中还有元素,继续执行遍历方法next()

  1. 迭代器_遍历Map

    1. ListIterator接口比Iterator扩展的哪些方法?
  1. add()方法:
  2. hasPrevious()方法:
  3. previousIndex()方法
  4. Set()方法
  5. Previous()方法
    1. 并发修改异常是如何产生的?

是由于在使用Iterator迭代器遍历集合过程中,使用集合的add()方法向集合中添加元素

  1. 容器体系框架总结

    1. 画出集合体系框架图?
  1. 集合和数组的异同点?
  1. 集合中存储的是引用数据类型,数组中存储的是基本数据类型
  2. 数组长度不可变,集合长度可变
  3. 数组遍历速度快,集合遍历速度慢
  4. IO流的基本概念
    1. 简述IO流的原理?

数据源(Data Source):提供原始数据的原始媒介

IO流:输入输出流

流是一个动态的抽象的概念,是一连串连续动态的数据集合,数据源就像一个水箱,IO流就类似水管中流动的水,最终通过“水管”流向应用程序.

  1. Java中关于IO流的定义 ?

在Java程序中,对于数据的输入输出都是以流的方式进行的;流是一个动态的抽象的概念,是一连串连续动态的数据集合

J2SDK提供了各种各样的流类,用以获取不同种类的数据:程序中通过标准的方法输入输出数据。

Java的流类型一般位于http://java.io包中。

  1. 流的细分和体系_四大抽象类
  1. IO流可以分为哪几类?(输入输出是相对于程序而言,程序中为入,从程序中出为出)
  1. 根据流的方向:1.从数据源到程序:输入流(InputStream 、Reader 读进来)

2.从程序到目的地:输出流(OutPutStream、Writer写出去)

2.处理数据单元:1.字节流:按照字节读取数据(IntputStream、OutputStream)

2.字符流:按照字符读取数据(Reader、Writer)

3.节点流:数据源和应用程序或应用程序与目的地直接相连

4.处理流:不直接连接到数据源或目的地,是其他流进行的封装

节点流位于io操作第一线,所有操作必须通过他们进行

处理流可以对其他流进行处理(提高效率或操作灵活性)

  1. 流的四大抽象类分别是什么?
  1. InputStream
  2. OutputStream
  3. Reader
  4. Writer
  1. 文件字节流

    1. FileInputStream的常用方法有哪些?

抽象类InputStream中的方法(位于http://java.io包,是输入字节流所有类的超类)

  1. read()方法
  2. read(byte b[])方法
  3. read(byte b[] ,int off,int len)方法
  4. Available()方法
  5. close()方法
    1. FileOutputStream的常用方法有哪些?
  1. write()方法
  2. Write(byte[] b)
  3. Write(byte b[],int off,int len)
  4. flush()
  5. close()
  1. 使用字节流实现文件复制

    1. 简述使用字节流实现文件复制的原理?

原理是创建一个byte类型的数组,和一个while循环,将从数据源中读取到的数据循环存入byte数组,存入后就使用文件输出流将文件输出,存入目标位置

  1. 简述使用字节流实现文件复制的步骤?
  1. 创建文件输入、输出流对象
  2. 创建byte数组,长度为4的倍数
  3. 使用while循环,利用文件输入出流不停向byte数组中存入数据,文件输出流不停将byte数组中的数据输出到目标位置,实现文件复制的目的。

扩展:HashMap,HashSet的所有遍历方式

HashMap遍历方法:

1、使用entrySet

for (Map.Entry<String, Integer> entry : map.entrySet()) {

entry.getKey();

entry.getValue();

}

2、使用Entry的迭代器

Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();

while (iterator.hasNext()) {

Map.Entry<String, Integer> entry = iterator.next();

entry.getKey();

entry.getValue();

}

3、使用keySet集合(这个最简单的也是当时我唯一想到的方法):

for (String key : map.keySet()){

map.get(key);

}

HashSet遍历方法:

1、迭代器遍历:

Iterator iterator = set.iterator();

while (iterator.hasNext()) {

System.out.println(iterator.next());

}

2、for遍历set

for (String s : set) {

System.out.println(s);

}

  1. 文件字符流

    1. Reader常用的方法有哪些?

http://1.int read();方法

http://2.int read(char[] cbuf);方法

http://3.int read(char []cbuf,int off,int len);方法

http://4.int available()方法

5.close()方法

  1. Writer常用的方法有哪些?
  1. Void write(int c):方法
  2. Void write(char[] cbuf);方法
  3. Abstract void write(char[]cbuf,int off,int len);方法
  4. Void write(String str)方法
  5. Abstract void flush()方法
  6. 缓冲字节流_缓冲字符流
    1. 缓冲字节流的特点是什么?

缓冲字节流读写文件都使用到了缓冲区,可以减少读写次数,提高读写效率

  1. 简述使用缓冲字节流进行文件复制时提高效率的原理是什么?
  1. 缓冲字节流读写文件都使用到了缓冲区,可以减少读写次数,提高读写效率
  1. 转换流

    1. InputStreamReader的作用是什么?

用于将字节流转换成字符流

  1. OutputStreamWriter的作用是什么?

用于将字符流转换成字节流

  1. 打印流

    1. 简述PrintStream的特点?
  1. 简述PrintWriter与PrintStream的区别?
  1. PrintWriter是PrintStream的对应字符流,功能相同,方法对应
  2. 复制文件时PrintWriter替代PrintStream完成,更加简单
  3. 数据流
    1. 数据流的作用是什么?

1.提供了可以存取所有java基础类型和String的方法

2.处理流,只针对二进制文件

3.输入流链和输出流链

  1. 你学过的流中哪些是处理流?

java byte[]如何移动位置_《北京尚学堂学习》——java基础相关推荐

  1. 北京尚学堂python 百度网盘_北京尚学堂_1903期_Python_全套视频教程(视频、源码、课件)...

    北京尚学堂_1903期_Python_全套视频教程(视频.源码.课件) |____尚学堂官网.url |____尚学堂_程序员修炼手册(电子版).url |____软件开发常用词汇(北京尚学堂发布). ...

  2. 北京尚学堂最新java大纲附python,框架项目视频教程资料

    章节1:300集预科班 课时1为什么需要学编程,什么样的人可以做程序员22:18 课时2流行的编程语言,应该怎么选择17:23 课时3本行不行,我可以转行到IT开发吗11:51 课时4程序员不是青春饭 ...

  3. 尚硅谷和尚学堂的区别_在北京尚学堂学习的009天

    1. 冒泡排序的优化算法 (1) 冒泡排序的基础算法有哪些缺点? 冒泡排序的基础算法的缺点:排序的次数多,外层循环是数组的长度-1次,内层循环也需要数组长度-1的次数一样多.效率较低. (2) 可以从 ...

  4. hadoop商品推荐_北京尚学堂学员学习经验分享:商品推荐

    商品推荐 入口方法 package cn.sxt.itemcf; import org.apache.hadoop.conf.Configuration; import java.util.HashM ...

  5. python之父北京尚学堂_北京尚学堂 - 主页

    ${content} 你输入的邮件地址曾经通过${type}激活了本站帐号,请使用${type}帐号直接登录. 课程习题 : 提示 请选择一个答案 提交 查看正确答案 下一题 ${option}: $ ...

  6. java的重点是什么_你知道初学者学习Java的重点是什么吗?

    如果调试一个程序让你很苦恼,千万不要放弃,成功永远在拐角之后,除非你走到拐角,否则你永远不知道你离他多远,所以,请记住,坚持不懈,直到成功. 集合框架 1:String类:字符串(重点) (1)多个字 ...

  7. 北京尚学堂JAVASE课程

    北京尚学堂JAVASE课程 一.java历史-特点 1.计算机语言发展史 何为要发明计算机:为了进行科学计算,复杂的科学计算. 人类如何和计算机沟通,去分配任务. 通过计算机语言 实现 人类和计算机的 ...

  8. 北京尚学堂|为什么要学习Java

    2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 1. 思考一下​ 学习Java之前,先别急,静下心来好好想想: 1) ...

  9. 北京尚学堂|程序员的智慧

    2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 编程是一种创造性的工作,是一门艺术.精通任何一门艺术,都需要很多的练习 ...

  10. 1024程序员节:北京尚学堂向改变世界的程序员致敬

    2019独角兽企业重金招聘Python工程师标准>>> 写在前面 正值1024程序员节日来临之际,今天心血来潮,想写篇文章来为我们这些猿猿致敬,也算了却一个心愿,让我们这些猿猿们以自 ...

最新文章

  1. php中的interface和implements及其他
  2. 提示MyEclipse Trial Expired,手动获取MyEclipse 注册码
  3. 一样是做鸭,绝味与周黑鸭的利润为何相差那么大?
  4. 改工作空间_打拼六年换的新房,装修花了17万,飘窗改柜子很实用,谁见过?...
  5. nyoj 寻找最大数
  6. 记录工作中常用的CSS3
  7. linux下浏览器如何登录微信,js判断手机浏览器操作系统和微信浏览器的方法
  8. 最小方法ZOJ 1579 Bridge
  9. 改变翻天覆地 史上最全Fermi架构解读
  10. 分享240道有意思的逻辑思维题
  11. Word域代码公式交叉引用
  12. Rework 读后感
  13. 法国数学到底有多厉害?
  14. MKOnlinePlayer在线音乐播放器
  15. 华为云服务权限在哪_华为云数据湖探索服务DLI,精细化保障企业大数据安全
  16. 一维信号卷积与图像卷积的区别
  17. https://blog.csdn.net/codezjx/article/details/8872090
  18. 拓扑排序与关键路径(AOV网和AOE网)
  19. 树莓派+多个微雪电子Serial Expansion HAT扩展板叠加方法(扩展多个IO口、串口)
  20. Filter过滤器url-pattern的两种方式

热门文章

  1. 数据库操作导入导出以及加快查询速度
  2. mysql基础以优化
  3. 树形目录生成器.bat
  4. springboot幂等性_springboot + redis + 注解 + 拦截器 实现接口幂等性校验
  5. ListenalbeFuture的使用总结
  6. Vue全家桶+koa2+MySql(sequelize)重构“零食商贩”项目
  7. 在Android中实现一个简易的Http服务器
  8. opencv提供的带参数例程
  9. 怎么估算空间利用率?新研发传感器分分钟搞定!
  10. SQL Server 查询数据库中被锁定的表