基本类型的使用、包装类查看精度范围、包装类、包装类的转换(隐式、显式、parse)
byte
byte a=10;
sout(“byte的精度范围是”+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);
默认整型都是int型,所以long型的数据赋值时要加l
int
int a=10;
sout(“int的精度范围是”+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);
short
short a=10000;
sout(“short的精度范围是”+Short.MIN_VALUE+"~"+Short.MAX_VALUE);
long
long a=1000000l;
sout(“long的精度范围是”+Long.MIN_VALUE+"~"+Long.MAX_VALUE);
浮点型的数据默认都是double型,单精度浮点型数值时要加f
float
float a=10.4f
double
double a=10.4f
单字符类型
char ch='中'(用单引号引起来)
char允许写入数值,将通过ASCII表换成相应的单字符
ch=65;写数值时不用单引号,写上单引号表示的是该数值ASCII对应的字母或者符号
布尔类型
boolean flag=true;
包装类
每个基本类型都有一个对应的包装类,两者之间可相互转换,基本类型只能存储数值,包装类用于扩展其功能
基本类型的值与包装类的值可以相互赋值
Integer num1;
int num2=10;
num1=num2;
num2=num1;
int 例子
装箱:将基本类型转换成包装类
num1=new Integer(num2);
拆箱:将包装类转换成基本类型
int num3;
num3=num1.intValue();
double例子
double a=11.0;
Double b=new Double(a);
a=b.doubleValue();
类型转换(隐式转换、显示转换)
显示转换(强制类型转换、包装类的parse转换)
1.隐式转换:同一类型的数据,将精度小的值赋给精度高的数据时,JVM会对类型进行自动转换
int a=100;
double b=a;
(包装类赋给基本类型高精度也可以)
Integer c=100;
b=c;
隐式转换的轨迹
2.默认情况下,不允许将高精度赋给低精度,会出现数据精度丢失,可使用强制类型转换,但是不能解决精度丢失问题
2.1正常强制转换
double c=200.5;
int a=(int )c;(此时a为200)
2.2 int a; double c ; 要使a=(short)c;则进行了两次转换
一次是double到short的强制转换
一次是short到int的隐式转换
int a ; double c ; 要使a=(int)((float)c)进行了两次转化
一次是double c 转换成 float c的隐式转换
一次是将float c转换成int 的强绘制墙柱转换
Parse转换
将String类型通过包装类转换成对应的基本类型
String s1="400";
int a=s1;(此处会报错因为类型不同不能直接赋值)
int a=(int) s1(此处会报错,s1是字符串,不能强制转换成int)
此时只能使用parse转换:
将String转换成int型:int a=Integer.parseInt(s1)
将String转换成double型:double b=Double.parseDouble(s1)
但是不能转换成Boolean型,因为Boolean只有true和false两个值