System.out.println(object) 的输出

2024-01-11

我想知道当我执行以下操作时,输出到底是什么。

class Data {
  int a = 5;
}

class Main {
  public static void main(String[] args) {
    data dObj = new data();
    System.out.println(dObj);
  }
}

我知道它给出了与对象相关的东西,因为我的例子的输出是数据@1ae73783。我猜是1ae73783是一个十六进制数。我还做了一些工作并打印了

System.out.println(dObj.hashCode());

我得到了号码415360643。我得到一个整数值。我不知道什么hashCode()当我转换时,仍然出于好奇而返回1ae73783到十进制,我得到415360643!

这就是为什么我很好奇这个数字到底是什么。这是 Java 沙箱的某个内存位置还是其他东西?


发生的情况是默认的toString() http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html#toString%28%29你的班级的方法正在被使用。该方法定义如下:

The toString类的方法Object返回一个字符串,其中包含对象作为实例的类的名称、at 符号“@”以及对象哈希码的无符号十六进制表示形式。换句话说,此方法返回一个等于以下值的字符串:

getClass().getName() + '@' + Integer.toHexString(hashCode())

默认返回的值hashCode() http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html#hashCode%28%29方法是特定于实现的:

只要合理可行,hashCode类定义的方法Object确实为不同的对象返回不同的整数。 (这通常是通过将对象的内部地址转换为整数来实现的,但 JavaTM 编程语言不需要这种实现技术。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

System.out.println(object) 的输出 的相关文章

随机推荐

  • 如何创建工具提示? [复制]

    这个问题在这里已经有答案了 我想为工具提示创建一个自定义 CSS 类 它将包含长度超过 25 30 的字符串 通常这么长的文本不适合工具提示文本区域 无论如何 有没有办法做到这一点工具提示 ui bootstrap tooltip http
  • 和/或 Jekyll 上的 where_exp 表达式

    我正在尝试使用where exp根据两个类别过滤 Jekyll 页面or操作员 assign sortedPages site pages sort date reverse where exp page page categories c
  • Jenkins 管道:构建步骤的返回值

    在 Jenkins 的集成管道中 我使用以下命令并行触发不同的构建构建步骤 https jenkins io doc pipeline steps pipeline build step 如下 stage trigger all build
  • 如何在迁移触发器中设置 Cognito 组

    我目前正在使用 Cognito 触发器 用户迁移 构建从 AWS 用户池到另一个用户池的迁移解决方案 我想在迁移期间设置一个组 但我无法执行此操作 因为在整个上下文完成之前尚未创建用户 我该如何解决这个问题 我不想创建 PostAuth l
  • 如何在 ASP.NET Core 2.0 中实现 machineKey

    在 ASP NET 非核心 中 我通常会在 web config 中添加一个 machineKey 以便我可以在本地计算机而不是服务器上执行一些功能 以便数据库 回调操作将使用相同的密钥 例如
  • 查找仅在 R 中的一行中出现的变量

    使用 BASE R 我想知道如何回答以下问题 有没有什么价值X or Y仅发生在一行中而不发生在其他行中 如果是 请出示我的期望的输出 below f lt data frame id c rep AA 4 rep BB 2 rep CC
  • (Symfony 4) 如何从 PHP 代码中访问 Liip Imagine 包?

    我希望能够上传一个文件 并从中创建 3 个缩略图 并将所有内容存储在 S3 服务器上 我的 liip LiipImagineBundle 设置如下 liip 想象 configure resolvers resolvers setup th
  • CMake 中的 Makefile 等效项

    我刚刚开始使用CMake 已经不到一周了 我已经编写了一个 Makefile 并且正在尝试在 CMake 中编写其等效项 我不知道应该在 CMake 中为给定 Makefile 中的每个语句使用哪些命令 我该如何开始 有什么地方可以找到这方
  • Django 结合 __unaccent 和 __search 查找

    所以我正在尝试使用 unaccent and search在同一模型过滤器中 但这样做时收到错误 我正在尝试使用术语 Pokemon 与术语 Pok mon 匹配来创建一个过滤器 注意 Game objects filter title u
  • JPA 2.1 中的 @ConstructorResult 映射无法与 Hibernate 4.3.5.Final 一起正常工作

    我尝试将本机查询映射到非实体类 我有以下实体 Entity Table name Groups SqlResultSetMapping name groupList classes ConstructorResult targetClass
  • 使用节点实现重新填充堆栈

    在我把它全部取下来打印出来后 我很难重新填充堆栈 我正在使用节点实现 所以我认为这个事实让我感到困惑 任何建议将不胜感激 谢谢 这是我原来的 stack print Function to print Gumball info field
  • 使用隐式/显式转换运算符是否违反单一职责模式而支持 DRY?

    我需要在这两个类之间进行转换 并且想要保持 DRY 但不违反单一职责模式 public class Person public string Name get set public int ID get set public class P
  • 模块内部的参考控制器

    我在模块内定义了一个控制器 angular module myModule controller MyCtrl function scope scope property myproperty 部分内容包含在主 html 中 如下所示 di
  • 詹金斯第一次访问时非常慢

    清晨第一次访问詹金斯非常慢 如果我们重新启动 Jenkins 服务器 也会发生这种情况 因此第一个访问 jenkins 的开发人员有时需要等待长达 3 分钟 我们认为这是构建负载的问题 因此 我们将所有构建工作转移给詹金斯奴隶 但问题并没有
  • 与多个项目共享 nlog 配置以及正确的线程安全方式来全部写入同一日志文件?

    我的程序由一个 EXE 和 6 个 DLL 组成 当然每个人都引用每个人 我目前有一个粗略的静态日志记录类 Logger 它位于它自己的 DLL Logger dll 中 我将其添加为每个的引用我的项目并使用 但我没有重新发明轮子 而是希望
  • 从 Angular 表达式访问窗口

    根据开发者指南 http docs angularjs org guide expression我应该能够从 Angular 表达式内部访问浏览器窗口 window 与 JavaScript 不同 JavaScript 的名称默认为全局窗口
  • 使用 PDO 准备和绑定语句的条件查询

    我正在将所有查询从 mysql 转换为 PDO 在这个过程中我发现了一个条件查询 如下所示 if isset parameters searchTerm where And title LIKE parameters searchTerm
  • 如何以编程方式从开始到结束缓慢滚动 UIScrollView

    我有一个水平 UIScrollview 显示大约 10 张图像 我知道我们必须使用scrollRectToVisible 方法以编程方式移动滚动视图 但我正在寻找的是从滚动视图的开始到结束缓慢滚动滚动视图 1 秒内 5 个像素 我看过一些页
  • 将数组定义为类的属性时出现语法错误

    public aSettings array BindHost gt 127 0 0 1 Port gt 9123 MaxFileSize gt 5 1024 1024 unexpected here UploadedURL gt http
  • System.out.println(object) 的输出

    我想知道当我执行以下操作时 输出到底是什么 class Data int a 5 class Main public static void main String args data dObj new data System out pr