【内存的种类】
1、ROM->Read Only Memory
2、RAM->Random Access Memory
3、Cache->高速缓存
【RAM–随机存取存储器】
RAM是可读可写的存储器,通常表现为计算机的“内存条”,或手机的“运行内存”
RAM用于存储正在执行的程序和数据
RAM是CPU与其他所有外部设备之间交换数据的桥梁
RAM一旦断电,所有数据都会消失
RAM容量越大,则整个硬件系统运行过程中,表现的越流畅
【JVM中的内存】
JVM在运行JAVA程序时,会把内存区分为栈内存(stack)和堆内存(heap)
栈内存用于存储级别数据类型的变量与值、引用数据类型的引用、参数的副本
堆内存用于存储引用数据类型的数据
除了基本数据类型外,其他都是引用类型,例如InputStream和自己写的类全是引用类型
【关于参数的副本】
i在栈内存,调用add()方法时,会在栈内存中增加一个i的副本,执行方法时,用参数的副本完成运算,完成后,副本消失,i还是原来的8
而数组arr存在与堆内存中,它的内存地址是存在栈内存的,根据内存地址找到数组,在执行add()方法时,会产生一个副本,也就是在栈内存中再复制它的一个内存地址,根据这个地址它找到的还是数组arr,所以数据变了,虽然副本消失了