System.out.println((int)(char)(byte) -1); 结果是?

        去eBay面试的时候问到的问题,回答错了,被面试官三次怼到“Java基础薄弱”。emmm……写程序跑了一下,结果是65535.


System.out.println((int)(char)(byte) -1); 结果是?_第1张图片

分析(来源:百度知道)

第一步:int类型的-1强转为byte类型 还是-1

第二部:byte类型的-1转化为char,由ascii码表,-1是不在表范围之内,因为默认char占2个字节,即8个bit,所能存的最大值是65536个,所以char的数字范围是0-65535,把-1转为char,会倒着找,就是最大值65535,

第三步:char类型的65535转换为int还是65535

你可能感兴趣的:(System.out.println((int)(char)(byte) -1); 结果是?)