从C到Java,从过程到对象之二

数据类型的区别:

Java的数据类型分两大类:基本类型,引用类型

基本类型共有8种:

(a)其中整型数据类型占4种:byte,short,int,long

(b)小数类型2种:float,double

(c)布尔类型:boolean

(d)字符类型:char

引用类型:所有由类定义的变量,都是引用类型

OK,在Java中就这些数据类型。没有了C语言中的:unsigned,long long,而且bool变成了boolean.

在C语言中,当我们谈到数值类型时,很自然的想到是它的取值范围,占的字节数,是有符号类型还是无符号类型.

而且还得看CPU的ALU是多少位的,才能决定。因此在C世界中,为了让你的代码能更容易的移植,得弄个头文件,typedef一下基类型 .

在Java中,由于没有了unsigned,所以数值类型的取值范围,都是由负2的(n-1)次方到正2的(n-1)次方减1这个范围.n是该类型所占的位数.

比如一个字节8位,它的取值范置是:—2的(7)次方到2的(7)次方减1.即(-128)~(127).没有从0-255这种情况。

在Java中,每一个基本类型都有一个封装类,它们是:

基本数据类型 封装类 基本数据类型 封装类
byte Byte double Double
short Short float Float
char Character long Long
int Integer boolean Boolean

如果你用这些封装类型定义了一个对象,那么这个对象有一个常量成员MAX_VALUE,表达该类型的最大值,还有一个常量成员值MIN_VALUE,表达该类型的最小值.

引用它们的方法,和C语言中,结构体变量引用成员变量一样。

 对象名.MAX_VALUE  和    对象名.MIN_VALUE  。

当要给float类型的数据赋值时,要加一个f在数后面, 比如:float value = 1.5f;如果写在 float value = 1.5;

编译器认为1.5是double类型,而不是float类型 。

假如我们要表达的数值超过了,基本数据类型取值范围,怎么做呢,麻烦吗?想一下吧,假设Java中没有提供现成的解决方案,你将如何做才能实现它。

OK,你只要稍许想一想即可,去下载一个JDK——API文档来看看BigDecimal这个类吧.看Java是如何做的,为什么这么做。

在Java中有个叫拆箱和装箱操作。注意这个术语是比喻出来的.实际上是基本数据类型变量,与封装类的对象之间的,互相赋值操作.

posted on 2012-03-23 00:39  EarlyBird  阅读(314)  评论(0)    收藏  举报

导航