一、数据类型
A.注意事项:
1.整数默认int型,浮点数默认double型
2.作用域里面的变量只能在作用域里面使用,超出作用域即失去作用
{ int num1 = 20; System.out.println(num1); }
.不同类型的数据变量定义不能没有初始值,一行上建议只定义一个变量
B、数据类型转换
一、自动类型转换(隐式)
特点:代码不需要进行特殊处理。自动完成
规则:数据范围从小到大(byte,short,char,int,long,float,double),例如:int-->long float-->double,数据范围大小与他们的字节数无关
注意:byte,short,char相互之间不转换,他们参与运算先转换为int类型
二、强制类型转换(显示)
特点:代码需要特殊处理,不能自动转换
格式:范围小的类型 范围小的变量名 = (范围小的类型)原来范围大的数据
注意:一般不推荐使用,因为可能精度损失、数据溢出
byte/short/char都能进行数学运算,会被首先提升为int型,再计算
Boolean类型不能发生数据类型转换
public class DataType { public static void main(String[] args) { System.out.println(12);//默认int型 System.out.println(12.01);//默认 double型 long i = 10;//这里10是int整数型,左边是long型,等号代表赋值,int-->long有小到大发生了自动转换 double j = 12.53F;//这里12.54F是float型,将值赋给j,float-->double,有小到大发生自动转换 float k = 20L;//不同类型也可以进行转换,这里面float数据范围比long大,可以自动转换 System.out.println(i); System.out.println(j); System.out.println(k); //强制类型转换 //范围小的类型 范围小的变量名 = (范围小的类型)原来范围大的数据 //long强制转换成int,可能造成数据溢出 int z = (int) 2018L; System.out.println(z); //float类型强制转换为int型,容易造成精度损失 int a = (int) 2015.2F; System.out.println(a); //byte/short/char都能进行数学运算,会被首先提升为int型,再计算 byte c = 40; byte v =50; //byte s = c + v ; byte+byte-->int+int-->int int s = c + v; System.out.println(s); //byte + short -->int + int -->int //int强制转换为short,注意必须保证逻辑上真实大小超过short的范围,否则会数据溢出 short b = 2012; short s2 = (short)(c + v); System.out.println(s2); } }
C.ASCLL码(American Standard Code for Information Interchange 美国信息交换标准代码
48--0 65--A 97--a a-A=32
Unicode码表:万国码
0-127与ASCII码完全相同,128开始以后包含更多字符
public class DataTypeChar { public static void main(String[] args) { char zifu1 = 'A' ; char zifu2 = 'a'; int num = zifu1; System.out.println(num); } }