【发布时间】:2015-09-20 17:41:44
【问题描述】:
为什么返回 false?
private static final HashMap<Integer, Integer> tags_tbl = new HashMap<Integer, Integer>() {{
put(0x01, 1);
put(0x8a, 1);
}};
tags_tbl.containsKey(-118) - 这返回 false,为什么?
tags_tbl.containsKey(1) - 这返回 true
tags_tbl.containsKey(0x8a) - 这返回 true
0x8a = -118 十进制
【问题讨论】:
-
是
0x8a被解释为无符号byte还是无符号int? -
0x8a 是一个字节,缓冲区[i]
-
绝对不是。如果是
byte,您的代码将无法编译。这是一个int(装箱到Integer)。 -
0x8a = -118 in dec你能解释一下你为什么这么认为吗?