java存储_java 存储

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

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值