C#和Java数据类型的区别

C#和Java数据类型的区别

众所周知,C#和Java是当今最火热的两门面向对象编程语言,很多开发者在开发Java的同时,也涉足到C#。不得不说它们两门语言是有很多共同点的,今天分享的是它们之中最常见和最容易让程序员都搞混的数据类型的比较,因为这个数据类型真的很容易搞混。

  • 值类型
  1. 基本数据类型
  1. Java中有八种基本数据类型:boolean,byte,char,short,int,long,float,double
  2. C#中的数据类型会多一些,Java中的数据类型都是有符号的,而C#中还定义了相应的无符号数据类型:bool,byte,sbyte,char,short,ushort,int,uint,long,ulong,float,double,decimal
  3. C#值类型表格所示

类型

描述

范围

默认值

bool

布尔值

True或False

False

byte

8位无符号整数

0~255

0

char

16位Unicode字符

U+0000到U+ffff

'\0'

decimal

128位精确的十进制值,28-29有效位数

(-7.9 x 1028 到 7.9 x 1028) / 100 到 28

0.0M

double

64位双精度浮点型

(+/-)5.0 x 10-324 到 (+/-)1.7 x 10308

0.0D

float

32位单精度浮点型

-3.4 x 1038 到 + 3.4 x 1038

0.0F

int

32位有符号整数类型

-2,147,483,648到2,147,483,647

0

long

64位有符号整数类型

-923,372,036,854,775,808 到 9,223,372,036,854,775,807

0L

sbyte

8位有符号整数类型

-128到127

0

short

16位有符号整数类型

-32,768到32,767

0

uint

32位无符号整数类型

0到4,294,967,295

0

ulong

64位无符号整数类型

0到18,446,744,073,709,551,615

0

ushort

16位无符号整数类型

0到65,535

0

通过对比可以看到C#比Java中多了一个decimal,这个decimal类型属于C#的值类型,但不是基本类型,它其实是一个结构类型,Java中没有结构的概念

它们之间有着数据类型的五大区别

1.无符号整数

  1. C#:支持8-bit,16-bit,32-bit和64-bit无符号整数
  2. Java:仅支持16-bit无符号整数

2.复数

1)C#:支持复数

2)Java:不支持复数

复数一般写作“a+bi”其中“a”和“b”是整数,而“i”代表根号-1,在电气工程,流体力学等环境中常常会用到复数

3.值类型

1)C#:仅支持用户定义值类型

2)Java:仅支持原始值类型

C#允许用户自定义值类型,例如:用户想构建有多个属性的SimpleVale变量,然后给属性赋值

4.元组

1)C#:支持元组

2)Java:不支持元组

C#里的“元组”类包含“一个拥有特定数量和序列元素的数据结构”

5.指针

1)C#:支持指针

2)Java:不支持指针

指针变量“point”指向系统内存里的确切位置,在Java这样的网络应用语言中,指针毫无用处。实际上,Java Native Interface (JNI)能够实现任何这类功能。 

所以,正如Gosling指出,Java的最大优势莫过于简单。但是,为此这会牺牲掉包括数据类型在内的一些复杂功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值