七. ==  和 equals() 的区别、八. 基本数据类型对应的包装类型

七. ==  和 equals() 的区别                         

    == :比较的是,值是不是相等
    基本数据类型比较的是值,引用类型比较的是地址值


    equals(Object o): Object类中的方法,所以,在每一个java类中,都会有这个方法,
因为每一个java类
    都是直接或者间接的Object类的子类,会继承到这个方法

    如果自己所写的类中已经重写了equals方法,那么就安装用户自定义的方式来比较
俩个对象是否相等,
    如果没有重写过equal方法,那么会调用父类(Object)中的equals方法进行比较,也就是比较地址值

    注意:equals(Object o)方法只能是一个对象来调用,然后参数也是要传一个对象的

    所以下面是错误的写法:
    int a = 1;
    a.equals(1);
    因为基本数据类型不是算是对象,不能调用方法

    如果是基本数据类型那么就用==比较

    如果是引用类型的话,想按照自己的方式去比较,就要重写这个类中的equals方法, 
如果没有重写,
    那么equals和==比较的效果是一样的,都是比较引用的地址值

    如果是比较字符串,那么直接用equals就可以了,因为String类里面已经重写了equals方法,
    
比较的时候字符串的内容,而不是引用的地址值了

   toString(): Object类中的方法,所以,在每一个java类中,都会有这个方法,
因为每一个java类都是直接或者
   间接的Object类的子类,会继承到这个方法

    当前用一个引用指向一个对象的时候,比如:Student s = new Student(),
然后如果直接打印这个引用s,
    其实是调用了s.toString()方法,然后就会把这个引用里面的存放的堆区对象的地址值显示出来
    所以我们会常常在类中重写这个toString()方法,然后让这个类的引用按照我们要求来返回内容。
   getClass():Object类中的方法,所以,在每一个java类中,都会有这个方法,
并且这个方式final修饰的,
   不能被子类重写,这个方法可以返回某一个引用在运行的时候指向对象的类型
    例如:Person p = new Student() 
        //会输出:class com.briup.chap06.Student
        //说明这个引用p在运行时指向的是Student这个类的对象
        //注意这个引用p的类型是Person的(多态)
         System.out.println(p.getClass());


八. 基本数据类型对应的包装类型
    boolean        Boolean
    byte        Byte
    short        Short
    char        Character
    int        Integer
    long        Long
    float        Float
    double        Double

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是几个与Java中八种基本数据类型对应包装类型相关的面试题: 1. Java中有哪八种基本数据类型?它们分别是什么? Java中有8种基本数据类型,分别是:byte、short、int、long、float、double、char和boolean。 2. Java中的基本数据类型包装类型有什么区别基本数据类型直接存储数据的值,而包装类型是基于基本数据类型的对象类型,它们提供了一些额外的功能,如自动装箱和自动拆箱、null值、equals方法等。 3. 什么是自动装箱和自动拆箱? 自动装箱是指将基本数据类型转换为对应包装类型,自动拆箱是指将包装类型转换为对应基本数据类型。Java 5引入了自动装箱和自动拆箱的特性,使得开发者无需手动转换,而是由编译器自动完成转换的工作。 4. 如何将基本数据类型转换为对应包装类型? 可以使用对应包装类型的valueOf方法进行转换。例如,将int类型的值转换为Integer类型可以使用Integer.valueOf(int)方法。 5. 如何将包装类型转换为对应基本数据类型? 可以使用包装类型的xxxValue方法进行转换,其中xxx是对应基本数据类型的名称。例如,将Integer类型的对象转换为int类型可以使用intValue()方法。 6. Integer i = 10 和 Integer i = new Integer(10) 有什么区别? 前者使用自动装箱将int类型的值10转换为Integer类型,而后者是通过显式地创建一个Integer对象来实现的。 7. 为什么应该使用包装类型而不是基本数据类型? 使用包装类型可以提供更多的功能,如自动装箱和自动拆箱、null值、equals方法等。此外,某些框架和库要求使用包装类型,例如Hibernate中的映射。 8. 为什么应该避免使用包装类型? 使用包装类型会带来一些额外的开销,如对象创建、内存分配和垃圾回收等,对性能有一定的影响。因此,在性能要求较高的场景下,应该尽量使用基本数据类型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值