A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

字符串赋初值是使用null和“”有什么区别;

5 个回复

倒序浏览
null表示什么也没有,空对象
""表示空字符串
null放在堆里
""放栈里
""分配空间  null不分配
回复 使用道具 举报
null不分配空间为什么还会在堆里
回复 使用道具 举报
null是一个空对象,什么也没有,所以不分配内存
堆一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。
注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,

评分

参与人数 1黑马币 +2 收起 理由
xiaqingchao + 2

查看全部评分

回复 使用道具 举报
谢谢我知道了
回复 使用道具 举报
string str=null;
只是在栈中开辟一块内存存放 str,里面没有指向堆的内存地址,也不在堆中开辟空间。

string str="";
在栈中开辟一块内存存放str,在堆(字符串池)中开辟空间存放"",str 中存放""的内存地址。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马