熟练使用有棱有角的内存
1.内存的物理机制:内存IC内部有大量可以存储8位数据的地方,通过地址指定这些场所,之后即可进行数据的读写。
2.内存的逻辑模型是楼房:内存的实体是内存IC,在程序员眼里,内存模型还包含着内存中不存在的概念,那就是数据类型。在编程语言中,数据类型表示存储的是何种类型的数据【在JAVA中的基本数据类型有8中:char、int、double、float、byte、long、short等】
3.简单的指针:指针也是一种变量,它所表示的不是数据的值,而是存储着数据内存的地址。
4.数组是高效使用内存的基础:数组是指多个同样数据类型的数据在内存中连续排列的形式。数组的定义中所指定的数据类型,也表示一次能够读写的内存大小。之所以说数组是高效使用内存的基础,是因为数组和内存的物理构造是一样的。
5.栈、队列以及环形缓冲区:栈和队列的区别在于数据出入的顺序不同。在对内存数据进行读写时,栈用【LIFO,后入先出】,队列用【FIFO,先入先出】。如果我们在内存中预留出栈和队列所需要的空间,并确定好写入和读出的顺序,就不用在指定地址和索引了。
6.链表使元素的追加和删除更容易:在数据各元素中,除了数据的值之外,通过为其附带上下一个元素的索引,即可实现链表。使用代码清单来追加或删除数据则毫不费事。
7.二叉查找树使数据搜索更有效:二叉查找树是指在链表的基础上往数组中追加元素时,考虑到数据的大小关系,将其分成左右两个方向的表现形式。如图所示