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);
}
相关推荐
我不会编程5553 分钟前
Python Cookbook-6.10 保留对被绑定方法的引用且支持垃圾回收
开发语言·python
道剑剑非道17 分钟前
QT开发技术【qcustomplot 曲线与鼠标十字功能】
开发语言·qt·计算机外设
李少兄21 分钟前
解决Spring Boot多模块自动配置失效问题
java·spring boot·后端
刘婉晴30 分钟前
【环境配置】Mac电脑安装运行R语言教程 2025年
开发语言·macos·r语言
Despacito0o30 分钟前
C++核心编程:类与对象全面解析
开发语言·c++
Tiger Z31 分钟前
R 语言科研绘图第 43 期 --- 桑基图-冲击
开发语言·r语言·贴图
bxlj_jcj1 小时前
JVM性能优化之年轻代参数设置
java·性能优化
八股文领域大手子1 小时前
深入理解缓存淘汰策略:LRU 与 LFU 算法详解及 Java 实现
java·数据库·算法·缓存·mybatis·哈希算法
不当菜虚困1 小时前
JAVA设计模式——(八)单例模式
java·单例模式·设计模式
m0_740154671 小时前
Maven概述
java·maven