zoukankan      html  css  js  c++  java
  • 【Java基础领域】 byte num = 100 没有强制类型转换,为什么也可以编译通过

    我们知道在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;
        }
    
    }
    
  • 相关阅读:
    Linux中的用户和用户组
    GCC编译过程
    C++设计模式——单例模式(转)
    快速排序之python
    归并排序之python
    计数排序之python
    希尔排序之python
    插入排序之python
    选择排序之python
    冒泡排序之python
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860820.html
Copyright © 2011-2022 走看看