【发布时间】:2013-08-11 10:05:20
【问题描述】:
我对此代码段有 2 个问题
- 方法 1 工作正常,方法 2 不行。这是什么原因?
- 在方法 1 中,返回值为字节(8 位)。但我们实际上返回了一个 char 值(16 位)。 这里到底发生了什么?
//方法一
static byte m1() {
final char c = 'b'-'a';
return c;
}
//方法二
static byte m3(final char c) {
return c; // 3
}
【问题讨论】:
-
不工作是什么意思?
-
编译时显示 :: error: possible loss of precision
-
可能是方法1中的静态优化?
-
这个错误信息有什么不清楚的地方?你知道字符是 16 位长,而字节是 8 位长吗?