从JDK1.0开始,Integer中就定义了MIN_VALUE和MAX-VALUE两个常量:/***Aconstantholdingtheminimumvaluean{@codeint}can*have,-231.*/publicstaticfinalintMIN_VALUE=0x80000000;/***Aconstantholdingthemaximumvaluean{@codeint}can*have,231-1.*/publicstaticfinalintMAX_VALUE=0x7fffffff;Q1:谁能给解释一下,这两个常量为什么会分别定义成0x80000000和0x7fffffff。Q2:java.lang.String的最大长度是多少?Q3:如下代码能抛出异常吗?为什么intx=Integer.MAX_VALUE+10;if(x>=Integer.MAX_VALUE||x
2 回答

慕慕森
TA贡献1856条经验 获得超17个赞
Q1:四字节的整形有符号是-2^31~2^31-1(MIN_VALUE和MAX-VALUE的注释里也写了),查下对应边界的补码二进制表示就清楚了Q2:java用的不多,不太清楚,应该可以很长,附上String的关键字段/**Thevalueisusedforcharacterstorage.*/privatefinalcharvalue[];/**Theoffsetisthefirstindexofthestoragethatisused.*/privatefinalintoffset;/**ThecountisthenumberofcharactersintheString.*/privatefinalintcount;/**Cachethehashcodeforthestring*/privateinthash;//Defaultto0Q3:intx=Integer.MAX_VALUE+10;x溢出了,x实际为-2^31+9,if条件不成立,不会抛出异常。
添加回答
举报
0/150
提交
取消