Pertanyaan Wawancara Dasar Java klasik, selamat datang untuk mengumpulkan dan berbagi.
Pertanyaan: Apa yang terjadi jika metode utama dinyatakan pribadi?
Jawaban: Ini dapat dikompilasi secara normal, tetapi akan meminta "metode utama bukan publik" saat berjalan.
PERTANYAAN: Apa perbedaan antara referensi yang lewat dan nilai kelulusan di Java?
Jawaban: Melewati referensi berarti memberikan alamat daripada nilai itu sendiri, dan memberikan nilai adalah salinan nilai.
Pertanyaan: Jika Anda ingin menulis ulang metode yang sama dari suatu objek, apa lagi yang harus Anda pertimbangkan?
Jawaban: HashCode.
PERTANYAAN: Bagaimana Java "Write Once, Run Where Where" diterapkan?
Jawaban: Program Java akan dikompilasi ke dalam file kelas yang terdiri dari bytecode, yang dapat berjalan di platform apa pun, jadi Java tidak tergantung pada platform.
PERTANYAAN: Jelaskan peran masing -masing kata kunci dalam pernyataan public static void main (String args [])
Jawaban: Publik: Metode utama adalah metode pertama yang disebut ketika program Java berjalan, jadi harus terlihat oleh lingkungan Java. Jadi visibilitas diatur ke PULIC.
Static: Platform Java tidak akan membuat instance dari kelas ini saat memanggil metode ini, jadi metode ini harus dinyatakan statis.
void: Metode utama tidak memiliki nilai pengembalian.
String adalah jenis parameter yang diteruskan di baris perintah, dan ARGS mengacu pada array string yang diteruskan di baris perintah.
Pertanyaan: == Perbedaan dari yang setara
Jawaban: == Bandingkan apakah dua objek adalah objek yang sama dalam memori, yang berarti bahwa lokasi penyimpanan dalam memori adalah sama. Nilai -nilai yang disimpan oleh dua objek string adalah sama, tetapi mereka dapat disimpan di berbagai tempat dalam memori.
== Perbandingan adalah referensi, sedangkan metode yang sama membandingkan konten. Public Boolean Equals (Object OBJ) Metode ini disediakan oleh objek objek dan dapat ditulis ulang oleh subclass. Implementasi default akan mengembalikan true hanya ketika objek dibandingkan dengan dirinya sendiri, dan pada saat ini setara dengan ==. String, Bitset, Tanggal, dan File Semua mengesampingkan metode Equals. Untuk dua objek string, nilai yang sama berarti mereka berisi urutan karakter yang sama. Untuk kelas pembungkus dengan tipe dasar, nilai yang sama berarti bahwa nilai tipe dasar yang sesuai adalah sama.
kelas publik equalstest {public static void main (string [] args) {string s1 = "abc"; String S2 = S1; String S5 = "ABC"; String s3 = string baru ("ABC"); String s4 = string baru ("ABC"); System.out.println ("== Perbandingan:" + (S1 == S5)); System.out.println ("== Perbandingan:" + (S1 == S2)); System.out.println ("Menggunakan Metode Equals:" + S1.Equals (S2)); System.out.println ("== Perbandingan:" + S3 == S4); System.out.println ("Menggunakan Metode Equals:" + S3.Equals (S4)); }}hasil:
== Perbandingan: Benar
== Perbandingan: Benar
Menggunakan metode Equals: Benar
PALSU
Menggunakan metode Equals: Benar
Pertanyaan: Apa yang terjadi jika pengubah statis dari metode utama dihapus?
Jawaban: Program dapat dikompilasi secara normal. Pengecualian Nosuchmethoderror akan dilemparkan selama runtime.
PERTANYAAN: Mengapa driver Oracle Type4 disebut driver tipis?
Jawaban: Oracle menyediakan driver JDBC Tipe 4, disebut driver tipis. Driver ini berisi implementasi TCP/IP Net8 di Oracle yang sepenuhnya diimplementasikan di Java. Oleh karena itu, ini adalah platform-independen dan dapat diunduh oleh browser saat runtime dan tidak bergantung pada implementasi Oracle klien mana pun. String koneksi klien menggunakan port alamat TCP/IP, bukan nama TNSNAME dari nama database.
Pertanyaan: Izinkan saya memperkenalkan metode finalisasi
Jawaban: Final: Deklarasi Konstan. Akhirnya: Tangani pengecualian. Finalisasi: Membantu dengan pengumpulan sampah.
Variabel yang dinyatakan dalam antarmuka adalah final secara default. Kelas terakhir tidak dapat diwarisi, yang berarti tidak ada subkelas. Ini dilakukan untuk jenis dasar alasan keamanan, seperti string dan integer. Ini juga memungkinkan kompiler untuk membuat beberapa optimasi dan membuatnya lebih mudah untuk memastikan keamanan utas. Metode terakhir tidak dapat ditulis ulang. Nilai variabel akhir tidak dapat diubah. Metode finalisasi () akan dipanggil sebelum suatu objek dihancurkan dan didaur ulang. Akhirnya, biasanya digunakan untuk penanganan pengecualian, terlepas dari apakah pengecualian dilemparkan atau tidak, itu akan dieksekusi. Misalnya, menutup koneksi biasanya dilakukan di blok akhirnya.
Pertanyaan: Apa itu Java API?
Jawaban: Java API adalah kumpulan sejumlah besar komponen perangkat lunak yang menyediakan banyak fitur yang berguna, seperti komponen GUI.
Pertanyaan: Apa kelas Gregoriancalendar?
Jawaban: Gregoriancalendar memberikan dukungan untuk kalender tradisional Barat.
PERTANYAAN: Apa kelas ResourceBundle?
Jawaban: ResourceBundle digunakan untuk menyimpan sumber daya di lokasi tertentu. Aplikasi dapat memuat sumber daya ini sesuai dengan lokal runtime, sehingga menyediakan tampilan berbagai bahasa.
Pertanyaan: Mengapa tidak ada variabel global di Java?
Jawaban: Variabel global terlihat secara global, dan Java tidak mendukung variabel yang terlihat secara global karena: variabel global menghancurkan prinsip transparansi referensi. Variabel global menyebabkan konflik namespace.
Pertanyaan: Bagaimana cara mengonversi tipe string ke tipe angka?
Jawaban: Nilai metode kelas Integer dapat mengubah string menjadi angka. Berikut adalah contoh kode:
String numString = "1000";
int id = integer.valueof (numString) .IntValue ();
PERTANYAAN: Apa kelas SimpleTimeZone?
Jawaban: SimpleTimeZone menyediakan dukungan tanggal Gregorian.
PERTANYAAN: Apa perbedaan antara loop sementara dan loop do?
Jawaban: Struktur sementara menentukan apakah iterasi berikutnya harus berlanjut di awal loop. Struktur DO/sementara menentukan apakah iterasi berikutnya akan berlanjut di akhir loop. Struktur DO akan menjalankan badan loop setidaknya sekali.
Pertanyaan: Apa kelas lokal?
Jawaban: Kelas lokal digunakan untuk secara dinamis menyesuaikan output program sesuai dengan lingkungan lokal.
Pertanyaan: Apa prinsip pemrograman berorientasi objek?
Jawaban: Ada tiga poin utama: polimorfisme, warisan dan enkapsulasi.
Pertanyaan: Pengantar Prinsip -prinsip Warisan
Jawaban: Warisan memungkinkan satu objek untuk mendapatkan properti dari objek lain. Menggunakan warisan memungkinkan fungsi yang diuji untuk digunakan kembali dan dapat dimodifikasi sekaligus, dan semua tempat warisan mulai berlaku pada saat yang sama.
Pertanyaan: Apa itu konversi tipe implisit?
Jawaban: Konversi tipe implisit hanya menetapkan satu jenis ke tipe lain, tanpa secara eksplisit memberi tahu kompiler bahwa konversi telah terjadi. Tidak semua jenis mendukung konversi tipe implisit.
Contoh kode:
int i = 1000;
long j = i; // casting implisit
Pertanyaan: Apakah ukuran kata kunci di java?
Jawab: Tidak.
Pertanyaan: Apa metode asli?
Jawaban: Metode asli adalah metode implementasi kode non-java.
PERTANYAAN: Di System.out.println (), apa itu System, Out, dan Println?
Jawaban: Sistem adalah kelas akhir yang telah ditentukan sebelumnya yang disediakan oleh sistem. Out adalah objek printstream, dan println adalah metode yang kelebihan beban di objek Out.
Pertanyaan: Apa itu enkapsulasi, warisan dan polimorfisme?
Jawaban: Sederhananya, polimorfisme mengacu pada beberapa implementasi dari satu nama. Polimorfisme memungkinkan entitas untuk mengimplementasikan operasi yang berbeda dengan cara yang sama. Operasi spesifik ditentukan oleh implementasi aktual.
Ada tiga cara untuk memanifestasikan polimorfisme dalam Java: metode kelebihan metode diimplementasikan melalui warisan dan metode penulisan ulang melalui antarmuka Java.
Pertanyaan: Apa itu konversi tipe eksplisit?
Jawaban: Konversi tipe eksplisit secara eksplisit memberi tahu kompiler untuk mengonversi objek.
Contoh kode:
long i = 700.20;
int j = (int) i; // casting eksplisit
Pertanyaan: Apa itu mesin virtual Java?
Jawaban: Mesin virtual Java adalah sistem perangkat lunak yang dapat diangkut ke platform perangkat keras yang berbeda.
Pertanyaan: Apa itu tipe downconversion?
Jawaban: Konversi turun mengacu pada konversi dari tipe umum ke tipe tertentu, yang dilakukan ke bawah pada struktur warisan.
Pertanyaan: Apa pengubah akses untuk Java?
Jawaban: Pengubah akses adalah kata kunci yang menunjukkan jenis akses anggota kelas. Gunakan kata kunci ini untuk menentukan akses ke metode atau variabel untuk program. Mereka berisi:
Publik: Semua kelas dapat mengakses Dilindungi: Semua subkelas dapat mengakses Pribadi: Hanya kelas yang dikaitkan dapat mengakses Default: Kelas dan subkelas yang dikaitkan dengan paket yang sama dapat mengakses
Pertanyaan: Apa kelas orang tua dari semua kelas?
Jawaban: Objek.
Pertanyaan: Apa tipe dasar Java?
Jawaban: byte, char, pendek, int, long, float, double, boolean.
Pertanyaan: Apa karakteristik tipe statis?
Jawaban: Variabel statis terikat ke kelas, bukan objek contoh kelas. Setiap objek instance berbagi variabel statis yang sama. Dengan kata lain, kelas hanya memiliki satu variabel statis, tidak peduli berapa banyak objek yang dimilikinya. Variabel kelas atau variabel statis dinyatakan melalui kata kunci statis. Variabel kelas biasanya digunakan sebagai konstanta. Variabel statis biasanya diakses oleh nama kelas. Saat program berjalan, variabel ini akan dibuat sampai program selesai dan tidak akan dihancurkan. Lingkup variabel kelas sama dengan variabel instance. Nilai awalnya sama dengan variabel anggota. Ketika variabel tidak diinisialisasi, akan ada nilai default sesuai dengan tipe datanya. Demikian pula, metode statis adalah metode yang dimiliki kelas, bukan objek kelas. Panggilan mereka tidak bertindak berdasarkan objek kelas, dan mereka tidak perlu membuat instance kelas apa pun. Metode statis sendiri bersifat final, karena penulisan ulang hanya akan terjadi pada contoh kelas. Metode statis terikat ke kelas, bukan objek. Metode statis kelas induk akan diblokir oleh metode statis kelas anak, selama metode asli tidak dinyatakan sebagai final. Metode non-statis tidak dapat mengganti metode statis, yaitu, Anda tidak dapat mengubah metode statis menjadi metode instan dalam subclass.
Variabel non-statis memiliki salinan nilai yang terpisah pada setiap instance objek.
Pertanyaan: Apa perbedaan antara operator & operator &&?
Jawaban: Ketika An & Expression dievaluasi, kedua operan akan dievaluasi, dan && lebih seperti jalan pintas ke operator. Ketika ekspresi && ekspresi mengevaluasi, operan pertama dihitung terlebih dahulu, dan jika mengembalikan true, operan kedua akan dihitung. Jika operan pertama dianggap salah, operan kedua tidak akan dievaluasi.
Pertanyaan: Bagaimana Java menangani overflow dan underflow bilangan bulat?
Jawaban: Java menyimpan byte orde rendah yang sesuai dalam hasil perhitungan ke nilai yang sesuai sesuai dengan ukuran jenis.
Pertanyaan: Apa yang terjadi jika void statis publik ditulis sebagai void publik statis?
Jawaban: Program disusun dan dijalankan secara normal.
Pertanyaan, apa perbedaan antara variabel menyatakan dan variabel yang menentukan?
Jawaban: Deklarasikan variabel Kami hanya memberikan jenis dan nama variabel dan tidak menginisialisasi. Definisi tersebut mencakup dua tahap: Deklarasi dan Inisialisasi String S; hanya deklarasi variabel, string s = string baru ("bob"); atau string s = "bob"; adalah definisi variabel.
Pertanyaan: Jenis passing parameter mana yang didukung Java?
Jawaban: Parameter Java adalah semua nilai yang diteruskan. Untuk suatu objek, nilai yang dilewati adalah referensi ke objek, yaitu, salinan referensi asli dan referensi parameter keduanya menunjuk ke objek yang sama.
Pertanyaan: Apa prinsip enkapsulasi objek?
Jawaban: Enkapsulasi adalah untuk mengikat data dan kode yang mengoperasikan data ke unit terpisah. Ini memastikan keamanan data dan mencegah penggunaan kode eksternal yang salah. Objek memungkinkan program dan data dienkapsulasi untuk mengurangi potensi gangguan. Pemahaman lain tentang enkapsulasi adalah bertindak sebagai lapisan pelindung untuk data dan kode untuk mencegah akses acak ke kode di luar lapisan pelindung.
Pertanyaan: Bagaimana Anda memahami variabel?
Jawaban: Variabel adalah area memori bernama untuk diakses oleh program. Variabel digunakan untuk menyimpan data, dan saat program dijalankan, data yang disimpan juga dapat berubah.
Pertanyaan: Apa itu peningkatan numerik?
Jawaban: Peningkatan numerik mengacu pada konversi data dari tipe data yang lebih kecil ke tipe data yang lebih besar untuk operasi bilangan bulat atau floating point. Selama proses peningkatan numerik, byte, char, nilai pendek akan dikonversi menjadi tipe int. Saat dibutuhkan, tipe int juga dapat dipromosikan lama. Panjang dan mengapung dapat dikonversi menjadi tipe ganda.
Pertanyaan: Apa jenis konversi Java?
Jawaban: Mengonversi dari satu tipe data ke jenis data lainnya disebut konversi tipe. Java memiliki dua jenis metode konversi, satu konversi jenis eksplisit dan yang lainnya tersirat.
Pertanyaan: Apa parameter pertama dari array string dalam parameter metode utama?
Jawaban: Arraynya kosong, tanpa elemen apa pun. Tidak seperti C atau C ++, elemen pertama adalah nama program secara default. Jika baris perintah tidak memberikan parameter apa pun, array string dalam metode utama kosong, tetapi tidak nol.
PERTANYAAN: Bagaimana menentukan apakah array itu nol atau kosong?
Jawaban: Nilai output array.length. Jika 0, array kosong. Jika nol, pengecualian pointer nol akan dilemparkan.
PERTANYAAN: Dapatkah beberapa kelas diizinkan untuk memiliki pada saat yang sama dan memiliki metode utama dalam program ini?
Jawab: Ya. Ketika program berjalan, kami akan menentukan nama kelas yang sedang berjalan. JVM hanya akan mencari metode utama di kelas yang Anda tentukan. Oleh karena itu, tidak ada konflik penamaan antara beberapa kelas yang memiliki metode utama.
Pertanyaan: Kapan variabel statis memuat? Mengkompilasi atau runtime? Berapa waktu pemuatan blok kode statis?
Jawaban: Ketika class loader memuat kelas ke JVM, variabel statis akan dibuat, yang tidak ada hubungannya dengan apakah objek dibuat. Ruang memori akan dialokasikan ketika variabel statis dimuat. Kode blok kode statis hanya akan dieksekusi sekali ketika kelas diinisialisasi untuk pertama kalinya. Kelas dapat memiliki beberapa blok kode statis, itu bukan anggota kelas, tidak memiliki nilai pengembalian, dan tidak dapat dipanggil secara langsung. Blok kode statis tidak dapat berisi ini atau super, mereka biasanya diinisialisasi dengan variabel statis.
PERTANYAAN: Dapatkah kelas memiliki beberapa metode utama?
Jawaban: Ya, tetapi hanya satu metode utama yang memiliki tanda tangan berikut:
public static void main (string [] args) {}
Kalau tidak, program tidak akan dikompilasi. Kompiler akan memperingatkan Anda bahwa metode utama sudah ada.
Pertanyaan: Izinkan saya memperkenalkan secara singkat cara kerja JVM?
Jawaban: JVM adalah komputer abstrak. Sama seperti komputer nyata, mereka pertama -tama akan menyusun file .java ke dalam file .class (file .class adalah file bytecode), dan kemudian menggunakan juru bahasa untuk memuat bytecode.
Pertanyaan: Bagaimana jika nilai -nilai dua variabel dipertukarkan di tempatnya?
Jawaban: Pertama tambahkan dua nilai dan tetapkan nilai ke variabel pertama, lalu kurangi variabel kedua dari hasil dan tetapkan nilai ke variabel kedua. Kemudian kurangi variabel kedua dengan variabel pertama dan tetapkan nilai ke variabel pertama secara bersamaan. Kodenya adalah sebagai berikut:
int a = 5, b = 10; a = a+b; b = ab; a = ab;
Gunakan XOR untuk beralih. Metode pertama juga dapat menyebabkan luapan. Metode XOR adalah sebagai berikut: int a = 5, b = 10; a = a+b; b = ab; a = ab;
int a = 5; int b = 10;
a = a ^ b;
b = a ^ b;
a = a ^ b;
Pertanyaan: Apa itu enkapsulasi data?
Jawaban: Salah satu cara untuk merangkum data adalah dengan membuat set dan mendapatkan metode di kelas untuk mengakses variabel data objek. Secara umum, variabel bersifat pribadi, sedangkan metode GET dan Set adalah publik. Enkapsulasi juga dapat digunakan untuk memverifikasi data saat menyimpan data, atau untuk menghitung data, atau menggunakannya sebagai introspeksi (seperti menggunakan JavaBeans dalam struts). Mengenak data dan fungsi ke dalam struktur terpisah disebut enkapsulasi data. Enkapsulasi sebenarnya merangkum data dan metode operasi terkait ke dalam unit independen, sehingga data dapat diakses menggunakan metode terkait ini. Enkapsulasi memberikan keamanan data, yang sebenarnya merupakan cara untuk menyembunyikan data.
Pertanyaan: Apa API refleksi? Bagaimana cara diimplementasikan?
Jawaban: Refleksi mengacu pada fungsi untuk dapat melihat status dan karakteristik kelas selama runtime dan mampu melakukan manajemen dinamis. Fungsi-fungsi ini disediakan melalui beberapa API refleksi kelas bawaan, seperti kelas, metode, bidang, konstruktor, dll. Contoh Penggunaan: Gunakan metode GetName dari Java Reflection API untuk mendapatkan nama kelas.
PERTANYAAN: Apakah JVM itu sendiri akan mempertahankan cache? Apakah itu dialokasikan objek di tumpukan, atau apakah tumpukan sistem operasi atau tumpukan yang dikelola oleh JVM itu sendiri? Mengapa?
Jawaban: Ya, JVM itu sendiri mengelola cache, yang membuat objek di tumpukan dan kemudian merujuk objek -objek tersebut di tumpukan.
Pertanyaan: Apa itu memori virtual?
Jawaban: Memori virtual juga disebut memori yang diperluas, dan sebenarnya tidak ada memori fisik yang nyata.
PERTANYAAN: Bisakah metode ini statis dan disinkronkan secara bersamaan?
Jawab: Ya. Jika Anda melakukan ini, JVM memperoleh kunci pada instance java.lang.class yang terkait dengan objek ini. Melakukan hal itu sama dengan:
disinkronkan (xyz.class) {
}
Pertanyaan: Apa perbedaan antara String dan StringTokenizer?
Jawaban: StringTokenizer adalah kelas alat yang digunakan untuk membagi string.
StringTokenizer st = new StringTokenizer ("Hello World"); while (st.hasmoretokens ()) {System.out.println (St.NextToken ());}
Keluaran:
Halo
Dunia
Pertanyaan: Apa karakteristik variabel transien?
Jawaban: Variabel transien tidak akan diserialisasi. Misalnya, ketika kelas yang mengimplementasikan antarmuka serializable diserialisasi ke ObjectStream, variabel tipe transien tidak akan ditulis ke aliran. Pada saat yang sama, ketika dideserialisasi kembali, nilai variabel yang sesuai adalah nol.
Pertanyaan: Wadah mana yang menggunakan tata letak perbatasan sebagai tata letak default mereka?
Jawaban: Jendela, bingkai, dialog.
Pertanyaan: Bagaimana cara memahami apa itu sinkronisasi?
Jawaban: Sinkronisasi digunakan untuk mengontrol akses sumber daya bersama antara beberapa utas untuk memastikan bahwa hanya satu utas yang dapat mengakses sumber daya ini secara bersamaan. Dalam program multi-threaded yang dilindungi secara sinkron, ketika utas memodifikasi variabel bersama, utas lain juga dapat menggunakan atau memperbarui nilainya. Sinkronisasi menghindari generasi data kotor.
Menyinkronkan metode:
Metode Void Sinkronisasi Publik1 () {// Kode Terkait Metode yang Tepat.}Menyinkronkan blok kode di dalam metode:
myfunction publik () {disinkronkan (ini) {// kode yang disinkronkan di sini. }}Di atas adalah kompilasi informasi untuk pertanyaan wawancara Java. Kami akan terus menambahkan informasi yang relevan di masa mendatang. Terima kasih atas dukungan Anda untuk situs ini!