Java 我分别打印b1和b3时出错。。但是如果我单独打印b2没有错误请解释
}Java 我分别打印b1和b3时出错。。但是如果我单独打印b2没有错误请解释,java,byte,Java,Byte,} 我分别打印b1和b3时出错。。但是,如果我单独打印b2,则不会出错。请解释一下,Abyte只能保存-128到+127之间的值。如果您的int包含,比如5000,那将是一个问题。显式转换为(byte),在Java中是这样说的,“我知道我在做什么,别再烦我了。” 现在,它使用b2=y的原因是它在编译时知道y=100,因此该操作是安全的。它对x和z没有这样的保证 如果将任何变量设为final,则不能更改 最终变量(它将是常量) z是final,因此它是常量。但是,它在声明时未初始化。稍后会为其指
我分别打印b1和b3时出错。。但是,如果我单独打印b2,则不会出错。请解释一下,A
byte
只能保存-128到+127之间的值。如果您的int
包含,比如5000,那将是一个问题。显式转换为(byte)
,在Java中是这样说的,“我知道我在做什么,别再烦我了。”
现在,它使用b2=y
的原因是它在编译时知道y=100
,因此该操作是安全的。它对x
和z
没有这样的保证
如果将任何变量设为final,则不能更改
最终变量(它将是常量)
z
是final
,因此它是常量。但是,它在声明时未初始化。稍后会为其指定一个值,但这无关紧要。然后将z
分配给b3
并将其打印出来,但z
是final
且仅在声明后才分配值。由于不清楚应该打印出什么,因此会出现错误。试一试
class Example{
public static void main(String args[]){
int x=100;
final int y=100;
final int z;
z=100;
byte b1,b2,b3;
b1=x;
b2=y;
b3=z;
System.out.println(b1);
}
相反。请解释这个问题,检查错误和失败的代码将是一个好的开始。错误代码:示例。java:12:错误:不兼容类型:可能从int到byte@AsansaRushan:
x
的类型为int
<代码>b1的类型为字节
<代码>字节小于int
,因此b1=x
可能会丢失数据,因为字节小于int
。(它不会出现在你的特定代码中,因为100适合一个字节。但是如果你有x=5230
,b1
,结果将是110。)这与打印无关。@t.J.Crowder-Thanx对于rply,但是如果我同时注释了b1=x,y也是一个int;b3=z,并放置一个s.o.p(b2);编译后,我得到的输出为100,没有错误
final int z = 100;