1. 首页 > 科技

字符串变量是对象还是成员变量吗?是在堆中还是在栈中 全局变量存在堆还是栈

字符串变量是对象还是成员变量吗?是在堆中还是在栈中全局变量存在堆还是栈

字符串是对象吗?是对象的话,为什么存储在字符串常量池中呢?栈内存是不可已存储对象的

。。肯定是对象啊 java里面万物皆对象就看你怎么理解了

你自己看看源代码String这个类 你就明白了

当然String还是有点特殊的 “字符串常量池” 占内存 储存的是变量 它指向“字符串常量池”中的字符串

字符串对象和字符串变量的区别

字符串对象是具体的,能在运行的时候看得到的

而 字符串变量 是就是在编程的时候的一种变化的量

比如 dim a as string

a="123456"

a="4567

c++的成员变量是在堆还是栈区

成员变量并不能决定自身的存储空间位置。决定存储位置的对象的创建方式。

即:

如果对象是函数内的非静态局部变量,则对象,对象的成员变量保存在栈区。

如果对象是全局变量,则对象,对象的成员变量保存在静态区。

如果对象是函数内的静态局部变量,则对象,对象的成员变量保存在静态区。

如果对象是new出来的,则对象,对象的成员变量保存在堆区。

java中的String常量是存放在栈中还是堆中?

系统内存一般情况来说分为四个

heap 堆 放 对象 也就是new 出来的东西

stack 栈 放局部变量

static segment 静态区 用来放 静态变量 和字符串常量

data segement 代码区 用来放代码的

如果 一个字符串是 String s = "abc";它放在栈里

如果一个字符串 用创建对象的方式 String s = new String("abc");

那它是放在了 堆里 而如果单纯的 一个 "abc" 这个输入字符串常量 是放在static segement里