术语非原始类型和对象类型有什么区别?
What is the difference between the terms non-primitive type and object type?
当我读到 Java 时,我通常会看到描述为 原始类型 或 对象类型 的变量。
当我阅读有关 C# 的内容时,我通常会看到描述为 原始类型 或 非原始类型?[=10= 的变量]
术语对象类型和非原始类型有什么区别?
这种混淆的部分原因可能在于,在 C# 中,(mostly) everything inherits from Object。以同样的方式引用对象类型,将引用语言中的所有类型,并且基本上是无用的。
在C#中,基本类型有Boolean, Byte, Char, Double, Int16, Int32, Int64, IntPtr, SByte, Single, UInt16, UInt32, UInt64, UIntPtr。这些类型仍然继承自 object,尽管它们在语言中的处理方式有所不同。有一些类型不会 从对象继承,但它们不是您认为的原语(即接口)。可以使用此代码获取 C# 原语列表,取自 here:
var primitives = typeof(int).Assembly.GetTypes().Where(type => type.IsPrimitive).ToArray();
如果您想要这样的东西,更合适的二分法是值类型与引用类型。当您开始考虑这种差异时,您可以包括诸如枚举类型和其他值类型(如结构)之类的东西。
在Java中:
原始变量分为8种数据类型:boolean,byte,short,int,long,float,double,char.Every原始变量有自己的范围内存中 space 个。
引用变量,引用对象(Array、String、ArrayList、StringBuilder,...),与所引用对象的 space 无关。
差异:
1.references 类型可以被指定为 null /primitives dont.
2.references 类型不指向时可用于调用方法 null/primitives 使用文字。
3.references 类型具有相同的大小/在原语中取决于
数据类型
4.primitives 声明以 lowercase/java 类 和
开头
大写
当我读到 Java 时,我通常会看到描述为 原始类型 或 对象类型 的变量。
当我阅读有关 C# 的内容时,我通常会看到描述为 原始类型 或 非原始类型?[=10= 的变量]
术语对象类型和非原始类型有什么区别?
这种混淆的部分原因可能在于,在 C# 中,(mostly) everything inherits from Object。以同样的方式引用对象类型,将引用语言中的所有类型,并且基本上是无用的。
在C#中,基本类型有Boolean, Byte, Char, Double, Int16, Int32, Int64, IntPtr, SByte, Single, UInt16, UInt32, UInt64, UIntPtr。这些类型仍然继承自 object,尽管它们在语言中的处理方式有所不同。有一些类型不会 从对象继承,但它们不是您认为的原语(即接口)。可以使用此代码获取 C# 原语列表,取自 here:
var primitives = typeof(int).Assembly.GetTypes().Where(type => type.IsPrimitive).ToArray();
如果您想要这样的东西,更合适的二分法是值类型与引用类型。当您开始考虑这种差异时,您可以包括诸如枚举类型和其他值类型(如结构)之类的东西。
在Java中:
原始变量分为8种数据类型:boolean,byte,short,int,long,float,double,char.Every原始变量有自己的范围内存中 space 个。
引用变量,引用对象(Array、String、ArrayList、StringBuilder,...),与所引用对象的 space 无关。
差异:
1.references 类型可以被指定为 null /primitives dont.
2.references 类型不指向时可用于调用方法 null/primitives 使用文字。
3.references 类型具有相同的大小/在原语中取决于
数据类型
4.primitives 声明以 lowercase/java 类 和
开头
大写