CodeGym /Java Blog /Acak /21 pertanyaan wawancara Java teratas
John Squirrels
Level 41
San Francisco

21 pertanyaan wawancara Java teratas

Dipublikasikan di grup Acak
Ada berjuta pertanyaan wawancara Java dan tidak bisa kami kumpulkan semuanya dalam satu artikel. Namun di sini Anda dapat menemukan beberapa pertanyaan wawancara Java yang sangat umum, menurut HR-manager perusahaan IT. 21 pertanyaan wawancara Java teratas - 1
  1. “Bongkar” public static void main(String args[]).

    Salah satu pertanyaan wawancara java populer untuk mahasiswa baru, dan sangat mudah.

    • publicadalah pengubah akses. Kami menggunakannya untuk menentukan akses ke metode ini. Di sini pengubah bersifat "publik", jadi semua Kelas memiliki akses ke metode ini.

    • static. Kata kunci Java ini berarti kita menggunakan metode ini tanpa membuat Objek Kelas baru.

    • Voidadalah tipe kembalian dari metode. Ini berarti bahwa metode tersebut tidak mengembalikan nilai apapun.

    • mainadalah nama metode. JVM "mengetahuinya" sebagai titik masuk ke aplikasi (harus memiliki tanda tangan tertentu). Mainadalah metode di mana eksekusi utama terjadi.

    • String args[]. Ini adalah parameter yang diteruskan ke metode utama. Di sini kami memiliki argumen tipe String yang diterima aplikasi Java Anda saat Anda menjalankannya. Anda dapat mengetiknya di terminal.

  2. Apa perbedaan antara equals()dan ==?

    Pertama, “ ==” adalah operator sedangkan equals()adalah metode. Kami menggunakan ==operator untuk perbandingan referensi (atau perbandingan alamat) dan equals()metode untuk perbandingan konten. Ini berarti ==memeriksa apakah kedua objek menunjuk ke lokasi memori yang sama sambil equals()membandingkan nilai pada objek.

  3. Bisakah kita menjalankan program tanpa main()metode?

    Banyak pertanyaan wawancara dasar java sangat mudah. Seperti yang ini. Jadi jawaban singkatnya adalah: ya, kita bisa. Misalnya kita bisa melakukannya dengan menggunakan blok statis.

    Anda dapat menggunakan blok statis untuk menginisialisasi anggota data statis. Itu dijalankan sebelum mainmetode, pada saat 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 adalah:

    
    static block is invoked
    Now main method
    
  4. Bagaimana dengan ketidakhadiran metode utama total? Jika Anda mencoba menjalankan kelas biasa tanpa metode utama sama sekali, Anda mendapatkan kesalahan berikutnya: Metode utama tidak ditemukan di kelas Tes, harap tentukan metode utama sebagai: public static void main (String [] args) atau aplikasi JavaFX kelas harus memperluas javafx.application.Application. Kesalahan itu sendiri mengatakan bahwa jika ini adalah aplikasi JavaFX dan kelasnya diwarisi dari javafx.application.Application, maka itu mungkin.
  5. Apa itu immutableobjek? Bisakah Anda membuat immutableobjek?

    Anda tidak dapat memodifikasi objek kelas immutablesetelah pembuatannya. Jadi setelah Anda membuatnya, Anda tidak dapat mengubahnya. Jika Anda mencoba memodifikasi Immutableobjek, Anda mendapatkan objek baru (klon) dan mengubah klon ini saat membuat.

    Contoh yang baik adalah String, itu immutabledi Jawa. Itu berarti Anda tidak dapat mengubah objek itu sendiri, tetapi Anda dapat mengubah referensi ke objek tersebut.

  6. Berapa banyak objek yang dibuat dalam kode berikut?

    Salah satu pertanyaan wawancara teknis java yang menggantikan #4.

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

    Jawabannya “hanya satu” karena Java memiliki String Pool. Saat kita membuat objek String menggunakan operator new(), objek baru akan dibuat di memori heap. Jika kita menggunakan sintaks literal String, seperti dalam contoh kita, itu mungkin mengembalikan objek yang ada dari kumpulan String, jika sudah ada.

  7. Berapa banyak objek yang dibuat dalam kode berikut?

    
    String s = new String("Hello");
    

    Ada 2 objek. Satu ada di string konstan pool (jika belum ada) dan yang lainnya ada di heap.

  8. Apa Perbedaan Antara String, StringBuilderDan StringBufferKelas di Jawa ?

    Ada salah satu pemimpin dalam pertanyaan wawancara java teratas.

    Pertama-tama Stringadalah kelas yang tidak dapat diubah. Itu berarti Anda tidak dapat mengubah kontennya setelah dibuat. While StringBufferdan StringBuilderadalah kelas yang bisa berubah, jadi Anda bisa mengubahnya nanti. Jika kita mengubah konten Stringobjek, itu membuat string baru sehingga tidak mengubah yang asli. Itu sebabnya kinerja dengan StringBufferlebih baik daripada dengan String.

    Perbedaan utama antara StringBufferdan metode StringBuilderitu StringBufferdisinkronkan sementara StringBuilderitu tidak.

  9. Apakah ada perbedaan Stringyang dibuat menggunakan literal dan dengan new()operator?

    Ada. Jika kita membuat String dengan new()operator, itu muncul di heap dan di kumpulan string (jika belum ada). Jika Anda membuat Stringmenggunakan literal, itu dibuat di kumpulan string (jika belum ada). Kumpulan string adalah area penyimpanan di dalam heap, yang menyimpan literal string.

  10. Bisakah Anda mengganti privateatau staticmetode di Jawa?

    Salah satu pertanyaan wawancara rumit java untuk pemula. Anda benar-benar tidak dapat mengganti privateatau staticmetode di Jawa.

    Anda tidak dapat mengganti privatemetode karena ruang lingkup penentu akses privat hanya di dalam kelas. Saat Anda akan menimpa sesuatu, kita harus memiliki kelas induk dan anak. Jika metode superclass adalah private, kelas anak tidak dapat menggunakannya, dan metode di kelas anak akan diperlakukan sebagai metode baru (tidak diganti).

    Staticmetode juga tidak dapat ditimpa, karena staticmetode adalah bagian dari Kelas itu sendiri, dan bukan bagian dari objek kelas mana pun. Tentu Anda dapat mendeklarasikan staticmetode yang sama dengan tanda tangan yang sama di kelas anak, tetapi sekali lagi, metode tersebut akan diperlakukan sebagai metode baru.

  11. Perbedaan antara Abstract ClassdanInterface

    Salah satu pertanyaan wawancara pengembang java populer yang sesuai dengan prinsip OOP. Pertama-tama, di Java interfacemendefinisikan perilaku dan abstract classmembuat hierarki.

    Kelas abstrak Antarmuka
    Dimungkinkan untuk memiliki badan metode (metode non-abstrak) di kelas abstrak Antarmuka hanya dapat memiliki metode abstrak. Di Java 8 atau yang lebih baru, menjadi mungkin untuk menentukan metode default dan mengimplementasikannya langsung di antarmuka. Juga, Antarmuka di Java 8 dapat memiliki metode statis.
    Variabel instan bisa berada di kelas abstrak Antarmuka tidak dapat memiliki variabel instan.
    Konstruktor diperbolehkan Antarmuka tidak dapat memiliki konstruktor apa pun.
    Metode statis diperbolehkan Metode statis tidak diperbolehkan
    Kelas hanya dapat memiliki satu induk abstrak Satu antarmuka dapat mengimplementasikan kelas yang berbeda
    Kelas abstrak dapat menyediakan implementasi antarmuka. Antarmuka tidak dapat menyediakan implementasi kelas abstrak.
    Kelas abstrak diizinkan untuk memperluas kelas Java lainnya dan mengimplementasikan beberapa antarmuka Java. Antarmuka diperbolehkan untuk memperluas antarmuka Java lainnya saja.
    Kelas abstrak Java dapat memiliki anggota kelas pribadi dan terlindungi Anggota antarmuka Java bersifat publik secara default
  12. Bisakah kita mendeklarasikan staticvariabel dan metode di abstractkelas?

    Ya, adalah mungkin untuk mendeklarasikan staticvariabel dan metode dalam abstractmetode. Tidak ada persyaratan untuk membuat objek untuk mengakses konteks statis. Jadi kita diizinkan mengakses konteks statis yang dideklarasikan di dalam abstractkelas dengan menggunakan nama kelas abstract.

  13. Jenis area memori apa yang dialokasikan oleh JVM?

    Class Area menyimpan struktur perclass, misalnya, kumpulan konstanta runtime, bidang, data metode, dan semua kode untuk metode.

    Heap adalah area data runtime tempat memori dialokasikan ke objek.

    Tumpukan menyimpan bingkai. Ini berisi variabel lokal dan hasil parsial, dan mengambil bagian dalam pemanggilan dan pengembalian metode. Setiap utas memiliki tumpukan JVM pribadi, dibuat bersamaan dengan utas. Frame baru dibuat setiap kali metode dipanggil. Sebuah frame dihancurkan ketika pemanggilan metodenya selesai.

    Program Counter Register berisi alamat instruksi mesin virtual Java yang sedang dieksekusi.

    Tumpukan Metode Asli berisi semua metode asli yang digunakan dalam aplikasi.

  14. Mengapa pewarisan berganda tidak diperbolehkan di java?

    Ini akan sangat rumit. Bayangkan tiga kelas A, B, dan Cdan Cmewarisi Adan B. Sekarang, Adan Bkelas memiliki metode yang sama dan Anda memanggilnya dari objek kelas anak... Yang mana? Aatau B's? Di sini kita memiliki ambiguitas.

    jika Anda mencoba mewarisi dua kelas, Java membuat kesalahan waktu kompilasi.

  15. Bisakah kita membebani main()metode ini?

    Tentu, kita diperbolehkan memiliki banyak mainmetode dalam program Java dengan menggunakan kelebihan metode. Cobalah!

  16. Bisakah kita mendeklarasikan konstruktor sebagai final?

    Tidak. Konstruktor tidak dapat dideklarasikan sebagai a finalkarena tidak dapat diwariskan. Jadi tidak masuk akal untuk mendeklarasikan konstruktor sebagai final. Namun, jika Anda mencoba melakukannya, kompiler Java akan memberi Anda kesalahan.

  17. Bisakah kita mendeklarasikan antarmuka sebagai final?

    Tidak, kita tidak bisa melakukan ini. Antarmuka tidak bisa finalkarena antarmuka harus diimplementasikan oleh beberapa kelas sesuai dengan definisinya. Oleh karena itu, tidak ada gunanya membuat antarmuka final. Namun, jika Anda mencoba melakukannya, kompiler akan menampilkan kesalahan.

  18. Apa perbedaan antara static bindingdan dynamic binding?

    Yang bindingdapat diselesaikan pada waktu kompilasi oleh kompiler disebut staticatau pengikatan awal. Bindingdari semua static, privatedan finalmetode dilakukan pada waktu kompilasi.

    Dalam Dynamic bindingkompiler tidak dapat memilih metode yang akan dipanggil. Overriding adalah contoh sempurna dari dynamic binding. Dalam meng-override class parent dan child memiliki metode 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 cara membuat kelas read-only di Java?

    Anda dapat melakukannya dengan menjadikan semua bidang kelas bersifat pribadi. Kelas read-only hanya memiliki metode pengambil yang mengembalikan properti pribadi kelas ke metode main. Anda tidak dapat memodifikasi properti ini, alasannya adalah kurangnya metode setter.

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

    Sekali lagi, Anda harus membuat semua bidang kelas private. Sekarang, kelas tulis-saja Anda seharusnya hanya memiliki metode penyetel dan tanpa getter. Oleh karena itu, kami tidak dapat membaca properti kelas.

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

    Tidak. Ini bukan keharusan. Setiap tryblok bisa tanpa catchblok. Itu bisa diikuti oleh blok tangkapan atau blok terakhir 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...");  
            }  
         }  
    }
    

    Keluaran:

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

    Satu contoh lagi:
    
    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");
                }
            }
        }
    

    Keluaran:

    
    test
    

    PS: Sebelum metode Java 8 dalam antarmuka hanya bisa abstrak. Di Java 8 atau yang lebih baru, menjadi mungkin untuk menentukan metode default dan mengimplementasikannya langsung di antarmuka.
  22. Apa perbedaan antara throwdan throwskata kunci?

    Throwsdigunakan untuk mendeklarasikan pengecualian, sehingga cara kerjanya mirip dengan try-catchblok. Throwkata kunci digunakan untuk membuang pengecualian secara eksplisit dari metode atau blok kode lainnya.

    Throwdiikuti oleh turunan Exceptionkelas dan lemparan diikuti oleh nama kelas pengecualian.

    Throwdigunakan dalam badan metode untuk melempar pengecualian. Throwsdigunakan dalam tanda tangan metode untuk mendeklarasikan pengecualian yang mungkin terjadi dalam pernyataan yang ada dalam metode.

    Diperbolehkan untuk membuang satu pengecualian pada satu waktu tetapi Anda dapat menangani beberapa pengecualian dengan mendeklarasikannya menggunakan throwkata kunci. Anda dapat mendeklarasikan beberapa pengecualian, misalnya, public void method()throws IOException, SQLException.

Di sini kami hanya memiliki beberapa pertanyaan dan jawaban wawancara java. Artikel ini adalah yang pertama dari seri wawancara. Yang berikutnya (segera hadir) adalah tentang pertanyaan struktur data.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION