输入、输出是相对于 JVM 来说的。
从外部读取数据到 JVM 内存中,相对于 JVM 来说就是输入
从 JVM 内存写数据到文件中,或者其他地方,相对于 JVM 来说就是输出
随机存取
在数据结构中,随机存取暗指可由一堆数字之中,能够以不变时间存取N值的能力,而且除了数组(及相关结构,例如动态阵列)以外,绝少数据结构能够作出类似程序。另外,随机存取对不少算法,如快速排序及二元搜寻而言不可或缺。其他数据结构,如链表,则牺牲了随机存取来换取高效率的插入、删除或排序功能。
与随机存取相反的是顺序存取,如链表
链表有一个“头指针”变量,它存放一个地址,该地址指向链表中第一个结点,第一个结点又指向第二个结点……直到最后一个结点。该结点不再指向其他结点,它称为“表尾”,它的地址部分存放一个“NULL”(表示“空地址”),链表到此结束。链表中每个结点都包括两个部分:用户需要用的实际数据和下一个结点的地址。
可以看到链表中各结点在内存中可以不是连续存放的。要找到某一结点C,必须先找到其上一个结点B,根据结点B提供的下一个结点地址才能找到C。链表有一个“头指针”,因此通过“头指针”可以按顺序往下找到链表中的任一结点,如果不提供“头指针”,则整个链表都无法访问。链表如同一条铁链一样,一环扣一环,中间是不能断开的。