Java基本数据类型的转换

Java基本数据类型的转换


1、自动转换 

自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。

byte---short----int ----long--float---double

类型默认值占用存储空间(byte)大小(bit)范围
byte01字节8位-127~128(-2^7~2^7-1)
short02字节16位-32768~32767(-2^15~2^15-1)
int04字节32位-2147483648~2147483647(-2^31~2^31-1)
long08字节64位-9223372036854774808~9223372036854774807(-2^63~2^63-1)
char空格2字节16位\u0000~\uFFFF
float0.0f4字节32位1.4E-45~3.4028235E38
double0.0(d)8字节64位4.9E-324~1.7976931348623157E308
booleanfalse1字节8位

true、false

float和double的最小值和最大值都是以科学记数法的形式写的,结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 10^3 =3140,3.14E-3 就是 3.14 x 10^-3 =0.00314。
转换中的知识点:

java中整数类型默认的int类型;小数类型默认的是double类型;

Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析:

char 可以当做一中特殊的整数类型,char可以自动类型转换成int;

int无法转换为boolean,boolean 类型不能转换成任何其它数据类型;

小数类型转为整数类型,小数会被舍弃,出现精度损失,所以需要强制转换;

class Demo{

   

    public static void main(String[] args){

       //定义一个字节类型

       byte b = 1;

 

       //基本数据类型在计算的时候, 数值常量默认是int

       int b1 = b + 1;

       short b2 = 12;

 

       //byte, short , int, char, 四种类型只要是发生计算都会自动的把结果提升成int类型

       int b3 = b + b2;

 

       //定义一个char类型,  字符和int类型可以自动的转换

       char c = 'a';

       int i1 = c + 1;

      

       System.out.println(i1);    //char类型转换int类型参考ASCII表  可得  i1 = 98

      

       int x = 2147483647;

       int y = 12;

       //int long float, double 自身来计算的时候没有类型的提升,如果超出范围了就会出现精度的损失。这种情况,一般把第一个数据转换成范围大的数据类型再和其他的数据进行运算。

       int z = x + y;

       System.out.println(z);

      

       //int long float, double 不同的类型来计算的时候没有类型的会向大的表数范围提升、

       float  f = 1.3f;

       //int类型和float类型计算转换成float

       float  f1 = f + y;

       double d = f + 1.3;

       // 12.5f是表示float类型的常量, 小的表数范围的常量或者变量可以自动的向大的表数范围的类型转换

       double d1 = 12.5f;

       double d2 = y;

      

       short s = 5;

       //大的表数范围的值不能自动的赋值小的表数范围的变量

       s = s + 5;

    }

}


2、强制转换

当大容量类型的变量向小容量的类型去转换需要强制转换。

class Demo3{

   

    public static void main(String[] args){

      

       int i = 999;

       //数值类型的转换的前提是精度不会损失

       byte b = (byte)i;

       System.out.println(b);

      

       //定义long类型

       long l = 10000;

       int j = (int)l;

       System.out.println(j);

         //小数类型的强转

       float f = 199.5f;

       //转换成int, 小数转换成整数,就是把小数去掉

       short i1 = (short)f;

      

       System.out.println(i1);

      

       //double向float转换

       double d = 10.4;

       float f1 = (float)d;

       System.out.println(f1);

      

       //字符 的转换

       char c = 'a';

       int x = c;

       System.out.println(x);

      

       int y = 98;

       char c1 = (char)y;

       System.out.println(c1);

    }

}

隐式类型转换

当将占位数少的类型赋值给占位数多的类型时,java自动使用隐式类型转换(如int型转为long型)

显式类型转换

当把在级别高的变量的值赋给级别低变量时,必须使用显式类型转换运算(如double型转为float型)

注:char a = 'S'; char 后面赋值要用单引号,因为是字符型数据类型

       String a = "I AM FINE"; String 后面赋值要用双引号,因为是字符串数据类型

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值