吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1523|回复: 9
收起左侧

[学习记录] 【自学笔记】 Java基础 - 数据类型转换

[复制链接]
LongJL 发表于 2021-7-9 15:18

数据类型转换

数据类型的转换呢,分为俩种嗷,分别是隐式转换和显示转换

隐式转换

  • 特点:代码不需要进行特殊化处理,字段完成
  • 规则:数据范围从小到大
  • 精度排行(从高到低): double > float > long > int > short > byte
    public class main {
    public static void main(String[] args){
        //左边是long类型,右边是默认的int类型,左右不一样
        //一个等号代表赋值,将右侧的int常量,交给左侧的long变量进行存储
        //int-->long,复合数据范围从小到大的要求
        //这一行代码发生了自动类型转换。
        long num1 = 100;
        System.out.println(num1);// 100
        //左边是double类型,右边是float类型,左右不一样
        //float-->double,符合从小到大的规则
        //也发生了自动类型转换。
        double num2 = 2.5F;
        System.out.println(num2);// 2.5
        //左边是float,右边是Long类型,左右不一样
        //Long-->float,float范围更大一些,符合从小到大的规则
        //也发生了自动类型转换
        float num3 = 30L;
     }
    }

显示转换

  • 特点:代码需要进行特殊的格式处理,不能自动完成。
  • 格式:范围小的的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
    public class main {
    public static void main(String[] args){
        //左边是int类型,右边是long类型,不一样
        //long-->int,不是从小到大
        //不能发生自动类型转换!
        //int num1 = 100L;
        //格式:范围小的的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
        int num1 = (int) 100L;
        System.out.println(num1);
    }
    }

    注意事项:
    1.强制类型转换,一般不推荐转换,一般会发生精度损失,数据溢出。
    2.byte/short/char这三种类型都可以发生数学运算,例如加法"+"。
    3.byte/short/char这三种类型在运算的时候,都会被首先提升为int类型,然后在计算。
    4.boolean类型不能发生数据类型转换。
    5.对于byte/short/char三种类型来说,如果右侧得数值不超过它得范围本身,那么它会由一个隐含得为我们补上(byte)(short)(char)。
    6.如果没有超过左侧得范围,编译器补上强转。
    7.如果右侧超过左侧得范围,编译器报错。
    8.double-->int,强制类型转换 并不是四舍五入,所以小数位都被舍弃。

public class main {
    public static void main(String() args){
        char zf1 = 'A';//这是一个字符型变量,里面是大写字母A
        //计算机的底层会用一个数字(二进制)来代表字符A,就是65
        //一旦char类型进行了数学计算,那么字符就会按照一定规则翻译成为一个数字
        byte num4 = 50; //注意!右侧的数值大小不能超过左侧的类型范围
        byte num5 = 60;
        //byte + byte --> int + int --> int
        int result1 = num4 + num5
        System.out.println(result1); //110
        short num6 = 40;
        //byte + short --> int + int --> int
        //int result2 = num4 + num6;
        //int强制转换为short:注意必须保证逻辑上真实大小本来就没有超过short范围,否则会发送数据溢出。
        short result2 = (short)(num4 + num6);
    }
}

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

九分叶里狼 发表于 2021-7-9 15:26
java自学推荐看视频
 楼主| LongJL 发表于 2021-7-9 15:38

有的,视频文档结合着看,顺便做一些笔记 有空的时候看看加深下印象
vvvwxf 发表于 2021-7-9 15:38
 楼主| LongJL 发表于 2021-7-9 15:40
vvvwxf 发表于 2021-7-9 15:38
这是才起步呀,加油

会的,谢谢支持
小白不怂 发表于 2021-7-9 17:12
加油加油
 楼主| LongJL 发表于 2021-7-9 17:32

会的,谢谢支持
yasuoren 发表于 2021-7-9 18:41
加油!
我也正在自学JAVA
 楼主| LongJL 发表于 2021-7-9 18:52
yasuoren 发表于 2021-7-9 18:41
加油!
我也正在自学JAVA

嗯嗯 加油!
Echo_ 发表于 2021-7-10 08:59
谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表