数据类型的分类
•Java语言是一个强类型语言
--所有变量,必须先声明一种类型,再使用。
--指定类型的变量,只能装对应类型的数据。
•Java语言支持的分类分为两大类:基本数据类型和引用类型
--基本数据类型包括八大数据类型。
--引用类型包括数组、类、接口。
第一类:布尔型(boolean)
•boolean类型数据只允许取值true或false,不可以0或非0的正数替代true和false,这点和C语言不同
•通常用在判断条件中使用boolean型
在Java中,条件成立返回 true,否则返回 false,即布尔类型。例如:
第二类:字符型(char)
•字符也占2个字节,字符型也可以当成整型用
•字符型常量以单引号 ' ' 括起来
•字符常量有三种表示形式
--直接通过单个字符来指定字符常量,如:'a','2'等
--通过转义字符,如 '\n' (代表换行符)
--直接使用Unicode值来表示字符常量
※ 注:字符和字符串存在很大的区别,字符串是以双引号 “ ” 括起来,字符串是引用类型。
第三类:整数型(byte、short、int、long)
•Java整型常量的表现形式:
--十进制整数,如:12 ,-314,0。
--八进制整数, 以 0 开头,如:012。
--十六进制整数,以 0x 或 0X 开头,如:0x12。
--二进制整数, 以 0b 或 0B 开头,如:0b12(jdk1.7)。
•Java整型常量默认为int,声明long型常量可以后加‘l’或‘L’,如:
int g=600;//正确 long h=8888888888L;//必须加‘l’否则会出错
•Java各整数类型有固定的表述范围和字段长度,其不受具体操作系统的影响以保证Java程序的可移植性
--byte 从-128 到 127
--short 从-32768 到 32767
--int 从-2147483648 到 2147483647
--long 从-9223372036854775808 到 9223372036854775807
第四类:浮点型(float、double)
•Java浮点类型常量的表现形式:
--十进制数形式,如:3.14 ,314.0,.314。(浮点数必须包含小数,否则系统将认为是一个int 型)
--科学计数法形式,如:3.14e2 , 3.14E2 , 100E-2。(只有浮点数才有科学计数法)
•Java浮点型常量默认为double,声float明long型常量可以后加‘f’或‘F’,如:
double g=3.14;//正确 float h=2.8888888888f;//必须加‘f’否则会出错
Java浮点类型有固定的表述范围和字段长度,如下:
•Java中三个特殊的浮点值,经常被用来表示异常:正无穷(POSITIVE_INFINITY)负无穷(NEGATIVE_INFINITY)和非数(NaN)
--因为有两种浮点类型,所以具体的代码表示分别为:
Float型:Float.POSITIVE_INFINITY Float.NEGATIVE_INFINITY Float.NaN
Double型:Double.POSITIVE_INFINITY Double.NEGATIVE_INFINITY Double.NaN
--它们之间有如下关系:
1.相同的无穷大之间是相等的,即负无穷和负无穷相等,正无穷和正无穷相等
2.非数不与任何值相当,和自己也不相等
--其得到方式分别为:
1. 0.0/0.0或对负数开方得到非数
2.只有浮点数除以0才能得到正无穷或负无穷(因为java语言的类型自动转换,执行这个算数表达 式时,0会自动转换为浮点类型即0.0);同理,若分母上是整型数值,分子上是浮点数0.0,也 可得到正无穷或负无穷。但整数除0将报错。
基本数据类型的类型转换
在Java中,boolean类型与所有其他7种类型都不能进行转换,这一点很明确。对于其他7中数值类型,它们之间都可以进行转换,但是可能会存在精度损失或者其他一些变化。转换分为自动转换和强制转换。对于自动转换(隐式),无需任何操作,而强制类型转换需要显式转换,即使用转换操作符(type)。首先将7种类型按下面顺序排列一下:
byte <(short=char)< int < long < float < double
如果从小转换到大,可以自动完成,而从大到小,必须强制转换。short和char两种相同类型也必须强制转换。
•Java语言是一个强类型语言
网友评论