zoukankan      html  css  js  c++  java
  • "int i=1" "int i=new int() "和“String str = "a";” “String str = new String("a")”区别以及c#值类型和引用类型

    要想了解"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() 效果一样

    说出了值类型和引用类型的本质区别,一个是在栈上,它的变量直接包含变量的实例,使用效率比较高。一个是在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。

  • 相关阅读:
    Day3-B-Round Marriage CodeForces-981F
    Day3-A-Problem H. Monster Hunter HDU6326
    Day3-G
    Day3-I-Squares POJ2002
    Day3-M-Cable master POJ1064
    Day3-N
    Day3-O-Median POJ3579
    Day3-P
    Day3-L-Cup HDU2289
    LeetCode "Majority Element"
  • 原文地址:https://www.cnblogs.com/jinianjun/p/2770787.html
Copyright © 2011-2022 走看看