Java中的常量优化机制

一、什么是常量优化机制?

  1. 概述:给一个变量赋值,如果等于号的右边是常量的表达式并且没有一个变量,那么就会在编译阶段计算该表达式的结果,然后判断该表达式的结果是否在左边类型所表示范围内,如果在,那么就赋值成功,如果不在,那么就赋值失败。
  2. 注意:如果一旦有变量参与表达式,那么就不会有编译期间的常量优化机制

二、代码示例

public static void main(String[] args) {

    byte result1 = 127;
    System.out.println(result1);
		
		//编译通过
		byte result2 = 120 + 7;
		System.out.println(result2);
		
		//编译报错,128超出byte范围
		byte result3 = 120 + 8;
		System.out.println(result3);

		//编译报错,b为变量,不触发常量优化机制,且int类型以下的数据运算会转化为int类型
		byte b = 120;
		byte result4 = b + 7;
		System.out.println(result4);

		//编译报错,理由同上
		byte a = 7;
		byte b2 = 120;
		byte result5 = a + b2;
		System.out.println(result5);
    }

版权声明:本文为weixin_45233415原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。