Java 常用类 -千锋教育

Object类


在这里插入图片描述

getClass()方法 反射中有详细讲解 返回class对象

hashCode()方法 返回对象的哈希码值

哈希值根据对象的地址或字符串或数字使用hash算法 计算出来的int类型的数值

一般情况下相同对象返回相同的哈希值

toString 返回字符串表示 可以根据需求 覆盖

重写前

Object01.Student@1b6d3586
Object01.Student@4554617c

equals() 比较是不是同一地址

在这里插入图片描述

package Object01;

import java.util.Objects;

public class Student {
   
       private String name;
        private int age;

    public Student() {
   
    }

    public Student(String name, int age) {
   
        this.name = name;
        this.age = age;
    }

    public String getName() {
   
            return name;
        }

        public void setName(String name) {
   
            this.name = name;
        }

        public int getAge() {
   
            return age;
        }

        public void setAge(int age) {
   
            this.age = age;
        }

    @Override
    public String toString() {
   
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) {
   
        if (this == o) return true;
        if (!(o instanceof Student)) return false;
        Student student = (Student) o;
        return age == student.age &&
                Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
   
        return Objects.hash(name, age);
    }

    @Override
    protected void finalize() throws Throwable {
   
        System.out.println(this.name+"对象已被删除");
    }
}
package Object01;
public class HashCode {
   
    public static void main(String[] args) {
   
       Student s1 = new Student("age",20);
       Student s2 = new Student("bbb",22);
       Class class1 = s1.getClass();
       Class class2 = s1.getClass();
       if(class1 == class2){
   
           System.out.println("s1 s2 同类型");
       }else{
   
           System.out.println("s1 s2 不同类型");
        }
        System.out.println("=======================");
        Student s3 =s1;
        int h1 = s1.hashCode();
        int h2 =s2.hashCode();
        int h3 =s3.hashCode();
        int ch1=class1.hashCode();
        int ch2=class1.hashCode();
        System.out.println(h1);
        System.out.println(h2);
        System.out.println(h3);
        System.out.println(ch1);
        System.out.println(ch2);
        System.out.println("================");
        System.out.println(s1.toString());
        System.out.println(s2.toString());
        System.out.println("=====================");
        Student s4 = new Student("小明",17);
        Student s5 = new Student("小明",17);
        if(s4.equals(s5)){
   
            System.out.println("s4 s5 相同");
        }else {
   
            System.out.println("s4 s5 不同");
        }
        new Student("小明",17);
        new Student("小红",17);
        new Student("小张",17);
        new Student("小王",17);
        System.out.println("回收");
        System.gc();

    }
}
s1 s2 同类型
=======================
2992822
3017717
2992822
460141958
460141958
================
    未重写前
Object01.Student@2DAAB6//2DAAB6哈希值 16进制 转化10进制为2992822
Object01.Student@2E0BF5
Student{
   name='age', age=20}
Student{
   name='bbb', age=22}
=====================
s4 s5 相同//重写前  不同
回收
小王对象已被删除
小张对象已被删除
小红对象已被删除
小明对象已被删除

包装类

在这里插入图片描述

类型转换: 基本类型在栈里 引用类型/包装类型 在堆里

parsexxx 和 valueOf

public class Bao {
   
    public static void main(String[] args) {
   
        //类型转换:装箱 基本类型转为引用类型
        System.out.println("装箱");
        int num1=10;
        Integer integer1 = new Integer(num1);
        Integer integer2 = Integer.valueOf(num1);
        System.out.println(integer1);
        System.out.println(integer2);
        //类型转换:拆箱 引用类型转为基本类型
        System.out.println(
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值