相关疑难解决方法(0)

为什么默认的Object.toString()包含哈希码?

如果你执行:

System.out.println(someObj.toString());
Run Code Online (Sandbox Code Playgroud)

你可能看到输出像

someObjectClassname @ hashcodenumber

我的问题:有什么特定的原因可以显示hashCode编号吗?

java

32
推荐指数
3
解决办法
3万
查看次数

在调试Java时解密变量信息

我正在使用IntelliJ IDEA 8来调试某些Java,但这个问题可能适用于所有Java调试器.在变量列表中,它们显示为:

myVariable = {some.package.SomeClass@12345}

我很想知道课程名称后面的数字.这个数字究竟是多少?如果两个变量是被引用的相同底层对象,那么它们是否具有相同的数字?

提前致谢.

java debugging intellij-idea

13
推荐指数
1
解决办法
1045
查看次数

在Java中,/(即正斜杠)在像$Lambda$15/0x00000008000a9440@32e6e9c3这样的对象引用中意味着什么?

在 JShell 中,如果我这样做:

interface Foo { String foo(); }
(Foo) () -> "hi"
Run Code Online (Sandbox Code Playgroud)

我明白了

|  created interface Foo
$2 ==> $Lambda$15/0x00000008000a9440@32e6e9c3
Run Code Online (Sandbox Code Playgroud)

通过以下研究,我知道以下内容:

$Lambda = 对生成的字节码的内存中引用,而不是由匿名内部类 (AIC) 持久保存到磁盘的引用

$15 = AIC 的对象引用

@32e6e9c3 =创建的对象的序列号——至少在 IntelliJ 中

但是(斜线)表示什么/,如/0x00000008000a9440

java jvm jshell

10
推荐指数
1
解决办法
368
查看次数

标签 统计

java ×3

debugging ×1

intellij-idea ×1

jshell ×1

jvm ×1