在Java里面,本质上讲将数据类型分为两种:基本类型和引用数据类型。
基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。
引用数据类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,
同时可以针对程序外部进行信息隐藏。
ava语言支持的类型分为两类:基本类型(Primitive Type)和引用类型(Reference Type)
基本数据类型总共有8种,分为两类:boolean类型和数值类型。数值类型又分为整数类型和浮点类型。
整数类型包括byte、short、int、long、char类型,浮点类型包括float、double类型。
如图1所示(注意:char类型是字符型,实际上字符型也是一种能整数类型,相当于无符号的整数类型)
引用数据类型包括类、接口、数组类型,还有一种特殊的null类型。
Java基本数据类型
整型
byte:(1个字节),一个byte类型整数在内存里占8位,表示数的范围是:-128~127 (-2^7)~(2^7-1)
short:(2个字节),一个short类型整数在内存里占16位,表示数的范围是:-32768~32767 (-2^15)~(2^15-1)
int:(4个字节),一个int类型整数在内存里占32位,表示数的范围是: (-2^31)~(2^31-1)
long:(8个字节),一个long类型整数在内存里占64位,表示数的范围是:(-2^63)~(2^63-1)
int类型是最常用的整数类型,所以在通常情况下,一个整数值默认为int类型。
但是如果直接将一个较小的数值(在int的表示范围以内)赋值给byte或者short变量,系统会自动将这个数字当作byte或者short类型来处理。如果是一个较大的数值(超出Int的表示范围)时,系统不会将这个数值转换为long类型,需要自己转换,在该数字后面加L即可(L大小写都可以,为了更好区分建议使用L)。
字符型
字符型(char)通常是用来定义单个的字符。字符型值必须要使用单引号(')括起来。由于Java使用16位的Unicode字符集作为编码方式,Unicode支持世界上所有书面语言符号,所以java支持各种语言的字符。注意事项: 不能为 0个字符。 转义字符:\n 换行 \r 回车 \t Tab 字符 \" 双引号 \\ 表示一个\ 两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。
浮点型
单精度浮点数(float):(4个字节) 占64位,如果需要将一个浮点数当成float类型处理,须在在数值后面添加F或者f。
双进度浮点数(double):(8个字节)占32位,浮点类型的默认是double类型。但在小数计算中一定要写 D 或 X.X float 的精度没有 long 高,有效位数(尾数)短。 float 的范围大于 long 指数可以很大。 浮点数是不精确的,不能对浮点数进行精确比较
布尔型
布尔类型通常用作流程控制,其值只有2个:true 和 false。用于表示逻辑上的“真”和“假”,不能和其他数据类型转换。类型转换: char--> 自动转换:byte-->short-->int-->long-->float-->double
强制转换:①会损失精度,产生误差,小数点以后的数字全部舍弃。②容易超过取值范围。
记忆:
8位:Byte(字节型)
16位:short(短整型)、char(字符型)
32位:int(整型)、float(单精度型/浮点型)
64位:long(长整型)、double(双精度型)
最后一个:boolean(布尔类型
|
|