基本类型的使用、包装类查看精度范围、包装类、包装类的转换(隐式、显式、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两个值

 

posted @ 2020-03-25 22:58  小小野生程序员sunny  阅读(262)  评论(0编辑  收藏  举报