一、数据类型分类
java是强类型语言;
强类型的含义:
(1)所有的变量必须先声明、后使用;
(2)指定类型的变量只能接受类型与之匹配的值
java支持的类型分为两类:基本数据类型<Primitive Type>和引用数据类型<Reference Type>
基本数据类型:boolean类型和数值类型
整数类型:byte short int long char
提示:char代表字符类型,实际上也是一种整数类型,相当于无符号类整数类型;
浮点数类型:float double
引用类型:类,接口和数组类型。还有一种是特殊的null类型,
引用类型就是对一个对象的引用,对象包括实例和数组两种,实际上引用变量就是指针变量
null类型就是空类型,这类型没有名称
注意:空引用null只能转换成引用类型,不能转换成基本类型
二、基本数据类型
整数类型
(1)byte:一个byte类型整数在内存中占8位,表示范围是-128 -- 127 ;-2^7 -- 2^7 - 1;
(2)short:一个byte类型整数在内存中占16位,表示范围是-32768 -- 32767 ;-2^15 -- 2^15 - 1;
(3)int:一个byte类型整数在内存中占32位,表示范围是-2147483648 -- 2147483647 ;-2^31 -- 2^31 - 1;
(4)long:一个byte类型整数在内存中占64位,表示范围是-9223372036854775808--9223372036854775807 ;-2^63 -- 2^63 - 1;
int是最常用的类型,因此通常情况下,直接给出一个整数默认值为int类型,有两种情况必须指出:
1.如果直接将一个比较小的整型值(byte或short类型范围内的)赋给一个byte或short变量,系统会自动把他当做一个byte或short处理
2.如果一个巨大的数整数值(超出int范围)时,java不会自动的把这个整数值当成long来处理,需要在此数字后面加上L
例如: int ll = 1234567899789789789; 报错信息:The literal 1234567899789789789 of type int is out of
java中整数有四种表示方式,十进制,二进制,八进制,十六进制;二进制已0B或0b开头;八进制已0开头;十六进制以0X或者0开头
注意:二进制默认占32位,其中第32位是符号位,如果在二进制整数后面加l或L后缀,则这个二进制整数默认64位,第64位是符号位
字符类型
字符类型通常为单个字符,字符类型值必须使用单引号 ''括起来,
java语言采用16位的Unicode字符集作为编码格式,而Unicode被设计成支持世界上所有书面语言的字符,包括文字符,
因此java语言支持各种语言字符;
字符值的三种形式;
(1)通过单引号括起来的单个字符值
(2)通过转义字符表示特殊的字符型,例如'\n','\t'等
(3)直接通过Unicode值来表示字符型值,格式为'\uXXXX',其中XXXX表示一个十六进制的整数。
例如:
\b 退格符 '\u0008'
\n 换行符 '\u000a'
\r 回车符 '\u000d'
\t 制表符 '\u0009'
\" 双引号 '\u0022'
\' 单引号 '\u0027'
\\ 反斜线 '\u005c'
字符集采用十六进制编码格式,范围是'\u0000'-'\uffff',共可以表示65536个字符,其中前256个字符和ASCII码的字符完全重合
提示:char类型的变量、值完全可以参与加、减、乘、除等数学运算,相当于一个无符号整数;
浮点类型
(1)float:第一位是符号位,接下来8位是指数位,在接下来是23位
(2)double:第一位是符号位,接下来11位指数位,接下来52位是尾数位
java语言中浮点数的表现形式:(1)十进制
(2)科学计数法
在数值中,如果位数较多,可以参用_来分割数字,,更直观的分辨数值的位数;
boolean类型
true和false;
数据类型的默认值:byte short int 默认值为0
float double默认值为0.0
boolean默认值为false