我的理解是
str="" 是一个特殊的字符串,在内存stack中分配一个指向heap中的值为“”的引用,在堆和栈都分配了内存空间;
str=null 也是在stack中分配了指向heap中的一个引用 但是并没有赋值(所以heap没有分配内存空间对吗,但是在stack中分配了内存???)
说说 string str=string.empty 与 string str="" 与 string str =null区别!!
几钟为空的字符串的性能问题!
string str;
str.lengh==0 str=string.empty str=="";
string str=null与string str=""的区别!请大家阐述自己的思想。最好接近的底层中内存(堆和栈)的分配
答案:2 悬赏:60 手机版
解决时间 2021-01-27 17:39
- 提问者网友:战皆罪
- 2021-01-27 07:57
最佳答案
- 五星知识达人网友:长青诗
- 2021-01-27 08:30
在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用,但一般用string.Empty 。
比如:
string s = "";
string s2 = string.Empty;
if (s == string.Empty) { // }
if语句成立
判定为空字符串的几种写法,按照性能从高到低的顺序是:
s.Length == 0 优于 s == string.Empty 优于 s == ""
您关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错
比如:
string s = "";
string s2 = string.Empty;
if (s == string.Empty) { // }
if语句成立
判定为空字符串的几种写法,按照性能从高到低的顺序是:
s.Length == 0 优于 s == string.Empty 优于 s == ""
您关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错
全部回答
- 1楼网友:末日狂欢
- 2021-01-27 09:31
class test{
public static void main(string[] args){
string str=null;
system.out.println(str==null);
}
}
怎么会呢,我的打出来是true啊:
--------------------configuration: --------------------
true
process completed.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯