public class Test {
     public static void main(String[] args) {
         int[] a = {1, 2, 4, 6};
         int[] b = a;
         int[] c = {1, 2, 4, 6};

         //下面这个方法打印的是a数组的引用地址
         System.out.println(a.toString());
         //下面这个方法比较的是两个数组的引用是否相等
         System.out.println("a.equals(b):"+a.equals(b));
         //下面这个方法才是a数组真正的toString方法
         System.out.println(Arrays.toString(a));
         //下面这个方法才是数组真正的equals方法
         System.out.println("Arrays.equals(a,c):"+Arrays.equals(a, c));
     }
 }
 [I@33d063fd
 a.equals(b):true
 [1, 2, 4, 6]
 Arrays.equals(a,c):true

运行结果

总结:java 数组没有重写 toString 方法和 equals 方法,当我们直接调用一个 java 对象的这两个方法的时候,实际上调用的是 java.lang.Object类里的这两个方法。

   要实现数组类自己的这两个操作必须要通过 java.util.Arrays 类的 toString() 方法和 equals(a , b) 这两个静态方法。

注意:java.lang.Object 这个类的 toString 方法打印出来的是对象的引用地址;equals()方法默认比较的是两个对象的引用。

   JDK中很多类重写了equals()方法,包括Java.lang.String类和java.util.Arrays类。

java数组、java.lang.String、java.util.Arrays、java.lang.Object的toString()方法和equals()方法详解的更多相关文章

  1. Object、String、数组的 toString() 方法和 equals() 方法及java.util.Arrays

    public class Test { public static void main(String[] args) { int[] a = {1, 2, 4, 6}; int[] b = a; in ...

  2. JAVA笔记7-Object类之toString方法和equals方法

    位于rt.jar\java\lang\Object.class Object类是所有Java类的根基类(Java中只有一个根基类,C++中有多个).如果在类声明中未使用extends关键字指明其基类, ...

  3. java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重

    package com.swift.lianxi; import java.util.HashSet; import java.util.Random; /*训练知识点:HashSet 训练描述 双色 ...

  4. Java 重写hashCode 方法和equals方法

    package Container; import java.util.HashSet; import java.util.Iterator; /* Set 元素是无序的(存入和取出的顺序不一定一致) ...

  5. Java连载56-toSting方法和equals方法

    一.关于object中的toString​方法: 1.SUN公司在Object类中设计toString方法的目的:返回java对象的字符串的表示形式. 2.在现实的开发过程中,Object里面的toS ...

  6. Java中Class.forName()用法和newInstance()方法详解

    1.Class.forName()主要功能 Class.forName(xxx.xx.xx)返回的是一个类, Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就 ...

  7. java 之Thread线程相关yield()、sleep()、wait()、join()、run和start方法详解

    1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据.注意该方 ...

  8. java的toString方法和sort方法

    public class arrayTool { public static String toString(int arr[]){ String result = ""; for ...

  9. Java提高篇——equals()与hashCode()方法详解

    java.lang.Object类中有两个非常重要的方法: 1 2 public boolean equals(Object obj) public int hashCode() Object类是类继 ...

随机推荐

  1. java 多线程安全问题-同步代码块

    /* 多线程的安全问题: while(true) { if(tick>0) { //线程0,1,2,3在余票为1时,都停滞在这里,之后分别获得CPU执行权,打印出0,-1,-2等错票 Syste ...

  2. request和response对象的具体介绍

    Request 对象 - request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性.常见属性有:    req.app:当callback为外部文件时,用req ...

  3. winsshfs的快速入手

    之前在公司使用mac ,并且通过mac下的osfuse和sshfs连接,直接将虚拟机的文件目录同步到了本地,并且可以进行实时操作修改,对于写项目,确实是省了很大一部分上传的精力. 于是在自己的win下 ...

  4. Loadrunner 在controller中运行socket脚本时报错:Abnormal termination, caused by mdrv process termination 的原因和解决方法

    原因: 网上给出的可能的原因大致有两个: 1.  压力负载机器的资源不足(CPU,内存) 2.  分配内存和释放内存的语句不匹配. 并给出了一些解决方案,最开始我以为是加了IP地址的原因,不断尝试增加 ...

  5. Python之文件与目录操作及压缩模块(os、shutil、zipfile、tarfile)

    Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读取或写入 os.path模块 文件路径操作 os模块 文件和目录简单操作 zipfile模 ...

  6. 2017-2-19 C#基础 数据类型

    数据类型分为基本数据类型和引用类型.基本数据类型分为两大类,值类型,字符型(char)和布尔型(bool).其中值类型分为整型和浮点型.整型分为byte,short,int,long.常用的是int( ...

  7. 读书笔记 effective c++ Item 25 实现一个不抛出异常的swap

    1. swap如此重要 Swap是一个非常有趣的函数,最初作为STL的一部分来介绍,它已然变成了异常安全编程的中流砥柱(Item 29),也是在拷贝中应对自我赋值的一种普通机制(Item 11).Sw ...

  8. Android 视频直播 SDK

    Android 视频直播 SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1 ...

  9. 浅谈Java的集合体系

    集合体系框架图 集合接口 Java集合类库将接口(interface)与实现(implementation)分离,如上图,Set是一个集合接口,而HashSet与TreeSet都是实现了Set接口的子 ...

  10. (八)javaScript对象简介

            脚本对象(JavaScript对象) <script type="text/javascript"> var time=new Date(); time ...