Java数据类型
Java数据类型分为引用数据类型和内置数据类型即八大数据类型
所有数据类型的默认值均为逻辑零,即计算机元器件低电为状态
引用数据类型数据类型
其通过引用类指向一个对象声明就是实例化如:String等
八大数据类型
需要注意的是:一个字节占八位
整数型:byte、short、int、long(以精度大小从小到大排序)
类型只能是小写,大写是包装类名
byte(1字节,8位):-128~127 即 (-27) ~ (27 - 1) 默认值为0
short(2字节,16位):-32768~32767 即 (-215) ~ (215 - 1) 默认值为0
int(4字节,32位):-2147483648~2147483647 即 (-231) ~ (231 - 1) 默认值为0,作为Java显示整数的字面量
long(8字节,64位):约负九百亿亿到正九百亿亿 即 (-263) ~ (263 - 1) 默认值为0L
Java整数字面量(直接量 或 常量)默认为int整型,因此在对使用超过int整型范围的字面量需要在数字后加L,如:
long l = 10000000000000L;
字符型:char(2字节,16位)
默认为值\u0000
与short字节数相同,但因为其字符范围与short不同,因此一般不与其相互转换
Java使用Unicode编码,char类型为单个字符(两个个字节),赋值时需要以单引号赋值
前128位为ASCII编码
char c = 'c';
浮点型(小数型):float(4字节,32位)、double(8字节,64位)
float:默认值为0.0F
double:默认值为0.0D,作为Java显示小数的字面量
Java小数字面量默认为double浮点型,当需要将字面量赋值给float需要在数值后加F,如:
float f = 0.1234F
逻辑型(布尔类型):boolean(1位)
其值只有false和true
默认值为false,不能将0或1直接赋给boolean型
ASCII码
使用数字对图型进行编号
定义了128个字符对应128个编号,Unicode的前128个字符是ASCII码表
可以通过强制类型转换在整型和字符型间切换,如:
int a;
char c = '9';
a = (int)c;
System.out.println(a);
//结果为57
常用ASCII码表:大小写全字母和数字
0 ~ 9:48 ~ 57
A ~ Z:65 ~ 90
a ~ z:97 ~ 122
数据类型转换
小范围数据到大范围数据转换一般不会丢失数据,反之必定丢失数据精度
大容量变量不能直接赋值给小容量变量,需要进行数据转换
需要注意的是boolean类型不能和其他类型转换
char和short类型字节数相同但是范围不一样因此一般不用其互相转换,char一般和int类型转换为整型
强制类型转换
short number1 = 10000;
byte number2 = (byte)number1;//强制类型转换,将大数据装入小容器,括号内为需要转换成的数据类型
System.out.println(number2);
//结果为16
浮点数转为整数去除小数点后数字,整数转为浮点数则在整数后加小数,小数位用0补齐,如:
float f1 = 3.14F;
int i1;
i1 = (int)f1;
System.out.println(i1);//结果为3
float f2;
int i2 = 3;
f2 = (float)i2;
System.out.println(i2);//结果为3.0
自动类型转换
Java在赋值时可以自动将小容量赋值给大容量变量
按照这个顺序左边的类型可以直接赋给右边的类型
byte -> short -> char -> int -> float -> double
byte b = 1;
short s;
s = b;//不会报错