Java 强制类型转换面试题

1、面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。

class DataTypeConversion{
	public static void main(String[] args){
		byte b1 = 3;
		byte b2 = 4;
		byte b3 = b1 + b2;
		System.out.println(b3);
	}
}

从两个方面:

  • byte与byte(或short,char)进行运算的时候会提升为int,两个int类型相加的结果页是int类型
  • b1和b2是两个变量,变量存储的值是变化,在编译的时候无法判断里面具体的值,相加有可能会超出byte的取值范围。

2、下面代码可以正常输出结果为:7

class DataTypeConversion{
	public static void main(String[] args){
		byte b3 = 3 + 4;
		System.out.println(b3);
	}
}

Java编译器有常量优化机制,判断3+4结果为7byte的范围内,所以可以正常编译通过。

3、当我们直接声明的值超出byte类型时:

class DataTypeConversion{
	public static void main(String[] args){
		byte v = 300;
		System.out.println(v);
	}
}

则会直接报错:提示我们强制转换为byte或直接改变数据类型为int。
在这里插入图片描述
你要去做一个大人,不要回头,不要难过。

猜你喜欢

转载自blog.csdn.net/weixin_44296929/article/details/106901951