Rumah  >  Artikel  >  Java  >  Soalan temu bual dalam Java: Penyelesaian kepada tiga soalan klasik

Soalan temu bual dalam Java: Penyelesaian kepada tiga soalan klasik

PHPz
PHPzasal
2023-06-15 20:43:291039semak imbas

Sebagai bahasa pengaturcaraan yang popular, soalan temu bual Java juga telah menarik perhatian ramai. Mari kita lihat tiga soalan wawancara klasik Java dan jawapannya.

1. Bagaimanakah String sama?

Di Jawa, String ialah objek istimewa, jadi pertimbangan kesamarataannya juga memerlukan perhatian khusus. Secara umumnya, terdapat dua cara untuk menilai kesamaan String.

  1. Gunakan kaedah equals

Di Java, anda boleh menggunakan kaedah equals untuk menentukan sama ada dua objek String adalah sama. Kaedah ini membandingkan rentetan yang terkandung dalam dua objek Rentetan untuk melihat sama ada ia adalah sama, ia akan kembali benar jika ia berbeza, ia mengembalikan palsu.

Contohnya:

String str1 = "Hello";
String str2 = "Hello";

if(str1.equals(str2)){
    System.out.println("str1和str2相等");
} else {
    System.out.println("str1和str2不相等");
}

Hasil keluaran ialah: str1 dan str2 adalah sama.

Perlu diambil perhatian bahawa apabila menggunakan kaedah equals untuk membandingkan rentetan untuk kesamaan, apa yang dibandingkan ialah sama ada nilai rentetan adalah sama, bukan sama ada alamat memori adalah sama.

  1. Gunakan operator ==

Anda juga boleh menggunakan operator == dalam Java untuk menentukan sama ada dua objek String adalah sama. Walau bagaimanapun, perlu diperhatikan bahawa apabila menggunakan operator == untuk membandingkan dua objek, apa yang dibandingkan adalah sama ada alamat memori kedua-dua objek adalah sama, bukan sama ada kandungan rentetan adalah sama.

Contohnya:

String str1 = "Hello";
String str2 = "Hello";

if(str1 == str2){
    System.out.println("str1和str2地址相等");
} else {
    System.out.println("str1和str2地址不相等");
}

Hasil output ialah: alamat str1 dan str2 adalah sama.

Perlu diambil perhatian bahawa apabila menetapkan objek String, kumpulan rentetan dalam Java secara automatik akan mencipta objek rentetan baharu, jadi anda perlu memberi perhatian khusus apabila menggunakan operator == untuk membandingkan rentetan .

2. Apakah itu Final di Jawa?

Di Java, kata kunci terakhir boleh digunakan untuk mengubah suai kelas, kaedah dan pembolehubah. Mari kita terangkan fungsi kata kunci akhir secara berasingan.

  1. kelas diubah suai akhir

Jika kelas diubah suai dengan muktamad, ini bermakna kelas itu tidak boleh diwarisi. Contohnya:

public final class MyClass{
    //...
}
  1. kaedah diubah suai akhir

Jika kaedah diubah suai dengan muktamad, ini bermakna kaedah ini tidak boleh ditindih oleh subkelas. Contohnya:

public class MyClass{
    public final void myMethod(){
        //...
    }
}
  1. pembolehubah diubah suai akhir

Jika pembolehubah diubah suai dengan muktamad, ini bermakna pembolehubah tidak boleh ditugaskan semula. Contohnya:

public class MyClass{
    public final int MY_CONSTANT = 10;
}

Perlu diingat bahawa pembolehubah yang diubah suai oleh kata kunci akhir mesti dimulakan dan ditetapkan apabila diisytiharkan.

3. Apakah polimorfisme dalam Java?

Di Java, polimorfisme bermakna antara muka yang sama boleh melaksanakan objek yang berbeza. Secara khusus, terdapat dua bentuk polimorfisme:

  1. Polimorfisme masa kompilasi

Polimorfisme masa kompilasi merujuk kepada memanggil subkelas melalui rujukan kepada jenis kelas induk Kaedah objek jenis. Contohnya:

Parent parent = new Child();
parent.myMethod();

Dalam contoh ini, induk ialah rujukan jenis kelas induk, tetapi ia memanggil kaedah myMethod dalam objek jenis subkelas.

Perlu diingat bahawa polimorfisme masa kompilasi hanya boleh memanggil kelas induk dan kaedah dalam kelas induk, tetapi tidak boleh memanggil kaedah unik kepada subkelas.

  1. Polimorfisme masa larian

Polimorfisme masa larian merujuk kepada memanggil kaedah yang sepadan mengikut jenis objek sebenar semasa program dijalankan. Contohnya:

public class MyClass{
    public static void main(String[] args){
        Animal animal = new Dog();
        animal.makeSound();
    }
}

class Animal{
    public void makeSound(){
        System.out.println("动物发出声音");
    }
}

class Dog extends Animal{
    public void makeSound(){
        System.out.println("汪汪汪");
    }
}

Dalam contoh ini, haiwan ialah rujukan jenis Haiwan, tetapi ia menunjuk kepada objek jenis Anjing, jadi apabila kaedah makeSound dipanggil, kaedah makeSound dalam objek jenis Anjing sebenarnya dipanggil. , hasil keluaran juga ialah "woof woof woof".

Perlu diingat bahawa polimorfisme masa jalan hanya boleh menentukan kaedah yang dipanggil pada masa jalan, jadi ralat masa jalan mungkin berlaku.

Ringkasnya, String equality, kata kunci akhir dan polimorfisme dalam Java ialah soalan yang sering ditanya dalam temu bual Pengaturcara perlu mempunyai pemahaman yang mendalam dan penguasaan soalan ini.

Atas ialah kandungan terperinci Soalan temu bual dalam Java: Penyelesaian kepada tiga soalan klasik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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