-
“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.
-
-
Apa perbedaan antara
equals()dan==?Pertama, “
==” adalah operator sedangkanequals()adalah metode. Kami menggunakan==operator untuk perbandingan referensi (atau perbandingan alamat) danequals()metode untuk perbandingan konten. Ini berarti==memeriksa apakah kedua objek menunjuk ke lokasi memori yang sama sambilequals()membandingkan nilai pada objek. -
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 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.
-
Apa itu
immutableobjek? Bisakah Anda membuatimmutableobjek?Anda tidak dapat memodifikasi objek kelas
immutablesetelah pembuatannya. Jadi setelah Anda membuatnya, Anda tidak dapat mengubahnya. Jika Anda mencoba memodifikasiImmutableobjek, Anda mendapatkan objek baru (klon) dan mengubah klon ini saat membuat.Contoh yang baik adalah
String, ituimmutabledi Jawa. Itu berarti Anda tidak dapat mengubah objek itu sendiri, tetapi Anda dapat mengubah referensi ke objek tersebut. -
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.
-
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.
-
Apa Perbedaan Antara
String,StringBuilderDanStringBufferKelas 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. WhileStringBufferdanStringBuilderadalah kelas yang bisa berubah, jadi Anda bisa mengubahnya nanti. Jika kita mengubah kontenStringobjek, itu membuat string baru sehingga tidak mengubah yang asli. Itu sebabnya kinerja denganStringBufferlebih baik daripada denganString.Perbedaan utama antara
StringBufferdan metodeStringBuilderituStringBufferdisinkronkan sementaraStringBuilderitu tidak. -
Apakah ada perbedaan
Stringyang dibuat menggunakan literal dan dengannew()operator?Ada. Jika kita membuat String dengan
new()operator, itu muncul di heap dan di kumpulan string (jika belum ada). Jika Anda membuatStringmenggunakan literal, itu dibuat di kumpulan string (jika belum ada). Kumpulan string adalah area penyimpanan di dalam heap, yang menyimpan literal string. -
Bisakah Anda mengganti
privateataustaticmetode di Jawa?Salah satu pertanyaan wawancara rumit java untuk pemula. Anda benar-benar tidak dapat mengganti
privateataustaticmetode 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 adalahprivate, kelas anak tidak dapat menggunakannya, dan metode di kelas anak akan diperlakukan sebagai metode baru (tidak diganti).Staticmetode juga tidak dapat ditimpa, karenastaticmetode adalah bagian dari Kelas itu sendiri, dan bukan bagian dari objek kelas mana pun. Tentu Anda dapat mendeklarasikanstaticmetode yang sama dengan tanda tangan yang sama di kelas anak, tetapi sekali lagi, metode tersebut akan diperlakukan sebagai metode baru. -
Perbedaan antara
Abstract ClassdanInterfaceSalah satu pertanyaan wawancara pengembang java populer yang sesuai dengan prinsip OOP. Pertama-tama, di Java
interfacemendefinisikan perilaku danabstract 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 -
Bisakah kita mendeklarasikan
staticvariabel dan metode diabstractkelas?Ya, adalah mungkin untuk mendeklarasikan
staticvariabel dan metode dalamabstractmetode. Tidak ada persyaratan untuk membuat objek untuk mengakses konteks statis. Jadi kita diizinkan mengakses konteks statis yang dideklarasikan di dalamabstractkelas dengan menggunakan nama kelasabstract. -
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.
-
Mengapa pewarisan berganda tidak diperbolehkan di java?
Ini akan sangat rumit. Bayangkan tiga kelas
A,B, danCdanCmewarisiAdanB. Sekarang,AdanBkelas memiliki metode yang sama dan Anda memanggilnya dari objek kelas anak... Yang mana?AatauB's? Di sini kita memiliki ambiguitas.jika Anda mencoba mewarisi dua kelas, Java membuat kesalahan waktu kompilasi.
-
Bisakah kita membebani
main()metode ini?Tentu, kita diperbolehkan memiliki banyak
mainmetode dalam program Java dengan menggunakan kelebihan metode. Cobalah! -
Bisakah kita mendeklarasikan konstruktor sebagai
final?Tidak. Konstruktor tidak dapat dideklarasikan sebagai a
finalkarena tidak dapat diwariskan. Jadi tidak masuk akal untuk mendeklarasikan konstruktor sebagaifinal. Namun, jika Anda mencoba melakukannya, kompiler Java akan memberi Anda kesalahan. -
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 antarmukafinal. Namun, jika Anda mencoba melakukannya, kompiler akan menampilkan kesalahan. -
Apa perbedaan antara
static bindingdandynamic binding?Yang
bindingdapat diselesaikan pada waktu kompilasi oleh kompiler disebutstaticatau pengikatan awal.Bindingdari semuastatic,privatedanfinalmetode dilakukan pada waktu kompilasi.Dalam
Dynamic bindingkompiler tidak dapat memilih metode yang akan dipanggil. Overriding adalah contoh sempurna daridynamic 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(); } } -
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; } } -
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; } } -
Setiap
tryblok harus diikuti oleh satucatchblok, bukan?Tidak. Ini bukan keharusan. Setiap
tryblok bisa tanpacatchblok. 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. -
Apa perbedaan antara
throwdanthrowskata kunci?Throwsdigunakan untuk mendeklarasikan pengecualian, sehingga cara kerjanya mirip dengantry-catchblok.Throwkata kunci digunakan untuk membuang pengecualian secara eksplisit dari metode atau blok kode lainnya.Throwdiikuti oleh turunanExceptionkelas 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.
GO TO FULL VERSION