Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我分别打印b1和b3时出错。。但是如果我单独打印b2没有错误请解释_Java_Byte - Fatal编程技术网

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;