Java基础知识(三)
计算机的存储结构
磁盘存储方式,磁盘有两面,是粗糙的,有一圈一圈的磁道,磁道上面有很多很多的磁点来进行数据的存储,磁针来读取数据。
其中基本数据类型和引用变量名存储在栈中,非基本类型存储在堆中
入栈流程
变量入栈,给变量开辟一定的内存空间,然后寻找有没有值等于变量值的地址,没有就新开辟一块内存空间,让这块内存空间的值等于变量值,并让变量指向内存空间(在a中存储他的地址);如果有,就直接在变量存储地址。
磁盘的存储是连续的,但是一旦有数据删除,就打破了这种连续,这是就使用链表的形式来存储数据。
内存的存储形式与磁盘的存储形式类似又不同,因为内存与CPU数据是交互的,所以就必须要求内存是线性存储的,地址连续。
JVM 中类的加载过程
但是内存的大小是固定的,所以每一个数据,变量入栈前都要提前说好大小,这样可以合理分配内存空间。但是如果是一个全局变量不赋值,入栈初始化为地址为0。而局部变量不赋值,是不可以入栈的,因为局部变量不一定会用,所以用的话,占的空间大小一定要确定。