CodeGym /Blog Java /rawak /21 soalan temuduga Java teratas
John Squirrels
Tahap
San Francisco

21 soalan temuduga Java teratas

Diterbitkan dalam kumpulan
Terdapat berjuta-juta soalan temuduga Java dan kami tidak dapat mengumpulkan kesemuanya dalam satu artikel. Walau bagaimanapun, di sini anda boleh menemui beberapa soalan wawancara Java yang sangat biasa, menurut pengurus HR syarikat IT. 21 soalan temuduga Java teratas - 1
  1. "Buang" public static void main(String args[]).

    Salah satu soalan wawancara java yang popular untuk pelajar baru, dan sangat mudah.

    • publicialah pengubah suai akses. Kami menggunakannya untuk menentukan akses kepada kaedah ini. Di sini pengubah suai adalah "awam", jadi mana-mana Kelas mempunyai akses kepada kaedah ini.

    • static. Kata kunci Java ini bermakna kami menggunakan kaedah ini tanpa mencipta Objek Kelas baharu.

    • Voidialah jenis pulangan kaedah. Ini bermakna kaedah itu tidak mengembalikan sebarang nilai.

    • mainialah nama kaedah. JVM "mengetahuinya" sebagai titik masuk ke aplikasi (ia sepatutnya mempunyai tandatangan tertentu). Mainadalah kaedah di mana pelaksanaan utama berlaku.

    • String args[]. Ini adalah parameter yang diluluskan kepada kaedah utama. Di sini kami mempunyai hujah jenis String yang diterima oleh aplikasi Java anda apabila anda menjalankannya. Anda boleh menaipnya di terminal.

  2. Apakah perbezaan antara equals()dan ==?

    Pertama, " ==" ialah pengendali manakala equals()kaedah. Kami menggunakan ==operator untuk perbandingan rujukan (atau perbandingan alamat) dan equals()kaedah untuk perbandingan kandungan. Ini bermakna ==menyemak sama ada kedua-dua objek menghala ke lokasi memori yang sama sambil equals()membandingkan nilai dalam objek.

  3. Bolehkah kita melaksanakan program tanpa main()kaedah?

    Banyak soalan temuduga asas java adalah sangat mudah. Suka yang ini. Jadi jawapan ringkas ialah: ya, kita boleh. Sebagai contoh kita boleh melakukannya menggunakan blok statik.

    Anda boleh menggunakan blok statik untuk memulakan ahli data statik. Ia dilaksanakan sebelum mainkaedah, pada masa pemuatan kelas.

    
    class Example{  
     Static{
    System.out.println("static block is invoked");
    }  
      public static void main(String args[]){  
       System.out.println("Now main method");  
      }  
    }
    

    Outputnya ialah:

    
    static block is invoked
    Now main method
    
  4. Bagaimana dengan jumlah ketiadaan kaedah utama? Jika anda cuba menjalankan kelas biasa tanpa kaedah utama sama sekali, anda mendapat ralat seterusnya: Kaedah utama tidak ditemui dalam Ujian kelas, sila tentukan kaedah utama sebagai: public static void main (String [] args) atau aplikasi JavaFX kelas mesti memanjangkan javafx.application.Application. Ralat itu sendiri mengatakan bahawa jika ini adalah aplikasi JavaFX dan kelas itu diwarisi daripada javafx.application.Application, maka ia boleh dilakukan.
  5. Apakah immutableobjek? Bolehkah anda mencipta immutableobjek?

    Anda tidak boleh mengubah suai objek kelas immutableselepas penciptaannya. Jadi sebaik sahaja anda menciptanya, anda tidak boleh mengubahnya. Jika anda cuba mengubah suai Immutableobjek anda mendapat objek baharu (klon) dan menukar klon ini semasa penciptaan.

    Satu contoh yang baik ialah String, ia adalah immutabledi Jawa. Ini bermakna anda tidak boleh menukar objek itu sendiri, tetapi anda boleh menukar rujukan kepada objek tersebut.

  6. Berapakah bilangan objek yang dicipta dalam kod berikut?

    Salah satu soalan wawancara teknikal java yang menggantikan #4.

    
    String s1="Hello";  
    String s2="Hello";  
    String s3="Hello";  
    

    Jawapannya ialah "satu sahaja" kerana Java mempunyai Kolam Rentetan. Apabila kita mencipta objek String menggunakan operator new(), ia mencipta objek baharu dalam memori timbunan. Jika kami menggunakan sintaks literal String, seperti dalam contoh kami, ia mungkin mengembalikan objek sedia ada daripada kolam String, jika ia sudah wujud.

  7. Berapakah bilangan objek yang dicipta dalam kod berikut?

    
    String s = new String("Hello");
    

    Terdapat 2 objek. Satu berada dalam kolam pemalar rentetan (jika belum ada) dan satu lagi berada dalam timbunan.

  8. Apakah Perbezaan Antara String, StringBuilderDan StringBufferKelas di Jawa ?

    Terdapat salah seorang pemimpin dalam soalan temuduga java teratas.

    Pertama sekali Stringialah kelas Abadi. Ini bermakna anda tidak boleh mengubah suai kandungannya setelah dibuat. Semasa StringBufferdan StringBuilderialah kelas boleh ubah, jadi anda boleh menukarnya kemudian. Jika kita menukar kandungan Stringobjek, ia mencipta rentetan baharu oleh itu ia tidak mengubah suai yang asal. Itulah sebabnya prestasi dengan StringBufferlebih baik daripada dengan String.

    Perbezaan utama antara kaedah StringBufferdan kaedah StringBuilderitu StringBufferdisegerakkan manakala StringBuilder's tidak.

  9. Adakah terdapat sebarang perbezaan Stringyang dibuat menggunakan literal dan dengan new()operator?

    Terdapat. Jika kita mencipta String dengan new()pengendali, ia muncul dalam timbunan dan dalam kolam rentetan (jika belum ada). Jika anda mencipta Stringmenggunakan literal, ia dibuat dalam kolam rentetan (jika belum ada). Kolam rentetan ialah kawasan penyimpanan dalam timbunan, yang menyimpan literal rentetan.

  10. Bolehkah anda mengatasi privateatau statickaedah dalam Java?

    Salah satu soalan wawancara rumit java untuk pemula. Anda benar-benar tidak boleh mengatasi privateatau statickaedah dalam Java.

    Anda tidak boleh mengatasi privatekaedah kerana skop penentu akses peribadi hanya dalam kelas. Apabila anda akan mengatasi sesuatu, kita sepatutnya mempunyai kelas ibu bapa dan anak. Jika kaedah superclass ialah private, kelas kanak-kanak tidak boleh menggunakannya dan kaedah dalam kelas kanak-kanak akan dianggap sebagai kaedah baharu (tidak ditindih).

    Statickaedah juga tidak boleh ditindih, kerana statickaedah adalah sebahagian daripada Kelas itu sendiri, dan bukan sebahagian daripada mana-mana objek kelas. Pasti anda boleh mengisytiharkan statickaedah yang sama dengan tandatangan yang sama dalam kelas kanak-kanak, tetapi sekali lagi, kaedah tersebut akan dianggap sebagai kaedah baharu.

  11. Perbezaan antara Abstract ClassdanInterface

    Salah satu soalan temu bual pembangun java popular yang berkaitan dengan prinsip OOP. Pertama sekali, dalam Java interfacementakrifkan tingkah laku dan abstract classmencipta hierarki.

    Kelas abstrak Antara muka
    Adalah mungkin untuk mempunyai badan kaedah (kaedah bukan abstrak) dalam kelas abstrak Antara muka hanya boleh mempunyai kaedah abstrak. Dalam Java 8 atau lebih baru, ia menjadi mungkin untuk menentukan kaedah lalai dan melaksanakannya secara langsung dalam antara muka. Juga, Antara Muka dalam Java 8 boleh mempunyai kaedah statik.
    Pembolehubah contoh boleh berada dalam kelas abstrak Antara muka tidak boleh mempunyai pembolehubah contoh.
    Pembina dibenarkan Antara muka tidak boleh mempunyai sebarang pembina.
    Kaedah statik dibenarkan Kaedah statik tidak dibenarkan
    Kelas hanya boleh mempunyai satu ibu bapa abstrak Satu antara muka boleh melaksanakan kelas yang berbeza
    Kelas abstrak mungkin menyediakan pelaksanaan antara muka. Antara Muka tidak dapat menyediakan pelaksanaan kelas abstrak.
    Kelas abstrak dibenarkan untuk melanjutkan kelas Java yang lain dan melaksanakan berbilang antara muka Java. Antara muka dibenarkan untuk memanjangkan antara muka Java yang lain sahaja.
    Kelas abstrak Java boleh mempunyai ahli kelas peribadi dan dilindungi Ahli antara muka Java adalah awam secara lalai
  12. Bolehkah kita mengisytiharkan staticpembolehubah dan kaedah dalam abstractkelas?

    Ya, adalah mungkin untuk mengisytiharkan staticpembolehubah dan kaedah dalam abstractkaedah. Tiada keperluan untuk membuat objek untuk mengakses konteks statik. Jadi kami dibenarkan untuk mengakses konteks statik yang diisytiharkan di dalam abstractkelas dengan menggunakan nama kelas abstract.

  13. Apakah jenis kawasan ingatan yang diperuntukkan oleh JVM?

    Kawasan Kelas menyimpan struktur perkelas, contohnya, kumpulan pemalar masa jalan, medan, data kaedah dan semua kod untuk kaedah.

    Heap ialah kawasan data masa jalan di mana memori diperuntukkan kepada objek.

    Tindanan menyimpan bingkai. Ia mengandungi pembolehubah tempatan dan hasil separa, dan mengambil bahagian dalam penyeruan dan pemulangan kaedah. Setiap urutan mempunyai tindanan JVM peribadi, dibuat pada masa yang sama dengan urutan. Bingkai baharu dibuat setiap kali kaedah digunakan. Bingkai dimusnahkan apabila permohonan kaedahnya selesai.

    Daftar Kaunter Program mengandungi alamat arahan mesin maya Java yang sedang dilaksanakan.

    Timbunan Kaedah Asli mengandungi semua kaedah asli yang digunakan dalam aplikasi.

  14. Mengapakah berbilang warisan tidak dibenarkan di java?

    Ia akan menjadi sangat rumit. Bayangkan tiga kelas A, B, dan Cdan Cmewarisi Adan B. Sekarang, Adan Bkelas mempunyai kaedah yang sama dan anda memanggilnya daripada objek kelas kanak-kanak... Yang mana satu? A's atau B's? Di sini kita mempunyai kekaburan.

    jika anda cuba mewarisi dua kelas Java menyebabkan ralat masa kompilasi.

  15. Bolehkah kita membebankan main()kaedah?

    Sudah tentu, kami dibenarkan untuk mempunyai banyak mainkaedah dalam program Java dengan menggunakan kaedah lebih muatan. Cubalah!

  16. Bolehkah kita mengisytiharkan pembina sebagai final?

    Tidak. Pembina tidak boleh diisytiharkan sebagai finalkerana ia tidak boleh diwarisi. Jadi adalah tidak masuk akal untuk mengisytiharkan pembina sebagai final. Walau bagaimanapun, jika anda cuba melakukannya, pengkompil Java memberi anda ralat.

  17. Bolehkah kita mengisytiharkan antara muka sebagai final?

    Tidak, kita tidak boleh melakukan ini. Antara muka tidak boleh finalkerana antara muka harus dilaksanakan oleh sesetengah kelas mengikut definisinya. Oleh itu, tidak ada gunanya untuk membuat antara muka final. Walau bagaimanapun, jika anda cuba berbuat demikian, pengkompil akan menunjukkan ralat.

  18. Apakah perbezaan antara static bindingdan dynamic binding?

    Yang bindingboleh diselesaikan pada masa penyusunan oleh pengkompil dipanggil staticatau pengikatan awal. Bindingdaripada semua static, privatedan finalkaedah dilakukan pada masa penyusunan.

    Dalam Dynamic bindingpengkompil tidak boleh memilih kaedah untuk dipanggil. Mengatasi adalah contoh sempurna dynamic binding. Dalam mengatasi kedua-dua kelas ibu bapa dan anak mempunyai kaedah yang sama.

    
    Static Binding
    class Cat{  
     private void talk()
    {System.out.println("cat is mewing...");
    }  
      
     public static void main(String args[]){  
      Cat cat=new Cat();  
      cat.talk();  
     }  
    }  
    Dynamic Binding
    class Animal{  
     void talk(){
    System.out.println("animal is talking...");
    }  
    }  
      
    class Cat extends Animal{  
     void talk(){
    System.out.println("cat is talking...");
    }    
     public static void main(String args[]){  
      Animal animal=new Cat();  
      animal.talk();  
     }  
    }
    
  19. Bagaimana untuk membuat kelas baca sahaja di Java?

    Anda boleh melakukannya dengan menjadikan semua medan kelas peribadi. Kelas baca sahaja hanya mempunyai kaedah getter yang mengembalikan harta peribadi kelas kepada mainkaedah tersebut. Anda tidak dapat mengubah suai sifat ini, sebabnya adalah kekurangan kaedah penetap.

    
    public class HockeyPlayer{    
    private String team ="Maple leaf";    
    public String getTeam(){    
    return team;    
    }    
    }
    
  20. Bagaimana untuk membuat kelas tulis sahaja di Jawa?

    Sekali lagi, anda harus membuat semua medan kelas private. Sekarang, kelas tulis sahaja anda sepatutnya hanya mempunyai kaedah penetap dan tiada pengambil. Oleh itu, kita tidak boleh membaca sifat kelas.

    
    public class HockeyPlayer{       
    private String team;    
    public void setTeam(String college){    
    this.team = team;    
    }    
    }    
    
  21. Setiap tryblok mesti diikuti dengan catchblok, bukan?

    Tidak. Ia bukan satu keperluan. Setiap tryblok boleh tanpa catchblok. Ia boleh diikuti oleh sama ada blok tangkapan atau blok akhirnya atau bahkan tanpa mereka sama sekali.

    
    public class Main{  
         public static void main(String []args){  
            try{  
                int variable = 1;   
                System.out.println(variable/0);  
            }  
            finally  
            {  
                System.out.println("the other part of the program...");  
            }  
         }  
    }
    

    Pengeluaran:

    
    Exception in thread main java.lang.ArithmeticException:/ by zero
    the other part of the program...
    

    Satu lagi contoh:
    
    class Main {
            public static void main(String[] args) throws IOException {
                try(InputStreamReader inputStreamReader = new InputStreamReader(System.in);
                    BufferedReader reader = new BufferedReader(inputStreamReader)){
                    System.out.println("test");
                }
            }
        }
    

    Pengeluaran:

    
    test
    

    PS: Sebelum kaedah Java 8 dalam antara muka boleh menjadi abstrak sahaja. Dalam Java 8 atau lebih baru, ia menjadi mungkin untuk menentukan kaedah lalai dan melaksanakannya secara langsung dalam antara muka.
  22. Apakah perbezaan antara throwkata throwskunci?

    Throwsdigunakan untuk mengisytiharkan pengecualian, jadi ia berfungsi serupa dengan try-catchblok. Throwkata kunci digunakan untuk membuang pengecualian secara eksplisit daripada kaedah atau mana-mana blok kod lain.

    Throwdiikuti oleh contoh Exceptionkelas dan lontaran diikuti oleh nama kelas pengecualian.

    Throwdigunakan dalam badan kaedah untuk membuang pengecualian. Throwsdigunakan dalam tandatangan kaedah untuk mengisytiharkan pengecualian yang mungkin berlaku dalam pernyataan yang terdapat dalam kaedah.

    Ia dibenarkan untuk membuang satu pengecualian pada satu masa tetapi anda boleh mengendalikan berbilang pengecualian dengan mengisytiharkannya menggunakan throwkata kunci. Anda boleh mengisytiharkan berbilang pengecualian, cth, public void method()throws IOException, SQLException.

Di sini kami hanya mempunyai beberapa soalan dan jawapan temu bual java. Artikel ini adalah siri temu bual yang pertama. Yang seterusnya (akan datang) ialah mengenai soalan struktur data.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION