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);
}
相关推荐
【D'accumulation】12 分钟前
典型的MVC设计模式:使用JSP和JavaBean相结合的方式来动态生成网页内容典型的MVC设计模式
java·设计模式·mvc
wn53122 分钟前
【Go - 类型断言】
服务器·开发语言·后端·golang
试行27 分钟前
Android实现自定义下拉列表绑定数据
android·java
茜茜西西CeCe32 分钟前
移动技术开发:简单计算器界面
java·gitee·安卓·android-studio·移动技术开发·原生安卓开发
Hello-Mr.Wang34 分钟前
vue3中开发引导页的方法
开发语言·前端·javascript
救救孩子把37 分钟前
Java基础之IO流
java·开发语言
WG_1738 分钟前
C++多态
开发语言·c++·面试
小菜yh39 分钟前
关于Redis
java·数据库·spring boot·redis·spring·缓存
宇卿.1 小时前
Java键盘输入语句
java·开发语言
浅念同学1 小时前
算法.图论-并查集上
java·算法·图论