java中常用的三目运算符,大家都知道
int a = 10;
char b = 'x';
System.out.println(false?10:b);//结果为x
System.out.println(false?a:b);//结果为120
可是在看IO流源码时发现了这个:
public synchronized int read() {
return (pos < count) ? (buf[pos++] & 0xff) : -1;
}
关于类型转换的时间就成了问题。
byte a = -1;
int b;
int e;
b = (true)?(a&0xff):-1;// b = 255
e = (true)?a:-1; // e = -1
我很奇怪a被转型(int)的时间