0
点赞
收藏
分享

微信扫一扫

【Java基础领域】 byte num = 100 没有强制类型转换,为什么也可以编译通过

杨小羊_ba17 2022-02-20 阅读 66



我们知道在java中 整形默认是int类型

byte num = 100; //也就是相当于100 是Int类型   但是我们并没有做强制类型转换,就可以直接赋值给num  num的类型是byte类型, 针对这个问题作出如下解释。


package com.hblg.day02;

/**
* @author i
* @create 2019/9/3 21:10
* @Description java编译器的优化
* 对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围
* 那么javac编译器就会自动隐含地为我们不上一个强制类型转换(byte)(short)(char)
* 1、如果没有超出左侧的范围,自动不上强制类型转换
* 2、如果超出左侧的范围,编译直接报错
*/
public class DemoNotice {

public static void main(String[] args) {
byte num = 100; //相当于是 byte num = (byte)100;

// byte num2 = 128; 编译失败

char char1 = 65; //相当于 char char1 = (char)65;
}

}



举报

相关推荐

0 条评论