资讯专栏INFORMATION COLUMN

java 存储

zhigoo / 389人阅读

摘要:寄存器这是最快的存储区,因为它位于不同于其他存储区的地方处理器内部。存储在字符串常量池中和存储于栈中创建了个对象,对象存储在堆内存中引用存于栈中创建了个对象。变量存储在栈内存中,两个对象存储在堆内存中

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编程思想——知识卡片01_02

    摘要:堆栈位于通用随机访问存储器中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存若向上移动,则释放那些内存。创建程序时,系统必须知道存储在堆栈内所有项的确切声明周期,以便上下移动堆栈指针。 写在前面 首先我想说的是 Java编程思想——知识卡片 将是一系列文章,文章的内容是我阅读《Java编程思想》这本书的心得体会,那么我为什么要写这一系列的文章呢?原因有一...

    Lyux 评论0 收藏0
  • Java开发

    摘要:大多数待遇丰厚的开发职位都要求开发者精通多线程技术并且有丰富的程序开发调试优化经验,所以线程相关的问题在面试中经常会被提到。将对象编码为字节流称之为序列化,反之将字节流重建成对象称之为反序列化。 JVM 内存溢出实例 - 实战 JVM(二) 介绍 JVM 内存溢出产生情况分析 Java - 注解详解 详细介绍 Java 注解的使用,有利于学习编译时注解 Java 程序员快速上手 Kot...

    LuDongWei 评论0 收藏0
  • Android关于SQLite的日期时间的存储

    摘要:最近一直在学习,由于的完全是半路出家,以前一直在用和之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。说清楚,中,原始的存储只有以下几种文档。有符号整数,根据值的大小存储在字节中。。浮点数,储存为字节的浮点数。。 最近一直在学习Android,由于Xana的Java完全是半路出家,以前一直在用C#、C++和Python之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。 说...

    lwx12525 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<