黑马程序员技术交流社区
标题:
字符串赋初值是使用null和“”有什么区别;
[打印本页]
作者:
xiaqingchao
时间:
2012-11-27 16:33
标题:
字符串赋初值是使用null和“”有什么区别;
字符串赋初值是使用null和“”有什么区别;
作者:
songFeng4985
时间:
2012-11-27 16:40
null表示什么也没有,空对象
""表示空字符串
null放在堆里
""放栈里
""分配空间 null不分配
作者:
xiaqingchao
时间:
2012-11-27 16:43
null不分配空间为什么还会在堆里
作者:
songFeng4985
时间:
2012-11-27 16:48
null是一个空对象,什么也没有,所以不分配内存
堆一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。
注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,
作者:
xiaqingchao
时间:
2012-11-27 16:50
谢谢我知道了
作者:
曾玉锋
时间:
2012-11-27 22:05
string str=null;
只是在栈中开辟一块内存存放 str,里面没有指向堆的内存地址,也不在堆中开辟空间。
string str="";
在栈中开辟一块内存存放str,在堆(字符串池)中开辟空间存放"",str 中存放""的内存地址。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2