我们知道在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;
    }
}









