在Java中,允许以下内容:
char c = 'A' + 1;
Run Code Online (Sandbox Code Playgroud)
这里,c将保持值'B'.在上面,首先评估表达式.所以'A'被转换为65,整个表达式的计算结果为66,然后66被转换为'B',因为我们将值存储在char中.
但是,以下内容会产生编译时错误:
char c = 'A';
c = c + 1;
Run Code Online (Sandbox Code Playgroud)
Java如何以不同方式查看表达式的解释是什么?顺便说一句,以下工作也很好:
char c = 'A';
c++;
Run Code Online (Sandbox Code Playgroud) 考虑以下代码:
public class ShortDivision {
public static void main(String[] args) {
short i = 2;
short j = 1;
short k = i/j;
}
}
Run Code Online (Sandbox Code Playgroud)
编译它会产生错误
ShortDivision.java:5: possible loss of precision
found : int
required: short
short k = i/j;
Run Code Online (Sandbox Code Playgroud)
因为表达式i/j的类型显然是int,因此必须强制转换为short.
为什么类型i/j不短?
我有tyo字节变量
byte a = 3;
byte b = 4;
Run Code Online (Sandbox Code Playgroud)
如果我求和它们,sum的值是整数.
byte z = a+b //error, left side is byte, right side is integer
Run Code Online (Sandbox Code Playgroud)
为什么a + b是int?