java语言支持的类型分为两类:基本类型和引用类型。基本类型有八种,引用类包括类,接口,数组类型和特殊的null类型。
JAVA基本数据类型一共八种,分为两大类——boolean类型和数值类型。而数值类型又分为整数类型和浮点类型,而整数类型中的自负类型也可被单独对待,因此常把基本数据类型分为四类——整数类型(1个字节:byte;2个字节:short;4个字节:int;8个字节:long);字符类型:两个字节:char;浮点类型:(4个字节:float;8个字节:double);布尔类型:boolean。
通常情况下,给出一个整数默认为int。
如果把一个较小的整数复制给byte或short,系统会把这个整数值当成byte或short。
如果一个巨大的整数值(超过int范围),系统不会自动认为其为long型。如果希望被系统认为是long型,在数字后面加l或L。
JAVA中有四种进制,二进制(以0B或0b开头),八进制(以0开头),十进制,十六进制(0x或0X开头)
二进制最高位为符号位,1为负,负数的补码减1变为反码,再取反变为原码,而整数的原码就是补码,这个原码就是实际的值。
JAVA语言用16为的Unicode字符集作为编码方式。
char型变量也可以进行加减乘除等数学运算,也可以比较大小,实际上都用其对应的编码来计算。
JAVA浮点型有两种表示形式:
十进制数形式:简单的浮点数如3.33(必须有小数点,否则会被当成int型)
科学计数法形式:如5.33e2
只有浮点型数值才可以用科学记数法
如果希望系统认为某个浮点数为float型须在其后面加F或f,否则默认为double。
正无穷大:POSITIVE_INFINITY;负无穷大:NEGATIVE_INFINITY;非数:NaN
所有的正无穷大都相等,所有的负无穷大也都相等,但非数不和任何东西相等。
浮点型数除以0才可以等于无穷大,一个整数除以0的结果就是除以0异常。
举个例子:
class FloatTest
{
public static void main(String[] args)
{
Float af=342432.52342f;
System.out.println(af);
double a=0.0;
double c=Double.NEGATIVE_INFINITY;
float d=Float.NEGATIVE_INFINITY;
System.out.println(c==d);
System.out.println(a/a);
System.out.println(a/a==Float.NaN);
System.out.println(6.0/0==55.0/0);
System.out.println(-8/a);
System.out.println(0/0);
}
}
bit型理论上是占1个字节的,但java没有强制规定bit所占的空间,由于大部分计算机在分配内存时允许分配的最小内存单位是8字节,所以bit大多数时候占8个字节。