一、java语言支持的类型分为两类:基本类型和引用类型
(1)基本类型包括boolean类型和数值类型。数值类型有整数类型(byte、short、int、long、char)和浮点类型(float、double)
1.整型
long value = 9999999999999999是错的。在巨大的整数常量后使用L后缀,强制使用long类型
long value = 44444444444444444444444444444L
注:可以把一个较小的整数常量直接赋给一个long类型的变量,但是java依旧把这个整数常量当成int类型来处理,只是这个int类型的值会自动类型转换到long类型。
2.字符型
常量:单个字符,如'A';转义字符:如‘\n’;直接使用unicode来表示字符常量吗,格式为'\uXXXX',XXXX是十六进制数。
3.浮点型
float和double类型。浮点数必须包含一个小数点,否则会被当成int类型处理。
java语言的浮点型默认是double型,若要当成float处理,应该在浮点型值后紧跟f或F
public static void main(String[] args) {
// TODO Auto-generated method stub
double a = 30.0 / 0;
double b = 30 / 0;
int c = 30 / 0;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
代码第一行输出结果为:Infinity 无穷大
Exception in thread "main" java.lang.ArithmeticException: / by zero
Exception in thread "main" java.lang.ArithmeticException: / by zero
Exception in thread "main" java.lang.ArithmeticException: / by zero
Exception in thread "main" java.lang.ArithmeticException: / by zero
代码第二行与第三行都是错误的, Exception in thread "main" java.lang.ArithmeticException: / by zero
4.布尔型
值只能是true或者false,不能用0或者非0表示。
(2)引用类型包括类、接口和数组类型,null类型。引用数据类型就是对一个对象的引用,对象包括实例和数组两种。
字符串不是基本数据类型,字符串类型是一个类,即引用数据类型。
二、基本类型的类型转换
数值类型之间可以相互转换,有两种方式,自动类型转换和强制类型转换。
1、自动类型转换:系统支持把某个基本类型的值直接赋给另一种基本类型的变量
2、强制类型转换
字符串不能直接转换成基本类型,可通过基本类型对应的包装类把字符串转换成基本类型
boolean对应Boolean、 byte对应Byte 、short对应Short、 int对应Integer、 long对应Long 、char对应Character、 float对应Float、 double 对应Double
三、直接量(在程序中通过源代码直接指定的值)
1、直接量的类型
能指定直接量的通常只有三种类型:基本类型、字符串类型和null类型
int类型的直接量:程序中直接给出的整型数值,分为十进制、八进制、十六进制
long类型的直接量:在整数数值后添加l或者L
float类型的直接量:在浮点数后添加f或者F
double类型的直接量:直接给出一个标准小数形式或者科学计数法形式的浮点数
boolean类型的直接量:只有true或者false
char类型的直接量:单引号括起的字符、转义字符和unicode值表示的字符
String类型的直接量:用双引号括起来的字符序列
null类型的直接量:只有一个值null