Object类和包装类

11.1  Object类

11.1.1  Object类介绍

Object对象是除了基础类型之外,所有的对象都需要继承的父对象,包括数组也继承了Object。

11.1.2  Object类常见方法

  • public native int hashCode();

    作用:返回对象的哈希码

  • public boolean equals(Object obj);

    作用:用于比较

11.1.3  ==号与equals方法比较及equals方法重写

  1. ==号

    如果作用于基本数据类型变量,直接比较值;

    如果作用于引用类型的变量,比较的是所指向的对象的地址;

  2. equals方法

    如果没有对equals方法进行重写,比较的是所指向的对象的地址;

    如果已经对equals方法进行了重写,就按重写的逻辑进行处理;

    注意事项:equals方法不能用于比较基本数据类型变量

11.1.4  hashcode方法和重写

  1. HashCode概要

    如果两个对象相同,equals一定返回true,且两个对象的HashCode一定相同;

    如果两个对象的HashCode相同,两个对象不一定相同,即equals()的值不一定为true,只能表明这两个对象在一个散列存储结构中;

  2. HashCode作用

    • 提高了读取对象的效率

    从Object角度看,JVM【Java虚拟机】new一个Object,它都会将这个Object丢到一个Hash表中去,下次做Object的比较或者取这个对象的时候【读取操作】,它会根据对象的HashCode再从Hash表中取这个对象。这样做的目的是提高读取对象的效率。若HashCode相同再去调用equals。

    • hashSet等存储数据的依据

    hashCode是一个标识,到散列表中去找该对象的一个标识,如果相同的hashCode的类放于相同的散列表中,然后在通过equals进一步选出散列表中对应的对象。因此相同标识下的类不能重复

11.1.5  Object类的其它方法应用

public native int hashCode();
public boolean equals(Object obj);
protected native Object clone();
public String toString();
public final native void notify();
public final native void notifyAll();
public final native void wait(long timeout) throws InterruptedException;
public final void wait(long timeout, int nanos) throws InterruptedException;
protected void finalize() throws Throwable;

 

11.2  包装类及其使用

11.2.1  什么是包装类

为了支持Java语言面向对象的特性,基本数据类型中的每一个在java.lang包中都有一个对应的包装类,即将每个基本类型都包装成了一个类。

基本类型包装类
bytejava.lang.Byte
shortjava.lang.Short
intjava.lang.Integer
longjava.lang.Long
floatjava.lang.Float
doublejava.lang.Double
charjava.lang.Character
booleanjava.lang.Boolean

11.2.2  包装类和基本类型的转换

  1. 基础类型转换成包装类【又称为装箱操作,装箱又分为手动装箱和自动装箱】

    int a=1;//定义int类型变量
    Integer b=new Integer(a);//手动装箱
    Integer d=Integer.valueOf(a);//手动装箱
    Integer c=a;//自动装箱

  2. 包装类转换成基础类型【又称为拆箱操作,拆箱又分为手动拆箱和自动拆箱】

    Integer x=new Integer(100);//定义Integer类型的包装类对象
       int y=x.intValue();//手动拆箱
       int z=x;//自动拆箱

       system.out.println(x+z);  //Integer x变为int x

11.2.3  包装类的作用

  • 包含了每种基本数据类型的相关属性,如最大值、最小值等;

  • 集合不允许存放基本数据类型,只允许存放对象类,故常用包装类;

  • 作为基本数据类型对应的类类型,提供了一系列实用的对象操作,如类型转换、进制转换等;

 

 

面试要点:==和equals()

口述hascode方法和重写

 

 

 

转载于:https://www.cnblogs.com/LihanyangQAQ/p/11234980.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值