• 常用API汇总Object的toString和equals


    Object类

    java.lang.Object 类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。
    在对象实例化的时候,最终找的父类就是Object。
    如果一个类没有特别指定父类, 那么默认则继承自Object类。例如:
    根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。今天我们主要学习其中的2
    个:
    public String toString() :返回该对象的字符串表示。 public boolean equals(Object obj) :指示其他某个对象是否与此对象“相等”。

    首先附上源码:

     public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

    即返回值是:包名.类名@地址

    我们自己定义一个类,通常会重写toString,打印出对象的信息

    【1】undefined和null没有toString()方法

    undefined.toString();//错误
    null.toString();//错误

    【2】布尔型数据true和false返回对应的'true'和'false'

    true.toString();//'true'
    false.toString();//'false'
    Boolean.toString();//"function Boolean() { [native code] }"

    【3】字符串类型原值返回

    '1'.toString();//'1'
    ''.toString();//''
    'abc'.toString();//'abc'
    String.toString();//"function String() { [native code] }"

    【4】数值类型的情况较复杂

    Number.toString();//"function Number() { [native code] }"

    1、正浮点数及NaN、Infinity加引号返回

    1.23.toString();//'1.23'
    NaN.toString();//'NaN'
    Infinity.toString();//'Infinity'

      2、负浮点数或加'+'号的正浮点数直接跟上.toString(),相当于先运行toString()方法,再添加正负号,转换为数字

    +1.23.toString();//1.23
    typeof +1.23.toString();//'number'
    -1.23.toString();//-1.23
    typeof -1.23.toString();//'number'

      3、整数直接跟上.toString()形式,会报错,提示无效标记,因为整数后的点会被识别为小数点

    0.toString();//Uncaught SyntaxError: Invalid or unexpected token

      因此,为了避免以上无效及报错的情况,数字在使用toString()方法时,加括号可解决

    (0).toString();//'0'
    (-0).toString();//'0'
    (+1.2).toString();//'1.2'
    (-1.2).toString();//'-1.2'
    (NaN).toString();//'NaN'

      此外,数字类型的toString()方法可以接收表示转换基数(radix)的可选参数,如果不指定此参数,转换规则将是基于十进制。同样,也可以将数字转换为其他进制数(范围在2-36)

    复制代码
    复制代码
    var n = 17;
    n.toString();//'17'
    n.toString(2);//'10001'
    n.toString(8);//'21'
    n.toString(10);//'17'
    n.toString(12);//'15'
    n.toString(16);//'11'
    复制代码
    复制代码

    【5】对象Object类型及自定义对象类型加括号返回[object Object]

    {}.toString();//报错,Unexpected token .
    ({}).toString();//[object Object]
    ({a:123}).toString();//[object Object]
    Object.toString();//"function Object() { [native code] }"
    function Person(){
        this.name = 'test';
    }
    var person1 = new Person();
    person1.toString();//"[object Object]"

    equals方法是java.lang.Object类的方法

    Object的equals比较的是地址,重写后比较属性值

    如果是基本类型比较,那么只能用==来比较,不能用equals ,如果是基本类型的包装类型,那么用equals

  • 相关阅读:
    Tip#66:你知道吗?如何在输入属性值时自动插入双引号
    使用 Apache MINA 开发高性能网络应用程序(转载)
    Faceted Search with Solr
    solr dataimport 数据导入源码分析 补充
    Apache Tika
    MiddlegenHibernate的配制和使用(jtds连接sqlserver数据库)
    汉语转拼音之pinyin4j(转载)
    使用Tika进行非结构化内容的读写1
    使用Java NIO编写高性能的服务器
    solr dataimport 数据导入源码分析(十)总结
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/13029628.html
Copyright © 2020-2023  润新知