Java数据类型转换

数据类型之间的转化问题
    int a = 1;  在栈内存中开辟了一块内存空间   叫做a   存储int类型   存储一个整数1
    int b = a;

==================================================================
    变量空间类型不同
        整型   byte   short   int    long 
        浮点型  float     double 
        字符型  char 
        布尔型   boolean

    byte a = 1;//8bit   -128~127
    int  b= a;//32bit
        
        食堂吃饭
        一碗米饭    2两的碗    1两米饭 /1两空气
            4两的碗    1两米饭
    int  a  = 1000;//编译---运行
    byte b =(byte)a;???//127                    强制类型转换
        a-->4两碗   3两米饭/1两空气  //将空气强制砍掉一部分
        b-->2两碗   1两米饭/1两空气

            00000000  00000000  00000000  00000001  强制删除24个bit位    只保留最后的8个bit位
            00000000  00000000  00000011  11101000 ---十进制--->二进制   除以2取余数   余数倒叙排列
            11101000     -24                    正数--->负数--->取反加一
                                

    int a = 1;32bit
    float b = a;//????可以 b == 1.0   32bit  精确程度
        转化规则

    long a = 1; //32bit
    float b = a; //64bit
        
    char---字符---'a'---0001010101---97---int
    char x = 'a';
    int y = x;//???   y-->97  
        

    类型之间的转换问题
        1.同种类型之间是可以直接进行赋值操作
            int a = 1; int  b = a;||  float  x  =  3.4;  float  y = x;
        2.数据类型不同的空间  之间的赋值----->转换问题
            同种大数据类型之间才能转换
            基本类型-----基本类型之间    可以直接自动转换(自动   强制)
            引用类型------引用数据类型之间   可以直接自动转换 (自动  强制---上转型   下转型)
            基本类型------引用数据类型     不可以直接转换   (间接---包装类/封装类)
        3.在保证大数据类型一致的前提下
            基本类型-----基本类型
            小数据类型相同
                都是整型    都是浮点 
                   大空间变量可以直接存储小空间的数据
                   小空间变量不可以直接存储大空间的数据(需要强制类型转化)
                    转换过程写法都好用  如果转换过程中数值范围超过边界   可能会有损失
                    byte a =1 ;int  b = a;//自动直接转换就可以
                    int a = 1;byte b =(byte)a;//需要强制类型转换
                    float x = 3.4F;double y = x; //自动直接转化
                    double x = 3.4; float y = (float)x;//强制转化
                    如果发现强制转化之前的数值比较大
                    int a = 1000; byte b = a;//编译好用   执行后 b存放的值一定放生变化
            小数据类型不同
                整型---浮点型
                    比较精确程度     浮点型精确程度更高  直接存储整数   反之需要强制转化
                        任何一个浮点型都可以直接存放一个整型
                        int a = 1; float b = a;//直接类型转化      
                        float a = 1.0F;int b = (int)a;//强制类型转化
                整型---字符型       每一个字符都对应一个Unicode码   a---97
                        char x = 'a';  int y = x;//直接转化   y---97     
                        int x = 97;char y = (char)x;//强制转化  y---a     byte x = 97;//转化  值计算
                字符型---整型      暗号
                
                布尔类型很特殊   
                        不能与其他基本类型之间发生转化
                     引用类型之间后续...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值