数据类型定义和分类
计算机在运算时需要指定数据的类型,,不同的类型决定数据不同的内存空间大小和存储形式。
Java的数据类型可分为两大类:基本数据类型:byte、short、int、long、double、float、boolean、char;引用数据类型:类、接口、数组、枚举、注解。
基本数据类型的赋值方式
public class FuZhi{
public static void main(String[] args){
//整型
int age=19; //把十进制整数19赋值给age
System.out.println(age); //输出age
age=0b11; //把二进制整数11赋值给age
System.out.println(age);
age=017; //把八进制整数17赋值给age
System.out.println(age);
age=0x1f; //把十六进制整数1f赋值给age
System.out.println(age);
System.out.println("~~~~~~~~~~~~~~~~~~~~");
//double型
double price=9.9; //直接赋值
System.out.println(price);
price=0.88E1; //以指数方式赋值
System.out.println(price);
System.out.println("~~~~~~~~~~~~~~~~~~~~");
//字符型
char letter=65; //ASCII码65即A
System.out.println(letter);
letter='B'; //直接赋值加单引号
System.out.println(letter);
letter='\u0043'; //unicode码0043即C
System.out.println(letter);
}
}
编译运行后的结果如下
•注意: float f = 1.3;是错误的,1.3默认是double型的。在对float数据进行赋值时,要在数字的后面添加f(或F),否则Java编译器会认为1.3是一个double类型的数值,而double不能直接赋值给float类型,故:正确赋值方式应为float f1 = 1.3f。
某些特殊的字符可以采用转义字符'\'来表示,以将其后面的字符转变为其它含义,例如:
char c1 = '\t';//制表符
char c2 = '\n';//换行符-New Line
char c3 = '\r';//回车符-Carriage Return
Unicode与ASCII的区别
1、两者都是一种编码规范;
2、ASCII是专门用来表示英文字符;而Unicode可以表示所有字符,编码范围比ASCII更大(ASCII可表示255个字符,即1个字节);
3、Unicode编码表与ASCII编码表前127个字符(即排除了ASCII编码表扩展字符)相同。
布尔型,又称逻辑类型,只有true和false两个取值,默认初始值为false。这区别与C语言,在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。在二进制逻辑中Java规定1为真0为假。
Java数据类型转换
分类: 自动类型转换 和 强制类型转换
1、将表示范围小的数据类型赋值给表示范围大的数据类型时,Java自动使用隐式类型完成数据类型转换。
低-------------------------------------------------------------------------------------------------------------------------->高
byte ------------> short/char ------------> int ------------> long ------------> float ------------> double
float x=100;//int赋给float,x值为100.0
double y;
int z=50;
y=z; //int赋给double,y值为50.0
2、当把级别高的变量赋值给级别低的变量时,必须使用显式类型转换。显示转换格式:(要转换的类型)被转换的值。
int x=(int)23.89; //x的值为23
long y=(long)34.98F; //y的值为34
byte z = (byte)256; //z的值为0,数据结果出现溢出
•注意:
显式类型转化(强制类型转换)可能导致数据精度损失或溢出。