我们在java的学习中,有时候会有这样的疑问:同一个类实例化的各个对象是不同的,在哪里能够体现?

假如像这样,只有一个类,然后内部没有具体的方法,有一个相同的成员还是final的,怎么看出来两个对象是同一个类吗?区分他们不同对象在哪里?

public class Test01
{public final String str = "abd";
}

我们可以通过实际的对象来比较,从结果来看,可以看出:

public class Test01
{public final String str = "abd";public static void main(String[]args){Test01 t=new Test01();Test01 t2 = new Test01();System.out.println(t.equals(t2));}
}//结果为false

我们都知道,equals比较的是两个对象的值(即存储内容),这里 能够看出,equals返回的是false;

进一步,我们可以输出两个对象,来观察对象到底是什么

public class Test01
{public final String str = "abd";public static void main(String[]args){Test01 t=new Test01();Test01 t2 = new Test01();System.out.println(t.toString());System.out.println(t2.toString());}
}//结果是:

Test01@45bab50a
Test01@64c3c749

从输出,我们直观来看,前边一部分是类名,表明这二者是属于同一个类,然后后半部分的值不同,这里代表什么含义呢?

每个对象在实例化后,由于所有类的基类都是Object,Object类中有一个方法叫做toString(),返回的是一系列文本串

      文本串的构成为:getClass().getName() + '@' + Integer.toHexString(hashCode())

(1)我们使用System.out.print()输出对象时,实际都是使用了这样的一个隐含的function,返回值为类名@十六进制的哈希值

(2)不同的对象理论上说哈希值都是不会相同的,hashCode()方法要求不同的对象生成不同的哈希值,因此equals()方法会对比值之间是否相同

(3)toString()方法只反映了对象所属的类以及哈希值,不能实际反映类的内容,因此我们在设计类的时候一般要注意重写toString()方法,这样我们在输出的时候才能得到有意义的可视结果

转载于:https://www.cnblogs.com/KarayLee/p/4850424.html

java 对象 输出相关推荐

  1. java对象转xml 高性能_通过实例学习JAVA对象转成XML输出

    一.总体说明 XML和JSON 是最为常用的数据交换格式 本例子演示如何将java对象,转成XML输出. 二.流程 1.在上文的例子中,创建一个包"com.waylau.rest.bean& ...

  2. java int integer内存_java中一个integer对象的内存占用是多少?可以通过java方法输出吗?...

    今天翻记录看到了自己15年3月份提的问题,现在已经18年6月份了: 去年线上项目出现内存瓶颈,原因是缓存的玩家角色数据过多,在长时间不停服的情况下,导致数据越来越膨胀,之前没有清除无用缓存的机制,并且 ...

  3. JAVA对象转为Java String的几种常用方法

    在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object#toString(),(String)要转换的对象,St ...

  4. java json数据输出,java服务器端输出JSON格式数据

    java服务器端输出JSON格式数据 本文我们讨论如何在服务器端输出 JSON 格式的数据.以 Java 为例,我们将演示将一个 Java 对象编码为 JSON 格式的文本. 将 String 对象编 ...

  5. 用 XStream 序列化/反序列化 XML 为 Java 对象(实例)

    用 XStream 序列化/反序列化 XML 为 Java 对象(实例) Posted on 2007-06-05 19:06 Stephen Wong 阅读(1224) 评论(0)  编辑 收藏 网 ...

  6. Java对象表示方式2:XStream实现对对象的XML化

    前言 上一篇文章讲到了使用Java原生的序列化的方式来表示一个对象.总结一下这种对象表示方式的优缺点: 1.纯粹的Java环境下这种方式可以很好地工作,因为它是Java自带的,也不需要第三方的Jar包 ...

  7. Java对象查询方法:Jxpath(转译)

    Java对象查询方法:Jxpath(转译) 在JAVA对象中,如何进行有效的查询呢,这一直是个很值得探讨的问题.大家知道,在XML中,要找元素如何找呢?没错,通过XPATH 是个不错的办法,同样道理, ...

  8. 五种方法创建 Java 对象,你知道几种呢?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 网络 五种方法创建java对象 作为Java开 ...

  9. FastJson、Jackson、Gson进行Java对象转换Json的细节处理

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

最新文章

  1. python简单界面实现-python实现的简单窗口倒计时界面实例
  2. 油管网红AI老师人设崩了:搞培训货不对板,谈退钱一律拉黑
  3. mysql中给用户添加密码_MySql中添加用户,新建数据库,用户授权,删除用户,修改密码...
  4. python爬贴吧回复内容_Python 基础语法+简单地爬取百度贴吧内容
  5. 计算机英语六级,英语六级作文范文:计算机
  6. MySQL修改数据表
  7. 返回一个二维整数数组中最大子数组的和(二人结对)
  8. JAVA8的双重循环怎么优化_Java8处理List的双层循环问题代码实例
  9. 关于CodeSmith生成CSLA代码的联想
  10. Native方式运行Fabric(非Docker方式)
  11. IBM Racetrack内存为移动设备带来1TB容量
  12. poj 1287 Networking (最小生成树Kruskal算法)
  13. 0 图论及应用(张先迪):课程概述
  14. 用IAR调试芯唐Cortex-M0系列芯片指南
  15. 如何用计算机弹出斗地主的声音,电脑为什么只有斗地主的时候有声音?
  16. 软件工程师 级别 职称 评定 从见习程序员 到 主任软件工程师
  17. PRINCE2主题:商业论证,收益导向的管理艺术
  18. 记录一次vue项目引入GoogleMap API进行地图定位
  19. 单页应用和多页应用的区别
  20. 电影院和计算机和字典的英语怎么拼,电影院用英语怎么读

热门文章

  1. Java 面试经典题解析:谈谈你对 Java 平台的理解?
  2. 深入理解 Session 与 Cookie
  3. 5.MYSQL存储过程的管理
  4. jQuery 中jQuery/$的数据类型是什么?
  5. win7计算机内存占用高,WIN7系统电脑内存占用高的解决办法有哪些
  6. java中服务器瘫痪怎么办,跑的好好的 Java 进程,怎么突然就瘫痪了
  7. dma访问主存时_STM32F103单片机(五)——DMA
  8. 高压细水雾灭火技术在数据中心机房中的消防应用
  9. UPS技术培训系统方案
  10. 视频监控系统防雷设计方案