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);
}
相关推荐
考琪9 分钟前
Nginx打印变量到log方法
java·运维·nginx
薛定谔的猫喵喵13 分钟前
基于PyQt5的视频答题竞赛系统设计与实现
开发语言·qt·音视频
岱宗夫up18 分钟前
Python 数据分析入门
开发语言·python·数据分析
wangjialelele20 分钟前
Linux中的进程管理
java·linux·服务器·c语言·c++·个人开发
码界筑梦坊20 分钟前
325-基于Python的校园卡消费行为数据可视化分析系统
开发语言·python·信息可视化·django·毕业设计
历程里程碑21 分钟前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
多恩Stone23 分钟前
【RoPE】Flux 中的 Image Tokenization
开发语言·人工智能·python
李日灐25 分钟前
C++进阶必备:红黑树从 0 到 1: 手撕底层,带你搞懂平衡二叉树的平衡逻辑与黑高检验
开发语言·数据结构·c++·后端·面试·红黑树·自平衡二叉搜索树
晔子yy31 分钟前
如何设计让你的程序同时处理10w条数据
java
Risehuxyc34 分钟前
备份三个PHP程序
android·开发语言·php