Java基础之隐式类型转换

类型转换

基本数据类型表示范围大小排序:

在变量赋值及算术运算的过程中,经常会用到数据类型转换,其分为两类:

  • 隐式类型转换

  • 显式类型转换

1 隐式类型转换

情形1:赋值过程中,小数据类型值或变量可以直接赋值给大类型变量,类型会自动进行转换

案例展示:

java 复制代码
package com.briup.chap02;

public class Test081_ImplicitTrans {
    public static void main(String[] args) {    
        // int类型值 赋值给 long类型变量 
        long num = 10;
        System.out.println(num);

        // float类型值 赋值给 double类型变量 
        double price = 8.0F;
        System.out.println(price);

        char c = 'a';
        // char 赋值给 int
        int t = c;
        System.out.println(t);

        // 下面会编译报错
        //float pi = 3.14;
        //int size = 123L;
        //int length = 178.5;
    }
}

情形2:byte、short、char类型 的数据在进行算术运算时,会先自动提升为int,然后再进行运算

案例展示:

java 复制代码
public static void main(String[] args) {
    byte b = 10;
    short s = 5;
    // (byte -> int)  +  (short -> int)
    //			int   +   int   
    //		结果为    int
    int sum = b + s;

    // 下一行编译报错,int 无法自动转换为 short进行赋值
    //short sum2 = b + s;

    System.out.println(sum);
}

情形3:其他类型相互运算时,表示范围小的会自动提升为范围大的,然后再运算

案例展示:

java 复制代码
public static void main(String[] args) {
    byte b = 10;
    short s = 5;
    double d = 2.3;
    //		(byte10->int10 - 5) * (short->int5) -> 5 * 5 = 25
    //				int25   +  double2.3
    //			 double25.0 +  double2.3
    //		结果:double 27.3,必须用double变量来接收该值
    double t = (b - 5) * s + d;

    // double赋值给float,编译报错
    // float f = (b - 5) * s + d;
    System.out.println(t);
}
相关推荐
面朝大海,春不暖,花不开15 分钟前
Java网络编程:TCP/UDP套接字通信详解
java·网络·tcp/ip
妮妮喔妮43 分钟前
【无标题】
开发语言·前端·javascript
慕y2741 小时前
Java学习第十五部分——MyBatis
java·学习·mybatis
fie88891 小时前
浅谈几种js设计模式
开发语言·javascript·设计模式
A__tao1 小时前
SQL 转 Java 实体类工具
java·数据库·sql
喝可乐的布偶猫1 小时前
Java类变量(静态变量)
java·开发语言·jvm
TDengine (老段)1 小时前
TDengine STMT2 API 使用指南
java·大数据·物联网·时序数据库·iot·tdengine·涛思数据
喝可乐的布偶猫1 小时前
韩顺平之第九章综合练习-----------房屋出租管理系统
java·开发语言·ide·eclipse
Code季风2 小时前
深入理解微服务中的服务注册与发现(Consul)
java·运维·微服务·zookeeper·架构·go·consul
光军oi2 小时前
java微服务(Springboot篇)——————IDEA搭建第一个Springboot入门项目
java·spring boot·微服务