Jadual Kandungan
1.kaedah yang sama
== operator
sama dengan
2.hashCode
Rumah Java javaTutorial Bagaimana untuk menggunakan kelas Objek Java

Bagaimana untuk menggunakan kelas Objek Java

May 13, 2023 pm 05:13 PM
java object

    1.kaedah yang sama

    == operator

    Operator perbandingan, yang boleh menentukan kedua-dua jenis asas dan jenis rujukan

    Jika anda menilai jenis asas, nilai sama ada nilai adalah sama

    Jika anda menilai jenis rujukan, nilai sama ada alamat adalah sama, iaitu sama ada ia adalah objek yang sama

    sama dengan

    ialah kaedah kelas objek dan hanya boleh menentukan jenis rujukan

    objek - sama dengan kod sumber:

    public boolean equals(Object obj) {
        return (this == obj);
    }
    Salin selepas log masuk

    Anda boleh melihat dengan jelas bahawa kaedah sama dalam kelas objek adalah untuk menentukan sama ada alamat objek adalah Sama (adakah objek yang sama)

    Walau bagaimanapun, kelas jenis data lain akan mengatasi kaedah yang sama, seperti mengatasi kelas String: ( tentukan sama ada nilai ​​​​bagi dua rentetan adalah sama)

    public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        return (anObject instanceof String aString)
                && (!COMPACT_STRINGS || this.coder == aString.coder)
                && StringLatin1.equals(value, aString.value);
    }
    Salin selepas log masuk

    Contoh:

    String str1 = new String("hello");
    String str2 = new String("hello");
    System.out.println(str1 == str2); // false
    System.out.println(str1.equals(str2)); // true
    Salin selepas log masuk

    2.hashCode

    Tingkatkan kecekapan bekas dengan struktur cincang

    Jika dua rujukan menghala ke objek yang sama, nilai cincang adalah pasti (tiada konflik) ) adalah sama, dan begitu juga sebaliknya

    Nilai cincang adalah berdasarkan alamat tetapi bukan alamat

    Demo:

    // hashCode
    A a = new A();
    A a1 = new A();
    A a2 = a;
    System.out.println(a.hashCode());
    System.out.println(a1.hashCode());
    System.out.println(a2.hashCode());
    ------------------------------
    Salin selepas log masuk

    Output:

    1324119927
    990368553
    1324119927

    <🎜 Mengembalikan perwakilan rentetan objek

    Kod sumber:

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

    Contoh:

    // toString
    A a3 = new A("dahe",25,"安全服务工程师");
    System.out.println(a3.toString());
    Salin selepas log masuk

    Output:


    kelas.A@41629346

    PackageName.ClassName@Hex hashCode

    Sekarang Mari kita tulis semula kaedah toString (template) dalam kelas:

    @Override
    public String toString() {
        return "A{" +
                "name=&#39;" + name + &#39;\&#39;&#39; +
                ", age=" + age +
                ", job=&#39;" + job + &#39;\&#39;&#39; +
                &#39;}&#39;;
    }
    Salin selepas log masuk

    Jalankan kod di atas sekali lagi, dan sekarang output adalah seperti berikut:

    A{name=&#39;dahe&#39;, age=25, job=&#39;安全服务工程师&#39;}
    Salin selepas log masuk

    Di samping itu, apabila kita mengeluarkan objek secara langsung, ia akan dipanggil terus secara lalai kaedah toString:

    System.out.println(a3);
    Salin selepas log masuk

    Output:

    A{name=' dahe', age=25, job='Security Service Engineer'}

    4.finalize

    Apabila objek dikitar semula, sistem secara automatik memanggil kaedah finalize objek. Subkelas boleh mengatasi kaedah ini dan melakukan beberapa operasi untuk melepaskan sumber

    Nota: Dalam JDK18. memuktamadkan tidak digunakan lagi. Walaupun ia boleh membantu kami mengeluarkan sumber asas sistem secara proaktif, sejujurnya, saya tidak pernah menggunakannya Java secara automatik menguruskan memori Menggunakannya akan membawa kepada risiko keselamatan sistem yang berpotensi , jadi ia dirancang untuk dikeluarkan.

    Instance:

    // finalize
    A a4 = new A("dh",33,"架构师");
    a4 = null; // 这是a4成为了垃圾,垃圾回收器就会回收对象
    // 在销毁对象之前,会调用对象的finalize方法
    // 程序员就可以在这个方法中写入自己的业务,释放资源
    Salin selepas log masuk

    Timpa kaedah pemuktamadkan:

    @Override
    protected void finalize() throws Throwable {
        System.out.println("我们销毁对象");
    }
    Salin selepas log masuk

    Selain itu, anda juga boleh menjalankan pengumpul sampah secara aktif: <🎜>
    System.gc(); // 主动调用垃圾回收器
    Salin selepas log masuk

    Atas ialah kandungan terperinci Bagaimana untuk menggunakan kelas Objek Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    AI Hentai Generator

    AI Hentai Generator

    Menjana ai hentai secara percuma.

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

    Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

    Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

    Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

    Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

    Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

    Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

    Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

    Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

    Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

    TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

    Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

    Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

    Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

    Bagaimana untuk menjalankan aplikasi boot musim bunga pertama anda di Spring Tool Suite? Bagaimana untuk menjalankan aplikasi boot musim bunga pertama anda di Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

    Spring Boot memudahkan penciptaan aplikasi Java yang mantap, berskala, dan siap pengeluaran, merevolusi pembangunan Java. Pendekatan "Konvensyen Lebih Konfigurasi", yang wujud pada ekosistem musim bunga, meminimumkan persediaan manual, Allo

    See all articles