Java的数据类型

来源:互联网 发布:gpa标准加权算法 编辑:程序博客网 时间:2024/06/04 20:34

1.     Java的默认数据类型和长度

Java中有8中基本数据类型

Java中的简单类型从概念上分为四种:实数、整数、字符、布尔值。但是有一点需要说明的是,Java里面有八种原始类型,其列表如下:

  实数double、float

  整数byte、short、int、long

  字符char

  布尔值boolean

  复杂类型和基本类型的内存模型本质上不一样,简单数据类型的存储原理:所有的简单数据类型不存在“引用”概念,简单数据类型直接存储在内存中的内存栈上,数据本身的值存储在栈空间里面,而Java语言里面只有这八种数据类型是这种存储模型;而其他的只要是继承于Object类的复杂数据类型都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地 讲,“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的。

  2)原始类型特征:

  Java的简单数据讲解列表如下:

  intint整数类型,在存储的时候,用4个字节存储,范围为-2,147,483,648到2,147,483,647,在变量初始化的时候,int类型的默认值为0

  shortshort也属于整数类型,在存储的时候,用2个字节存储,范围为-32,768到32,767,在变量初始化的时候,short类型的默认值为0,一般情况下,因为Java本身转型的原因,可以直接写为0

  longlong也属于整数类型,在存储的时候,用8个字节存储,范围为-9,223,372,036,854,775,808到9,223,372,036, 854,775,807,在变量初始化的时候,long类型的默认值为0L或0l,也可直接写为0

  bytebyte同样属于整数类型,在存储的时候,用1个字节来存储,范围为-128到127,在变量初始化的时候,byte类型的默认值也为0

  floatfloat属于实数类型,在存储的时候,用4个字节来存储,范围为32位IEEEE 754单精度范围,在变量初始化的时候,float的默认值为0.0f或0.0F,在初始化的时候可以写0.0

  doubledouble同样属于实数类型,在存储的时候,用8个字节来存储,范围为64位IEEE 754双精度范围,在变量初始化的时候,double的默认值为0.0

  charchar属于字符类型,在存储的时候用2个字节来存储,因为Java本身的字符集不是用ASCII码来进行存储,是使用的16位Unicode字符集,它的字符范围即是Unicode的字符范围,在变量初始化的时候,char类型的默认值为'u0000'

  booleanboolean属于布尔类型,在存储的时候不使用字节,仅仅使用1来存储,范围仅仅为0和1,其字面量为true和false,而boolean变量在初始化的时候变量的默认值为false

2.     Java中数据的强制类型转换

在Java中如果不同数据类型的变量,需要转换的话,会根据以下两个条件来进行自动数据类型转换的:

(1)转换前的数据类型与转换后的数据类型是兼容的;

(2)转换后的数据类型比转换前的范围表示大;

比如:


byte b=30;     //默认数据类型是int
b=b+1;       //程序会报错,由于默认数据类型的存在,大范围向小范围转换时可能会损失数据精度

可以修改为

byte b=30;b=(byte)(b+1);  //使用强制类型转换可以解决错误问题


0 0
原创粉丝点击