"int i=1" "int i=new int() "和“String str = "a";” “String str = new String("a")”区别以及c#值类型和引用类型
2012-11-14 23:31
746 查看
要想了解"int i=1" "int i=new int() "和“String str = "a";” “String str = new String("a")”区别,先要了解c#值类型和引用类型区别,以及c#对值类型和引用类型的处理。
值类型:整型、布尔型、字符型、实数型、结构型、枚举型。
引用类型:类、对象、字符串、数组、接口、委托。
注意字符是值类型,字符串是引用类型。
http://www.sosuo8.com/article/show.asp?id=2184讲的非常好
csdn这个帖子讨论的关于这个问题:http://bbs.csdn.net/topics/310247427
这个回答基本正确:
String str = "a"; 这个只是一个引用,内存中如果有“a"的话,str就指向它
String str = new String("a");是根据"a"这个String对象再次构造一个String对象,将新构造出来的String对象的引用赋给str
int i = new int();完全等效于int i=0;,因为int的默认构造函数就是赋默认值0
而且值类型的默认构造函数是可以隐式调用
int a = 0和 int b= new int() 效果一样
说出了值类型和引用类型的本质区别,一个是在栈上,它的变量直接包含变量的实例,使用效率比较高。一个是在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。
值类型:整型、布尔型、字符型、实数型、结构型、枚举型。
引用类型:类、对象、字符串、数组、接口、委托。
注意字符是值类型,字符串是引用类型。
http://www.sosuo8.com/article/show.asp?id=2184讲的非常好
csdn这个帖子讨论的关于这个问题:http://bbs.csdn.net/topics/310247427
这个回答基本正确:
String str = "a"; 这个只是一个引用,内存中如果有“a"的话,str就指向它
String str = new String("a");是根据"a"这个String对象再次构造一个String对象,将新构造出来的String对象的引用赋给str
int i = new int();完全等效于int i=0;,因为int的默认构造函数就是赋默认值0
而且值类型的默认构造函数是可以隐式调用
int a = 0和 int b= new int() 效果一样
说出了值类型和引用类型的本质区别,一个是在栈上,它的变量直接包含变量的实例,使用效率比较高。一个是在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。
相关文章推荐
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- JAVA的数组 && 原始类型和引用类型以及String与int long相互转化 && String与byte[]相互转化
- String str = new String("abc")和String str = "abc"区别
- String str 与 String str=new String("") 区别
- String a=1与String a=new String("1")的区别,以及其他包装类类似对比
- Java的内存机制 String str = "abc" 和String str = new String("abc")的区别
- 关于java基础类型与引用类型内存存储问题,以及string.intern()方法(String两种创建方式的区别)
- String str = "hello"; 与 String str = new String("hello"); 有什么区别?
- 关于String str="abc"与String str= new String("abc")区别
- String str="abc" 与 String str = new String("abc")区别
- String str="abc"和String str=new String("abc")的区别
- C# 与数据库中字段类型 Int16(short), Int32(int), Int64(long)的取值范围、区别 。string长度
- C# 数据类型的引用类型、值类型内存存储方式以及区别; 函数参数传递的引用传递(址传递)、值传递区别
- 对象引用与对象的区别 ,String s = new String("abc");创建了几个对象?
- C#中进行字符串类型声明时,一个小写 "string ", 一个大写 "String ", 这两个类有什么区别呢?
- String str="abc"和String str=new String("abc")区别
- String str = null、String str = ""、String str = new String()中所声明对象str之间的区别:
- Java String类型的String s = "abc"和String s = new String("abc")的区别