java堆栈string str1 = "abc";_String str1 = “abc”,“abc”分配在内存

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)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值