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();
 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赋值给基本数据类型的变量。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晓峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值