java byte[]如何移动位置_《北京尚学堂学习》——java基础
- 迭代器_遍历List_Set
- 迭代器的由来是什么?
Coollection集合继承了Iteratorable接口,继承了其内部的抽象方法Iterator().
为了在不同的集合(ArrayList、LinkedList、HashSet、TreeSet)遍历元素,实现目的相同,实现方法不同,所以就有了Iterator接口
- 使用迭代器遍历集合的原理是什么?
在集合类内部的内部类(可以访问外部类的所有成员)Itr继承了Iterator接口,在类中定义成员变量cursor用于表示元素遍历到的位置,lastRet表示定义的临时Object数组将要存储元素的位置下标——即将遍历到的集合中的元素对象存储在临时数组中的位置,实现了Iterator接口中返回类型为boolean类型的方法hasNext(),用于判断集合中的元素是否遍历完毕,原理实每次遍历到一个元素,cursor的值加一表示下一个遍历到的元素位置,当cursor的值<集合长度时表示集合中还有元素,继续执行遍历方法next()
- 迭代器_遍历Map
- ListIterator接口比Iterator扩展的哪些方法?
- add()方法:
- hasPrevious()方法:
- previousIndex()方法
- Set()方法
- Previous()方法
- 并发修改异常是如何产生的?
是由于在使用Iterator迭代器遍历集合过程中,使用集合的add()方法向集合中添加元素
- 容器体系框架总结
- 画出集合体系框架图?
![](/assets/blank.gif)
- 集合和数组的异同点?
- 集合中存储的是引用数据类型,数组中存储的是基本数据类型
- 数组长度不可变,集合长度可变
- 数组遍历速度快,集合遍历速度慢
- IO流的基本概念
- 简述IO流的原理?
数据源(Data Source):提供原始数据的原始媒介
IO流:输入输出流
流是一个动态的抽象的概念,是一连串连续动态的数据集合,数据源就像一个水箱,IO流就类似水管中流动的水,最终通过“水管”流向应用程序.
- Java中关于IO流的定义 ?
在Java程序中,对于数据的输入输出都是以流的方式进行的;流是一个动态的抽象的概念,是一连串连续动态的数据集合
J2SDK提供了各种各样的流类,用以获取不同种类的数据:程序中通过标准的方法输入输出数据。
Java的流类型一般位于http://java.io包中。
- 流的细分和体系_四大抽象类
- IO流可以分为哪几类?(输入输出是相对于程序而言,程序中为入,从程序中出为出)
- 根据流的方向:1.从数据源到程序:输入流(InputStream 、Reader 读进来)
2.从程序到目的地:输出流(OutPutStream、Writer写出去)
2.处理数据单元:1.字节流:按照字节读取数据(IntputStream、OutputStream)
2.字符流:按照字符读取数据(Reader、Writer)
3.节点流:数据源和应用程序或应用程序与目的地直接相连
4.处理流:不直接连接到数据源或目的地,是其他流进行的封装
节点流位于io操作第一线,所有操作必须通过他们进行
处理流可以对其他流进行处理(提高效率或操作灵活性)
- 流的四大抽象类分别是什么?
- InputStream
- OutputStream
- Reader
- Writer
![](/assets/blank.gif)
- 文件字节流
- FileInputStream的常用方法有哪些?
抽象类InputStream中的方法(位于http://java.io包,是输入字节流所有类的超类)
- read()方法
- read(byte b[])方法
- read(byte b[] ,int off,int len)方法
- Available()方法
- close()方法
- FileOutputStream的常用方法有哪些?
- write()方法
- Write(byte[] b)
- Write(byte b[],int off,int len)
- flush()
- close()
- 使用字节流实现文件复制
- 简述使用字节流实现文件复制的原理?
原理是创建一个byte类型的数组,和一个while循环,将从数据源中读取到的数据循环存入byte数组,存入后就使用文件输出流将文件输出,存入目标位置
- 简述使用字节流实现文件复制的步骤?
- 创建文件输入、输出流对象
- 创建byte数组,长度为4的倍数
- 使用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);
}
- 文件字符流
- 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()方法
- Writer常用的方法有哪些?
- Void write(int c):方法
- Void write(char[] cbuf);方法
- Abstract void write(char[]cbuf,int off,int len);方法
- Void write(String str)方法
- Abstract void flush()方法
- 缓冲字节流_缓冲字符流
- 缓冲字节流的特点是什么?
缓冲字节流读写文件都使用到了缓冲区,可以减少读写次数,提高读写效率
- 简述使用缓冲字节流进行文件复制时提高效率的原理是什么?
- 缓冲字节流读写文件都使用到了缓冲区,可以减少读写次数,提高读写效率
![](/assets/blank.gif)
- 转换流
- InputStreamReader的作用是什么?
用于将字节流转换成字符流
- OutputStreamWriter的作用是什么?
用于将字符流转换成字节流
- 打印流
- 简述PrintStream的特点?
![](/assets/blank.gif)
- 简述PrintWriter与PrintStream的区别?
- PrintWriter是PrintStream的对应字符流,功能相同,方法对应
- 复制文件时PrintWriter替代PrintStream完成,更加简单
- 数据流
- 数据流的作用是什么?
1.提供了可以存取所有java基础类型和String的方法
2.处理流,只针对二进制文件
3.输入流链和输出流链
- 你学过的流中哪些是处理流?
![](/assets/blank.gif)
。
java byte[]如何移动位置_《北京尚学堂学习》——java基础相关推荐
- 北京尚学堂python 百度网盘_北京尚学堂_1903期_Python_全套视频教程(视频、源码、课件)...
北京尚学堂_1903期_Python_全套视频教程(视频.源码.课件) |____尚学堂官网.url |____尚学堂_程序员修炼手册(电子版).url |____软件开发常用词汇(北京尚学堂发布). ...
- 北京尚学堂最新java大纲附python,框架项目视频教程资料
章节1:300集预科班 课时1为什么需要学编程,什么样的人可以做程序员22:18 课时2流行的编程语言,应该怎么选择17:23 课时3本行不行,我可以转行到IT开发吗11:51 课时4程序员不是青春饭 ...
- 尚硅谷和尚学堂的区别_在北京尚学堂学习的009天
1. 冒泡排序的优化算法 (1) 冒泡排序的基础算法有哪些缺点? 冒泡排序的基础算法的缺点:排序的次数多,外层循环是数组的长度-1次,内层循环也需要数组长度-1的次数一样多.效率较低. (2) 可以从 ...
- hadoop商品推荐_北京尚学堂学员学习经验分享:商品推荐
商品推荐 入口方法 package cn.sxt.itemcf; import org.apache.hadoop.conf.Configuration; import java.util.HashM ...
- python之父北京尚学堂_北京尚学堂 - 主页
${content} 你输入的邮件地址曾经通过${type}激活了本站帐号,请使用${type}帐号直接登录. 课程习题 : 提示 请选择一个答案 提交 查看正确答案 下一题 ${option}: $ ...
- java的重点是什么_你知道初学者学习Java的重点是什么吗?
如果调试一个程序让你很苦恼,千万不要放弃,成功永远在拐角之后,除非你走到拐角,否则你永远不知道你离他多远,所以,请记住,坚持不懈,直到成功. 集合框架 1:String类:字符串(重点) (1)多个字 ...
- 北京尚学堂JAVASE课程
北京尚学堂JAVASE课程 一.java历史-特点 1.计算机语言发展史 何为要发明计算机:为了进行科学计算,复杂的科学计算. 人类如何和计算机沟通,去分配任务. 通过计算机语言 实现 人类和计算机的 ...
- 北京尚学堂|为什么要学习Java
2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 1. 思考一下 学习Java之前,先别急,静下心来好好想想: 1) ...
- 北京尚学堂|程序员的智慧
2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 编程是一种创造性的工作,是一门艺术.精通任何一门艺术,都需要很多的练习 ...
- 1024程序员节:北京尚学堂向改变世界的程序员致敬
2019独角兽企业重金招聘Python工程师标准>>> 写在前面 正值1024程序员节日来临之际,今天心血来潮,想写篇文章来为我们这些猿猿致敬,也算了却一个心愿,让我们这些猿猿们以自 ...
最新文章
- php中的interface和implements及其他
- 提示MyEclipse Trial Expired,手动获取MyEclipse 注册码
- 一样是做鸭,绝味与周黑鸭的利润为何相差那么大?
- 改工作空间_打拼六年换的新房,装修花了17万,飘窗改柜子很实用,谁见过?...
- nyoj 寻找最大数
- 记录工作中常用的CSS3
- linux下浏览器如何登录微信,js判断手机浏览器操作系统和微信浏览器的方法
- 最小方法ZOJ 1579 Bridge
- 改变翻天覆地 史上最全Fermi架构解读
- 分享240道有意思的逻辑思维题
- Word域代码公式交叉引用
- Rework 读后感
- 法国数学到底有多厉害?
- MKOnlinePlayer在线音乐播放器
- 华为云服务权限在哪_华为云数据湖探索服务DLI,精细化保障企业大数据安全
- 一维信号卷积与图像卷积的区别
- https://blog.csdn.net/codezjx/article/details/8872090
- 拓扑排序与关键路径(AOV网和AOE网)
- 树莓派+多个微雪电子Serial Expansion HAT扩展板叠加方法(扩展多个IO口、串口)
- Filter过滤器url-pattern的两种方式
热门文章
- 数据库操作导入导出以及加快查询速度
- mysql基础以优化
- 树形目录生成器.bat
- springboot幂等性_springboot + redis + 注解 + 拦截器 实现接口幂等性校验
- ListenalbeFuture的使用总结
- Vue全家桶+koa2+MySql(sequelize)重构“零食商贩”项目
- 在Android中实现一个简易的Http服务器
- opencv提供的带参数例程
- 怎么估算空间利用率?新研发传感器分分钟搞定!
- SQL Server 查询数据库中被锁定的表