欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA中Object的常用方法

 更新時(shí)間:2023年11月06日 11:56:28   作者:張丁花  
JAVA中Object是所有對象的頂級父類,存在于java.lang包中,這個(gè)包不需要我們手動(dòng)導(dǎo)包,本文通過實(shí)例代碼介紹JAVA中Object的常用方法,感興趣的朋友一起看看吧

JAVA中Object的使用 

首先引入API的概念

API:Application Programming Interface應(yīng)用編程接口,一切可以調(diào)用的東西都是API。

java.lang包,這個(gè)包會(huì)自動(dòng)導(dǎo)入。

java.lang.Object

java.lang.String

java.lang.StringBuilder/StringBuffer

正則表達(dá)式

包裝類等

1. 概念

所有對象的頂級父類

存在于java.lang包中,這個(gè)包不需要我們手動(dòng)導(dǎo)包

2. 常用方法

boolean equals(Object obj)
          指示其他某個(gè)對象是否與此對象“相等”。
protected  void finalize()
          當(dāng)垃圾回收器確定不存在對該對象的更多引用時(shí),由對象的垃圾回收器調(diào)用此方法。
 int hashCode()
          返回該對象的哈希碼值,哈希map中用到,具體可以查看數(shù)據(jù)結(jié)構(gòu)。
 String toString()
          返回該對象的字符串表示。

3. toString()

默認(rèn)返回 類名@地址 的格式,來展示對象的地址值,如:a00000.Student@a0224e7。

如果想看屬性值我們可以重寫這個(gè)方法,重寫后返回的就是把屬性值拼接成一個(gè)字符串。

如:Student [name=大強(qiáng), age=20, id=10001]

//測試Object用法
public class TestObject {
    public static void main(String[] args) {
       //創(chuàng)建對象測試
       Person p = new Person("熊大",20,10,"森林");
       System.out.println(p);//要是不重寫toString()就是使用的Object提供的默認(rèn)方式只能打印對象在內(nèi)存的地址
       System.out.println(p);//由于重寫了toString()所以打印的是屬性的值
    }
}
//定義類,提供屬性
class  Person{
    //構(gòu)造:source-generate constrctor using fileds
    public Person() {}
    public Person(String name, int age, double salary, String addr) {
       this.name = name;
       this.age = age;
       this.salary = salary;
       this.addr = addr;
    }
    //屬性
    private String name;
    private int age;
    private double salary;
    private String addr;
    //set() get()
    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;
    }
    public double getSalary() {
       return salary;
    }
    public void setSalary(double salary) {
       this.salary = salary;
    }
    public String getAddr() {
       return addr;
    }
    public void setAddr(String addr) {
       this.addr = addr;
    }
    //toString():source - generate toString()-ok
    @Override//重寫的是Object提供的toString()是為了查看屬性值
    public String toString() {
       return "Person [name=" + name + ", age=" + age + ", salary=" + salary + ", addr=" + addr + "]";
    }
}

4. equals(Object obj)

當(dāng)前對象和參數(shù)對象比較大小,默認(rèn)是比較內(nèi)存地址,如果要比較對象的屬性,可以重寫該方法。

public class TestArea {
    public static void main(String[] args) {
       //基礎(chǔ)類型是按值比較
       int i1 = 10;
       int i2 = 10;
       int i3 = 12;
       System.out.println(i1==i2);//true
       System.out.println(i1==i3); //false
       //對象為引用類型,引用類型按內(nèi)存地址比較
       //如果不想比較地址,可以重寫equals方法
       Tiger t1 = new Tiger();
       Tiger t2 = new Tiger();
       Tiger t3 = t1;
       System.out.println(t1);
       System.out.println(t2);
       System.out.println(t3);
       System.out.println(t1.equals(t2));//false
       System.out.println(t1 == t2);//false
       System.out.println(t1.equals(t3));//true
       System.out.println(t1 == t3);//true
    }
}

5. hashCode()

返回該對象的哈希碼值。默認(rèn)為對象的內(nèi)存地址,可根據(jù)需要重寫

//測試equals()  ==
public class TestObject {
   public static void main(String[] args) {
       //1,==比較八大基本類型時(shí):判斷的是值
       int a = 1;
       int b = 1;
       System.out.println(a==b);//true
       //2,==比較對象時(shí),比較的是對象的地址值
       Integer x = 5;
       Integer y = 10;
       Integer z = x;//把x的地址賦值給了z
       System.out.println(x==y);//false
       System.out.println(x==z);//true      
       //3,equals()用來比較對象存著的值
       System.out.println(x.equals(z));//true
       //4,測試hashCode()哈希值
       System.out.println(x.hashCode());//5
       System.out.println(y.hashCode());//10
       System.out.println(z.hashCode());//5
   }
}
//測試equals()  ==
public class TestObject {
   public static void main(String[] args) {
       //1,==比較八大基本類型時(shí):判斷的是值
       int a = 1;
       int b = 1;
       System.out.println(a==b);//true
       //2,==比較對象時(shí),比較的是對象的地址值
       Integer x = 5;
       Integer y = 10;
       Integer z = x;//把x的地址賦值給了z
       System.out.println(x==y);//false
       System.out.println(x==z);//true      
       //3,equals()用來比較對象存著的值
       System.out.println(x.equals(z));//true
       //4,測試hashCode()哈希值
       System.out.println(x.hashCode());//5
       System.out.println(y.hashCode());//10
       System.out.println(z.hashCode());//5
   }
}

到此這篇關(guān)于JAVA中Object的使用的文章就介紹到這了,更多相關(guān)java object使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解java模板和回調(diào)機(jī)制

    詳解java模板和回調(diào)機(jī)制

    這篇文章主要為大家詳細(xì)介紹了java模板和回調(diào)機(jī)制,學(xué)習(xí)java模板,感興趣的朋友可以參考一下
    2016-03-03
  • 詳細(xì)分析Java中String、StringBuffer、StringBuilder類的性能

    詳細(xì)分析Java中String、StringBuffer、StringBuilder類的性能

    在Java中,String類和StringBuffer類以及StringBuilder類都能用于創(chuàng)建字符串對象,而在分別操作這些對象時(shí)我們會(huì)發(fā)現(xiàn)JVM執(zhí)行它們的性能并不相同,下面我們就來詳細(xì)分析Java中String、StringBuffer、StringBuilder類的性能
    2016-05-05
  • 解決使用@ManyToMany查詢數(shù)據(jù)時(shí)的死循環(huán)問題

    解決使用@ManyToMany查詢數(shù)據(jù)時(shí)的死循環(huán)問題

    這篇文章主要介紹了解決使用@ManyToMany查詢數(shù)據(jù)時(shí)的死循環(huán)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中的CopyOnWriteArrayList深入解讀

    Java中的CopyOnWriteArrayList深入解讀

    這篇文章主要介紹了Java中的CopyOnWriteArrayList深入解讀,在 ArrayList 的類注釋上,JDK 就提醒了我們,如果要把 ArrayList 作為共享變量的話,是線程不安全的,需要的朋友可以參考下
    2023-12-12
  • Java使用CompletableFuture進(jìn)行非阻塞IO詳解

    Java使用CompletableFuture進(jìn)行非阻塞IO詳解

    這篇文章主要介紹了Java使用CompletableFuture進(jìn)行非阻塞IO詳解,CompletableFuture是Java中的一個(gè)類,用于支持異步編程和處理異步任務(wù)的結(jié)果,它提供了一種方便的方式來處理異步操作,并允許我們以非阻塞的方式執(zhí)行任務(wù),需要的朋友可以參考下
    2023-09-09
  • 如何基于Springboot完成新增員工功能并設(shè)置全局異常處理器

    如何基于Springboot完成新增員工功能并設(shè)置全局異常處理器

    最近工作中遇到了做一個(gè)管理員工信息的功能,下面這篇文章主要給大家介紹了關(guān)于如何基于Springboot完成新增員工功能并設(shè)置全局異常處理器的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Java如何實(shí)現(xiàn)一個(gè)簡化版的Stream框架

    Java如何實(shí)現(xiàn)一個(gè)簡化版的Stream框架

    這篇文章主要為大家詳細(xì)介紹了一個(gè)簡化版的 Stream 實(shí)現(xiàn),展示了如何通過延遲執(zhí)行來處理數(shù)據(jù)流,感興趣的小伙伴可以跟隨小編一學(xué)習(xí)一下
    2024-10-10
  • Java continue break制作簡單聊天室程序

    Java continue break制作簡單聊天室程序

    這篇文章主要為大家詳細(xì)介紹了Java continue break制作簡單聊天室程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java中的CountDownLatch、CyclicBarrier和semaphore實(shí)現(xiàn)原理解讀

    Java中的CountDownLatch、CyclicBarrier和semaphore實(shí)現(xiàn)原理解讀

    這篇文章主要介紹了Java中的CountDownLatch、CyclicBarrier和semaphore實(shí)現(xiàn)原理詳解,CountDownLatch中調(diào)用await方法線程需要等待所有調(diào)用countDown方法的線程執(zhí)行,這就很適合一個(gè)業(yè)務(wù)需要一些準(zhǔn)備條件,等準(zhǔn)備條件準(zhǔn)備好之后再繼續(xù)執(zhí)行,需要的朋友可以參考下
    2023-12-12
  • 基于Java編寫一個(gè)簡單的風(fēng)控組件

    基于Java編寫一個(gè)簡單的風(fēng)控組件

    這篇文章主要為大家詳細(xì)介紹了如何基于Java編寫一個(gè)簡單的風(fēng)控組件,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下
    2022-12-12

最新評論