摘要:寄存器这是最快的存储区,因为它位于不同于其他存储区的地方处理器内部。存储在字符串常量池中和存储于栈中创建了个对象,对象存储在堆内存中引用存于栈中创建了个对象。变量存储在栈内存中,两个对象存储在堆内存中
1. 寄存器
这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。
2. 栈(stack)位于通用RAM中, 存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中)
3. 堆(heap)存放所有new出来的对象
4. 静态存储(static storage)存放静态成员(static定义的)
5. 常数存储(constant storage)存放字符串常量和基本类型常量(public static final)
6. 非 RAM 存储。如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。
测试public static void main(String[] args) { // 创建了1个string对象。"apple"存储在字符串常量池中 , str1 和str2存储于栈中 String str1 = "apple" ; String str2 = "apple" ; System.out.println(str1==str2);//true // 创建了2个string对象,对象存储在堆内存中, 引用存于栈中 String str3 = new String("orange" ); String str4 = new String("orange" ); System.out.println(str3==str4);//false . //创建了2个对象。两个1对象存储在堆内存中 Integer l1 = new Integer(1); Integer k1 = new Integer(1); System.out.println(l1==k1);//false . // 以下两条语句创建了2个对象。i1,i2变量存储在栈内存中,两个256对象存储在堆内存中 Integer i1 = 256; Integer i2 = 256; System.out.println(i1==i2);//false }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/65338.html
摘要:堆栈位于通用随机访问存储器中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存若向上移动,则释放那些内存。创建程序时,系统必须知道存储在堆栈内所有项的确切声明周期,以便上下移动堆栈指针。 写在前面 首先我想说的是 Java编程思想——知识卡片 将是一系列文章,文章的内容是我阅读《Java编程思想》这本书的心得体会,那么我为什么要写这一系列的文章呢?原因有一...
摘要:最近一直在学习,由于的完全是半路出家,以前一直在用和之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。说清楚,中,原始的存储只有以下几种文档。有符号整数,根据值的大小存储在字节中。。浮点数,储存为字节的浮点数。。 最近一直在学习Android,由于Xana的Java完全是半路出家,以前一直在用C#、C++和Python之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。 说...
阅读 1093·2021-10-12 10:11
阅读 876·2019-08-30 15:53
阅读 2285·2019-08-30 14:15
阅读 2960·2019-08-30 14:09
阅读 1196·2019-08-29 17:24
阅读 971·2019-08-26 18:27
阅读 1282·2019-08-26 11:57
阅读 2145·2019-08-23 18:23