转行小白成长路-java篇
第18章:javaI/O系统
昨天忘记记录原理了,今天把常用的三种容器的实现原理粗略记录一下
ArrayList:内置数组,有个全局变量判断当前数组的情况,如果不够会扩大,重新生成数组。其中数组包含对象的信息和下一个数组的地址。
hashSet:实现的思想和arrayLIst类似,但是添加了一些其他的条件,比如equals,hashcode等方法就是添加了比较的元素,在查询的时候运用了散列,我的理解就像二维数组的意思,外层找位置,内存存储信息。这个思想,确切肯定不是这么说的。
hashMap:hashSet和hashMap谁快?不知道,因为他们的实现的思想挺类似的。
以上都是暂时现阶段你的理解,日后了解的深入,肯定不是这么简单的。
I/O系统是一个比较神秘的东西。我一直都挺好奇的,将数据由磁盘到内存中,比较好奇这个过程,但是这一章应该是不能给我解答这个疑惑了。但是这章还是比较重要的。我想根据这章的情况需要整合,罗列出数据流的种类,以及每一种数据流对应的使用情况,我觉的这样的整理是比较适合这章的。我也会在周末的时候整理出一份。眼下便是罗列出来局部简单的。
file:既可以表示特定文件的名称又可以表示一组文件。包含List()这种获取全部的方法。
InputStream:可以处理1.字节数组;2.String对象;3.文件;4.“管道”;5.其他种类流的序列;6.其他数据源
OutputStream:字节数组/文件或管道;其中没有String和其他的是因为输出到硬盘的限制。毕竟这是比较消耗资源的情况;
先写到这里,这几天有点累,明天再接着整理。