您好,匿名用户
随意问技术百科期待您的加入

Java中Integer的最大值和最小值

+1 投票

从JDK1.0开始,Integer中就定义了MIN_VALUEMAX-VALUE两个常量:

/**
 * A constant holding the minimum value an {@code int} can
 * have, -2<sup>31</sup>.
 */
public static final int   MIN_VALUE = 0x80000000;

/**
 * A constant holding the maximum value an {@code int} can
 * have, 2<sup>31</sup>-1.
 */
public static final int   MAX_VALUE = 0x7fffffff;

Q1:谁能给解释一下,这两个常量为什么会分别定义成0x800000000x7fffffff
Q2:java.lang.String的最大长度是多少?
Q3:如下代码能抛出异常吗?为什么

int x = Integer.MAX_VALUE+10;
if(x >= Integer.MAX_VALUE || x <= Integer.MIN_VALUE){ //throw exception}
用户头像 提问 2013年 9月7日 @ Hera 上等兵 (249 威望)
分享到:

1个回答

+1 投票

Q1:

四字节的整形 有符号是-2^31~2^31-1 (MIN_VALUE和MAX-VALUE的注释里也写了),查下对应边界的补码二进制表示就清楚了

Q2:

java用的不多,不太清楚,应该可以很长,附上String的关键字段

   /** The value is used for character storage. */
    private final char value[];

    /** The offset is the first index of the storage that is used. */
    private final int offset;

    /** The count is the number of characters in the String. */
    private final int count;

    /** Cache the hash code for the string */
    private int hash; // Default to 0

Q3:

int x = Integer.MAX_VALUE+10; x溢出了,x实际为-2^31+9,if条件不成立,不会抛出异常。

用户头像 回复 2013年 9月7日 @ Zilean 上等兵 (230 威望)
提一个问题:

相关问题

0 投票
1 回复 31 阅读
用户头像 提问 2013年 9月11日 @ Emiya Shirou 上等兵 (438 威望)
0 投票
0 回复 36 阅读
用户头像 提问 2012年 12月1日 @ dongxl 上等兵 (120 威望)
0 投票
1 回复 47 阅读
用户头像 提问 2012年 12月1日 @ Jayce 上等兵 (271 威望)
0 投票
1 回复 72 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...