Java存储空间有这么几块-来源于Java编程思想
寄存器:位于处理器内部,不受外层代码控制,由处理器自行分配-C/C++可以建议分配方式
堆栈:位于RAM中 引用和基本数据类型存放的区块。 指针向下生成新对象,向上释放对象(new关键字),相当于链表结构。
堆:位于RAM中 对象存放的区块
常量存储:位于ROM中 存放于方法体中
非RAM存储:流对象和持久化数据-存储到硬盘
说到存储就难免讲到JVM的垃圾回收机制,需要了解的同学可以点进去看看
如果要实现处理器的高效率,那么就要压榨它的每一寸(byte)的运行能力,I3的处理器达到3.4GHz,即每秒运算3.4亿次,因此给它划分任务块,每块分配足够多的任务,实现高并发;所以对内存的模型需要详细了解。
由于硬件的读写速度与处理器的运算速度差距过大,一般都会写一层高速缓存来作为缓冲,一边从硬盘读数据到缓存,一边把处理器的处理结果写入缓存,一边把缓存中要写入的数据写到硬盘;因此很多程序会使用到中间件。
如果多个处理器同时处理缓存,就需要拟定协议谁先谁后,对于同一个处理器中的任务也是同样如此,有sychronzied关键字来处理;同时处理器还会对一段程序丧心病狂的进行(OOOE)乱序处理,也就是顺序在前面的代码并不一定先执行,对于依赖前段程序结果的代码来说,就需要通过其他途径来保证顺序性。
寄存器:位于处理器内部,不受外层代码控制,由处理器自行分配-C/C++可以建议分配方式
堆栈:位于RAM中 引用和基本数据类型存放的区块。 指针向下生成新对象,向上释放对象(new关键字),相当于链表结构。
堆:位于RAM中 对象存放的区块
常量存储:位于ROM中 存放于方法体中
非RAM存储:流对象和持久化数据-存储到硬盘
说到存储就难免讲到JVM的垃圾回收机制,需要了解的同学可以点进去看看
如果要实现处理器的高效率,那么就要压榨它的每一寸(byte)的运行能力,I3的处理器达到3.4GHz,即每秒运算3.4亿次,因此给它划分任务块,每块分配足够多的任务,实现高并发;所以对内存的模型需要详细了解。
由于硬件的读写速度与处理器的运算速度差距过大,一般都会写一层高速缓存来作为缓冲,一边从硬盘读数据到缓存,一边把处理器的处理结果写入缓存,一边把缓存中要写入的数据写到硬盘;因此很多程序会使用到中间件。
如果多个处理器同时处理缓存,就需要拟定协议谁先谁后,对于同一个处理器中的任务也是同样如此,有sychronzied关键字来处理;同时处理器还会对一段程序丧心病狂的进行(OOOE)乱序处理,也就是顺序在前面的代码并不一定先执行,对于依赖前段程序结果的代码来说,就需要通过其他途径来保证顺序性。