什么是空指针异常(java.lang.NullPointerException)以及它们的原因是什么?
可以使用哪些方法/工具来确定原因,以便停止异常导致程序过早终止?
我正在调试JDK源代码:
public static int codePointAt(CharSequence seq, int index) {
char c1 = seq.charAt(index++);
if (isHighSurrogate(c1)) {
if (index < seq.length()) {
char c2 = seq.charAt(index);
if (isLowSurrogate(c2)) {
return toCodePoint(c1, c2);
}
}
}
return c1;
}
Run Code Online (Sandbox Code Playgroud)
我想c1在进入之前看到变量if (isHighSurrogate(c1)).但是,当我调试监视c1变量时,它会显示:

我真的尝试过添加rt.jar源代码,它确实可以进入JDK源代码的断点,如:

但为什么c1变量无法显示?
我有一个非常棘手的问题,我无法马上解决.我必须调试JDK源以查看是否可以进一步移动.标准JDK库未附带调试符号.
谁能告诉我哪里可以下载JDK调试版?我正在远程使用eclipse和调试,JDK 1.5或1.6都适用于我的情况.如果没有,我可能必须按照谷歌指南重新编译rt.jar.
为了更清楚,我想要一个启用了调试的JDK发行版.我在哪里可以下载?