复合赋值操作符包括*=、/=、%=、+=、-=、<<=、>>=、>>>=、 &=、^=和|= 在运算时提升到int,
   赋值时它们可能会自动地执行窄化原始类型转换。

short i = -1;
    while (i != 0) {
        i >>>= 1;
    }

   死循环解析:(short)-1 = 0xffff -> 执行符号扩展0xffffffff -> 无符号右移 1位,高位0填充 -> 0x7fffffff (int)

    -> (short)0x7fffffff -> 丢弃高位 (short)0xffff = (short)-1