1,寄存器:存取数据最快的地方,不能直接控制
2,堆栈(又叫栈stack)位于RAM(随机访问存储器)中,通过堆栈指针上下移动来实现存取数据,堆栈指针向下移动,则分配新的内存,堆栈指针向上移动,则释放内存,堆栈的优势是,存取速度要比堆块,仅次于位于CPU中的寄存器,但是java系统必须知道存储在堆栈内所有项目的确切生命周期,以便上下移动指针。
<1>Java的基本数据类型共有8种,即int, short, long, byte, float, double, boolean, char(注意,string类型不是基本类型)。基本类型的定义是通过诸如int a = 3; long b = 255L;的形式来定义的,称为自动变量。出于追求速度的原因,它们存在于堆栈中。
<2>Java中对象的引用 堆栈有一个很重要的特殊性,就是存在于堆栈中的数据可以共享。 3,堆:
一个通用的内存池(也位于RAM中),用来存放所有的java对象,通过new关键字实现在堆中分配内存。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。
4,常量存储:
常量值通常直接存放在程序代码内部,这样做是安全的,因为它们永远不会被改变。有时,在嵌入式系统中,常量本身会和其它部分隔离开,所以在这种情况下,可以选择将其存放在 ROM(read-only memory,只读存储器)中。(本题中的字符串就是存储在字符串常量区中的)
5,非RAM存储:
如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。其中两个基本的例子是“流对象(streamed object)”和“持久化对(persistent object)”。在“流对象”中,对象转化成字节流,通常被发送给另一台机器。在“持久化对象”中,对象被存放于磁盘上,因此,即使程序终止,它们仍可以保持自己的状态。这种存储方式的技巧在于:把对象转化成可以存放在其它媒介上的事物,在需要时,可恢复成常规的、基于 RAM 的对象
发表于 2016-07-20 22:57:01
回复(2)