您的位置:首页 > 编程语言 > C#

C#中String的数据类型以及使用new时的对象分配情况

2013-07-16 22:59 369 查看
1 数据类型
数据类型分为两类,值类型和引用类型。内存分为栈空间和堆空间。
栈空间存放值类型数据和堆空间的引用地址,堆空间则存放引用类型的数据。
string 型是特殊的引用类型,所以这里创建了一个string型的对象,在名为str的栈空间中存放了真正存放“abc”的堆空间地址。
2 String s = new String("abc");为什么创建了两个字符串对象?
abc 是字符串的常量
出现“abc”
就在内存中创建了这个字符串
把它用new关键字给了s时
等于是创建一个新的对象s
所以是两个对象
如果你接着写
String a=new String("abc");
a就是第三个对象
字符串常量"abc"会长存与内存
直到程序结束
3 String 类申请字符串对象时能不能使用new?
可以new,String a=new String("hello");不过和String a = "hello";内存中有区别,
String a = "hello" 如果之前有String对象是hello的值的话那a直接就指向之前的那个对象了,不再重新new一个对象了 String a = new String("hello");无论以前有没有都重新new一个新的
是间接自动使用new 创建的

这种写法是 根据习惯而专门写的一种自动创建对象并赋值的写法

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐