Java语⾔的数据类型和C#的数据类型简单对⽐
Java中的数据类型分为基本类型和引⽤类型两⼤类型,如下图所⽰:
其中基本数据类型,如下表所⽰:
引⽤数据类型指向⼀个对象,指向对象的变量是引⽤变量。这些变量在声明时被制定为 ⼀个特定的类型,⼀旦声明后,类型就不能被改变。
Java中基本数据类型和引⽤类型的区别主要在于基本数据类型是分配在栈上的,⽽引⽤类型是分配在堆上的。
C#中数据类型总的来说可分为两⼤类:值类型和引⽤类型,如下图所⽰:
基本数据类型:
整型是常⽤的数据类型,表⽰整数,可以分为8种【包含有符号整数和⽆符号整数】,如下图:
浮点型也是常⽤的数据类型,表⽰⼩数。如图:
其中,⽐较常⽤的是float和double类型,double类型⽐float类型要更加精确。⽽decimal类型更加精确,主要⽤于会计或要求⾮常精确的运算,不常⽤。
布尔型⽐较特殊,只有两个值(true和false),其中true表⽰真,false表⽰假,不能有其他的值。
C#中字符型是⽤单引号标识的,且只能包含⼀个,⽐如: ‘a’ 、‘6’,在内存中占⽤2个字节。
struct类型:是⼀种值类型,通常⽤于封装⼩型相关变量组。(在这个结构类型中,可以定义多个不同简单值类型的变量)把⼀系列相关的信息组织成为⼀个单⼀实体的过程,这就是创建⼀个结构过程。
struct person
{
string m_name; //姓名
int m_age; //年龄
string m_sex; //性别
}
枚举类型:是⼀种值类型, 基于整数类型的⼀系列命名常量,主要⽤于表⽰⼀个逻辑相关联的项和组合,通常使⽤enum关键字和枚举成员的名字来定义枚举类型。
enum Weekday
{
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
}
引⽤类型:分配的是⼀个地址,存储的是⼀个内存位置,不指具体的⼀个数值。【对⼀个变量执⾏的操作会影响另⼀个变量所引⽤的对象】
引⽤类型具体包含:数组(array)、字符串(string)类(class)、接⼝(interface)和委托(delegate)。
数组(array):主要⽤于同⼀数据类型的数据进⾏批量处理。在C#中,数组需要初始化之后才能使⽤。
字符串(string):可以分配变量任何字符串值
类(class):类是⾯向对象编程的基本单位,是⼀种包含数据成员、函数成员和嵌套类型的数据结构。类的数据成员有常量、域和事件。函数成员包括⽅法、属性、索引指⽰器、运算符、构造函数和析构函数。类和结构同样都包含了⾃⼰的成员,但它们之间最主要的区别在于:类是引⽤类型,⽽结构是值类型。 类⽀持继承机制,通过继承,派⽣类可以扩展基类的数据成员和函数⽅法,进⽽达到代码重⽤和设计重⽤的⽬的。
接⼝(interface):应⽤程序之间要相互调⽤,就必须事先达成⼀个协议,被调⽤的⼀⽅在协议中对⾃⼰所能提供的服务进⾏描述。在C#中,这个协议就是接⼝。接⼝定义中对⽅法的声明,既不包括访问限制修饰符,也不包括⽅法的执⾏代码。如果某个类继承了⼀个接⼝,那么它就要实现该接⼝所定义的服务。也就是实现接⼝中的⽅法。
委托:委托⽤语封装某个⽅法的调⽤过程。委托的使⽤过程分为3步:
1).定义 delegate void HelloDelegate();
decimal是整数数据类型2).实例化 HelloDelegate hd = new HelloDelegate(p1.Say); //p1.Say调⽤的⽅法
3).调⽤ hd();
其区别有以下5个⽅⾯:
1.基本类型分为4种:整型、布尔类型、浮点类型、字符类型,只是C#特别多了个不是基本类型的decimal类型,⽤于财务计算,精
确度很⾼但很少使⽤。
2.整型当中,java都是有符号整型,所以仅byte、short、int、long四种类型,占⽤位数和取值范围两者没区别,C#中多了另外四种
⽆符号整型。值得注意的是,java语⾔中的byte类型,对应的是C#中的sbyte类型,⽽不是8位⽆符号整数byte类型。
3.布尔类型中,Java是⽤boolean表⽰,C#是⽤bool表⽰。
4.浮点类型都是float和double,只是java中float占⽤8位,⽽C#中7位;java中double占⽤16位,⽽C#中15位,所以取值范围两个语⾔中有细微差异。此外,Java还提供了三个特殊浮点数值,Double和Float的正⽆穷⼤POSITIVE_INFINITY、负⽆穷⼤NEGATIVA、和⾮数NAN,⽤于表⽰溢出和出错。例如⼀个正数除以0得到正⽆穷⼤,0.0除以0.0或对⼀个负数开⽅得到⼀个⾮数。所有正⽆穷⼤相等,所有负⽆穷⼤相等,⽽NaN不与任何值相等,甚⾄和NaN都不相等。
5.Java中引⽤类型包括类、接⼝、数组类型和null类型,⽽C#中除此之外还包括两个基本的预定义类
型:object和string类型。值得注意的是,null不能转换成基本类型,不要把null赋值给基本数据类型的变量。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。