首页 >  JAVA频道 > JAVA相关 > 

C#和Java数据类型的5大区别

C#和Java数据类型的5大区别

作者:yjl 来源:华育国际 时间:2015-02-26 访问次数:1673
C#和Java是当今最火热的两门面向对象编程语言,很多程序都是既开发Java,也涉足C#。不得不说这两门编程语言有很多共同点,这里主要比较一下Java和C#数据类型的不同之处,这些小的区别有时甚至会让经验丰富的程序员栽跟头。

C#和Java是当今最火热的两门面向对象编程语言,很多程序都是既开发Java,也涉足C#。不得不说这两门编程语言有很多共同点,这里主要比较一下Java和C#数据类型的不同之处,这些小的区别有时甚至会让经验丰富的程序员栽跟头。
导读:C#和Java是当今最火热的两门面向对象编程语言,很多程序都是既开发Java,也涉足C#。不得不说这两门编程语言有很多共同点,这里主要比较一下Java和C#数据类型的不同之处,这些小的区别有时甚至会让经验丰富的程序员栽跟头。
#1: 无符号整数(Unsigned Integers)
C#: 支持 8-bit, 16-bit, 32-bit, and 64-bit 无符号整数
Java: 仅支持 16-bit无符号整数
Java之父在Java的初始原型设计的时候就决定不包括无符号整数,在2001年《Java World》杂志的采访中,他还强调简单是开发一门健壮的编程语言的关键。
“我问过不少人C语言里无符号运算规则,但没有任何人理解C语言中无符号运算。一部分人理解其中明显的,但大多数并人不理解。”
#2: 复数(Complex Numbers)
C#: 支持复数
Java: 不支持复数
复数一般写作“a + bi”,其中“a”和“b”是整数,而“i”代表根号-1,在电气工程、流体力学等环境中常常会用到复数。
#3: 值类型(Value Types)
C#: 支持用户定义值类型
Java: 仅支持原始值类型
C#允许用户自定义值类型,例如:如果用户想构建有多个属性的SimpleVar变量,然后给属性赋值,代码如下:
struct SimpleVar
{
public int Position;
public bool Exists;
public double LastValue;
}
static void Main()
{
SimpleVar s;
s.Position = 2;
s.Exists = true;
s.LastValue = 4.2;
}
#4: 元组(Tuples)
C#: 支持元组
Java: 不支持元组
C#里的“元组”类包含 “一个拥有特定数量和序列元素的数据结构”。例如:
var zipCodes = new Tuple<string, int, int, int, int>(“Houston”, 77006, 77098, 77002, 77019);
或者
var zipCodes = Tuple.Create(“Houston”, 77006, 77098, 77002, 77019);
元组类和标准数组类似,但是灵活性较差,因为元组区域不允许修改和其它操作。
#5: 指针(Pointers)
C#: 支持指针
Java: 不支持指针
指针变量“point”指向系统内存里的确切位置,在Java这样的网络应用语言中,指针毫无用处。实际上,Java Native Interface (JNI)能够实现任何这类功能。
所以,正如Gosling指出,Java的最大优势莫过于简单。但是,为此这会牺牲掉包括数据类型在内的一些复杂功能。