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);
}
相关推荐
xinhuanjieyi6 分钟前
python获取租房70页信息,为了安全隐去了真实网址
开发语言·python
锥栗11 分钟前
【其他】基于Trae的大模型智能应用开发
android·java·数据库
毕设源码-郭学长18 分钟前
【开题答辩全过程】以 个人任务管理系统APP为例,包含答辩的问题和答案
java
专注VB编程开发20年24 分钟前
vb.net,c#线程池 Dim tasks As New List(Of Task) 线程多了,后面几个可能要等一二秒后再启动
java·linux·jvm
莫寒清26 分钟前
MyBatis 中 ${} 和 #{} 有什么区别?
java·面试·mybatis
2301_804947581 小时前
nginx
java·服务器·nginx
csbysj20201 小时前
Vue3 模板语法
开发语言
柒.梧.1 小时前
零基础吃透Java核心基础:JDK/JRE/JVM全解析+跨平台原理
java·开发语言·jvm
sheji34161 小时前
【开题答辩全过程】以 基于Java的宠物酒店管理系统设计与实现为例,包含答辩的问题和答案
java·开发语言·宠物
ServBay1 小时前
彻底重绘Spring Boot性能版图,资源占用缩减80%
java·spring boot·后端