【发布时间】:2014-05-29 03:42:49
【问题描述】:
我只是在查看 Integer 类的源代码,我遇到了以下几行:
public static final int MAX_VALUE = Integer.MAX_VALUE;
public static final int MIN_VALUE = Integer.MIN_VALUE;
这些是在 Integer 类中声明 MAX_VALUE 或 MIN_VALUE 的唯一地方,因此似乎这些值是分配给自己的......
但是当我尝试打印这些值时,我得到:
2147483647 -> 0x7fffffff
-2147483648 -> 0x80000000
所以它仍然会产生正确的值,但它分配在哪里?我在eclipse上使用最新的java(8)
我在网上找不到代码,所以我将相关代码粘贴在这里:
package java.lang;
import sun.misc.VM;
public final class Integer
extends Number
implements Comparable<Integer>
{
public static final int MIN_VALUE = Integer.MIN_VALUE;
public static final int MAX_VALUE = Integer.MAX_VALUE;
...
}
解决这个问题后,eclipse好像修改了一些jar文件的源代码。最佳观看方式
【问题讨论】:
-
这不是我看到的。我在安装 Java 8 时下载了源代码,我正在编辑器中查看它(而不是在 Eclipse 中).... 更新:我在 Eclipse 中也看不到它。
-
Eclipse 是否可能无法访问实际源代码,因此试图从其他信息“重建”源代码?这或许可以解释为什么您发布的“相关代码”sn-p 中没有任何 cmets。
-
也许可以,但我现在正在使用文本编辑器查看实际源代码。我会发布我发现的内容
-
@ajb,你是对的,我现在在文本编辑器上查看它,它实际上显示了值。我想知道为什么日食不显示这一点。使用文本编辑器查看时,源代码中也没有
import sun.misc.VM;。我想知道日食实际上在做什么......这很奇怪 -
也许stackoverflow.com/questions/426084/… 的一些答案可能会有所帮助。