Telefon
WhatsApp

Kaliteli Hizmet, Güvenilir Ödeme ve Hızlı Teslimat Güvencesi..

İLETİŞİM

İş Görüşmelerinde En Sık Sorulan Java Mülakat Soruları ve Cevapları

İş Görüşmelerinde En Sık Sorulan Java Mülakat Soruları ve Cevapları


En sık sorulan Java mülakat soruları ve cevapları neler?
Java mülakatlarına girmeden önce sizin için hazırladığımız dünya genelinde sorulan Java mülakat soruları ve cevaplarına hızlıca göz atabilirsiniz.

Sun Microsystems’in 1995 yılında duyurmuş olduğu ve dünya üzerinde köklü bir geçmişe sahip Java programlama dili, sünya genelinde 9 milyonu aşan geliştiriciye sahiptir.
Java, ağ uygulamalarının temelini oluşturarak gömülü ve mobil uygulamalar, oyunlar, Web tabanlı yazılım geliştirme için küresel standarttır.2020 yılında yazılım geliştirme teknolojilerinde popülerliğini koruyan teknolojilerden biri de Java’dır.

“Java öğrenirken nasıl yol izlemeliyim?” sorusuna yanıt arıyorsanız, Java Guides tarafından hazırlanan “Java Road Map” videosu ile kendinize yol haritası oluşturabilirsiniz. Sizin için hazırladığımız Java temel kaynaklar listesine göz atarak sıfırdan Java öğrenmeye başlayabilirsiniz.

En Popüler Java Mülakat Soruları ve Cevapları
???? Java’nın en temel özellikleri nelerdir ?
Taşınabilir: Java, “Write once, run anywhere” yaklaşımını destekler ve her makinede çalıştırılabilir.
Platform Bağımsız: Java, platformdan bağımsız programlama dilidir.
Güvenli: Java, açık işaretçiler kullanmadığı için güvenlidir. ByteCode ve Exception işleme konseptini sağlaması da onu daha güvenli hale getirir.
Sağlam: Java, güçlü bellek yönetimi sistemi kullanır bu durum Java’yı güçlü hale getirir.
Yorumlanabilir: Java, programın yürütülmesi için derleyiciyle birlikte Just-in-time (JIT) yorumlayıcısını kullanır.
Yüksek Performans: Java, diğer geleneksel yorumlanmış programlama dillerinden daha hızlıdır çünkü Java bayt kodu yerel koda daha yakındır.
Çok iş parçacıklı: Birden çok iş parçacığı tanımlama sayesinde birçok görevi aynı anda gerçekleştiren Java programları yazılabilir.
Dağıtılmış: Java’nın dağıtılma özelliği sayesinde internetteki herhangi bir makineden yöntemleri arayarak dosyalara erişmemizi sağlanabilir.

???? JVM, JRE ve JDK arasındaki farklar nelerdir?
JVM(Java Virtual Machine): Java bayt kodunu çalıştırmak için bir çalışma zamanı ortamı sağlar.

JRE(Java Runtime Environment): Java programlarını çalıştırmak için gereksinimlerini içeren, içerisinde JVM’yi ve çekirdek dosyalarını bulunduran yazılımdır.

JDK(Java Development Kit): Java uygulamaları geliştirmek için gerekli araçları içeren geliştirici paketidir.

jdk-jvm
???? Classloader nedir?
Java programını her çalıştırdığımızda, ilk olarak sınıf yükleyici tarafından yüklenen ve asıl amacı sınıf dosyalarını yüklemek olan JVM alt sistemidir. Java’da üç sınıf yükleyici vardır.

Bootstrap ClassLoader :Extension classloader’ın üst sınıfı olan birinci sınıf yükleyicidir.
Extension ClassLoader : Bootstrap’ın alt sınıf yükleyicisi ve System classloader’ın üst sınıf yükleyicisidir.
Sistem / Uygulama ClassLoader : Extension sınıf yükleyicisinin alt sınıf yükleyicisidir.
????Java’da pointerlar neden kullanılmaz?
Java, kod basitliği ile bilindiğinden, işaretçi kavramının eklenmesi çelişkili olacaktır. Güvenli olmadığı için ve karmaşıklığını artırdığı için Java’da pointerlar kullanmaz.
JVM örtük bellek tahsisinden sorumlu olduğu için, kullanıcının belleğe doğrudan erişimini önlemek için Java’da işaretçilerin kullanılması önerilmez.

????Java erişim belirleyiciler nedir?
Sınıfların diğer farklı sınıflardaki metotlara erişim sağlaması veya bir sınıftaki özel bir metoda başka bir sınıfın erişim sağlayamaması için erişim belirleyicileri kullanılır.
Java’da erişim belirleyiciler 4 çeşittir;
public: Her yerden erişilebilir.
protected: Sınıf, paket ve altsınıflar tarafından erişilebilir
private: Sadece sınıf içerisinden erişilebilir.
default(erişim belirleyici yok): Bir erişim belirleyici kullanmadan sınıf ve paket içerisinden erişilebilir.

java
????Java’da this() ve super() arasındaki fark nedir?
this():
Bir sınıfın mevcut örneğini temsil eder.
Aynı sınıfın varsayılan kurucusunu çağırmak için kullanılır.
Mevcut sınıfın yöntemlerine erişmek ve sınıf örneğini işaret etmek için kullanılır.

super():
Bir üst/temel sınıfın geçerli örneğini temsil eder.
Üst/temel sınıfın varsayılan yapıcısını çağırmak için kullanılır.
Temel sınıfın yöntemlerine erişmek ve üst sınıf örneğini işaret etmek için kullanılır.

????Java’da sonsuz döngü nedir? Bir örnekle açıklayın.
Bu tür bir döngü, programlama hatasının sonucu olabilir veya uygulama davranışına bağlı olarak kasıtlı bir eylem de olabilir.

Sonsuz bir döngü içeren döngü for ile:
for(;;){} şeklinde oluşturulur.

 

while ile oluşturulabilecek en kısa sonsuz döngü:
while (true)
System.out.println(“merhaba”);
şeklinde oluşturulur.

????Object-oriented programming kavramı nedir?
Nesne tabanlı programlama (OOP); yazılım tasarımını veri ve nesneler etrafında düzenleyen bir programlama dili modelidir.
Temel OOPL Kavramları:
Abstraction: Bir sınıfta davranış ve özelliklerin tanımlanmasıdır.
Encapsulation: Kapsülleme sayesinde, hangi özellik ve davranışların program dışına gösterilip gösterilmeyeceğini belirleriz.
Inheritance: : Sınıfların birbirinden türeme durumudur. Farklı sınıflar arasındaki ilişki “is a” şeklinde ifade edilir.
Inferface: Uygulamaların donanım yapılarıyla ve birbirleriyle iletişim kurması için kullandığı bir yapıdır. Zorunlu olarak tanımlanması gereken metotları belirtir.
Polymorphism: Methodların objeye göre farklı çıktılar üretmesi veya farklı işler yapmasıdır. Örneğin: Alt sınıfların farklı davranışları göstermesi.

 

????Veri tipleri ve değişkenler nelerdir?
Local Variable: Java’da method içerisinde tanımlayabildiğimiz değişkenler local değişkendir.

Class Variable: Statik değişkenler olarak bilinen sınıf değişkenleri; sınıf içerisinde bir yöntem, yapıcı olarak veya bloğun dışında statik anahtar sözcükle tanımlanır.

Instance Variable: Class içerisinde tanımlayabildiğimiz, statik olmayan değişkenlere instance variable denir.

public class VariableExample{
int myVariable;
static int data = 30;

public static void main(String args[]){
int a = 100;
VariableExample obj = new VariableExample();

System.out.println("Value of instance variable myVariable: "+obj.myVariable);
System.out.println("Value of static variable data: "+VariableExample.data);
System.out.println("Value of local variable a: "+a);
}
}
????Java’da equals () ve == arasındaki fark nedir??
Aralarındaki temek fark, birinin metot diğerinin operatör olmasıdır.
(==) operatörünü referans karşılaştırması için ve equals() metotunu ise içerik karşılaştırması için kullanırız.
(==) operatörü, her iki nesnenin bellek konumunlarının aynı olup olmadığını denetlerken equals() nesnelerdeki değerlerin karşılaştırılmasını değerlendirir.

????Overloading ve override nedir?
Overloading: Aynı isime sahip birden fazla metod kullanma durumuna overloading denir. Bu durumda, metotları birbirinden ayıran fark, aldıkları parametre olur. Bir metodu overloading yaparken aynı işlemi veya benzer işlemleri de gerçekleştirecek şekilde overloading yapmalısınız.

Override: Bir metodun tekrardan yazılması anlamına gelir. Kalıtım ile aldığımız bir metodu değiştirmek istersek o zaman override etmemiz yani yeniden yazmamız gerekir.

java
????JIT derleyicisi nasıl çalışır?
JIT derleyicisi, program çalıştırıldıktan sonra çalışır ve çalıştırılacak bytecode’un sadece kullanılacak kısmının derlenerek çalıştırılmasını sağlar.

????”Array ve ArrayList” arasındaki fark nedir?
Diziler, bellek üzerinde aynı tipte veri tutabilmemizi sağlar.
ArrayList ise dizilerin eksik yanlarını gidermek için oluşturulmuştur.
ArrayList’in en önemli özelliği, içerisinde farklı değişken türlerini barındırıyor olmasıdır.

Diziler sabit uzunlukta tanımlanırlar. ArrayList’te ise böyle bir koşul yoktur.

Diziler tanımlanırken içerisine dahil edeceğimiz elemanların türünü belirtmemiz gerekir. ArrayList’te böyle bir koşul yoktur.

????Break ve continue ifadeleri arasındaki fark nedir?
Break: Switch ve loop ifadelerinde kullanılabilir ve bu deyimlerin yürütüldüğü an da sona ermesine neden olur.

Continue: Yalnızca döngü ifadeleriyle kullanılabilir ve döngüyü sonlandırmaz, sadece döngünün bir sonraki yinelemeye atlamasına neden olur.

Örnek:

public class JavaTest{
public static void main(String args[]){
System.out.println("Break Statement\n");
for(int i=1;i<=5;i++){
if(i==4) break;
System.out.println(i);
}
System.out.println("Continue Statement\n");
for(int i=1;i<=5;i++){
if(i==1) continue;
System.out.println(i);
}
}
}
????En kısa tanımıyla “object ve class” nedir?
Sınıf: Nesnelerin işlev ve özelliklerini tanımlar.

Nesne: Nesne, sınıfın davranışını belirler, bu durumda nesne bir sınıfın örneğidir diyebiliriz.


????”public static void main(String[ ] args)” neden kullanmalıyız?
JVM kodları çalışırken yazılmış classlar arasından başlayacağı noktayı bilmesi gerekmektedir. JVM, publicstaticvoidmain(String[ ] args) metodunu arar ve oradan çalışmaya başlar. Java mülakat soruları listesinde en sık sorulan sorulardan biridirç

Public, erişim durumunu belirtmek için kullanılan bir erişim belirleyicidir.
Main metodu, programın ana metodu olarak geçer.
Static : Java’nın sınıf tabanlı olduğunu tanımlayan bir anahtar kelimedir.
Void, herhangi bir değer döndürmeyecek yöntemi tanımlar.
String args []: Ana metoda aktarılan parametredir.

????yield() methodunu neden kullanırız?
Statik bir metot olan yield(), iş parçacığının durdurulmasını ve eşit öncelikli iş parçacığına çalışma şansı vermek için kullanılır.

yield
????Java’da singleton sınıfı nedir ve bir sınıfı nasıl singleton yapabiliriz?
Singleton Design Pattern, bir sınıftan yalnızca tek bir nesne oluşturulması gerektiği durumlarda kullanılır.

Singleton, singleton nesnesinin sistem içerisinde yalnızca bir kez oluşturulma gereksinimi durumunda kullanılır. Buna örnek olarak: Bir web sayfasının ilk kez yüklenirken yapması gereken veritabanı işlemleri verilebilir.

????Java’da thread nasıl oluşturulur?
Java’da thread oluşturmak için iki seçenek vardır:
1- Thread sınıfını genişleterek: Thread java.lang.Thread sınıfında mevcuttur. Bir thread oluşturmak için, bir iş parçacığı sınıfını genişletmeniz ve çalıştırma yöntemini geçersiz kılmanız gerekir.

public class Addition extends Thread {
public void run() {
}
}
2-Runnable Interface Uygularak: Bunu yapmak için, içinde tanımlanan run () yöntemi için uygulama sağlama ihtiyacı vardır.

interface. For example,
public class Addition implements Runnable {
public void run() {
}
}

????Java thread yaşam döngüsü nasıl gerçekleşir?
Bir diğer Java mülakat sorusu ise: “Thread yaşam döngüsü nasıl gerçekleşir?”

New: Yaşam döngüsünün ilk durumunda, iş parçacığı örneği oluşturulur ve start () yöntemi henüz çağrılmamıştır.
Runnable – start () yöntemini çağırdıktan sonra, run () yöntemini çağırmadan önce bir iş parçacığı çalıştırılabilir durumdadır.
Running – İş parçacığı, run () yöntemi çağrıldıktan sonra çalışma durumuna girer. Bu, iş parçacığının yürütülmeye başladığı zamandır.
Non-Runnable- İş parçacığı canlı olmasına rağmen çalışamaz.
Terminated – İş parçacığı, run () yöntemi yürütülmesini tamamladığında sonlandırılmış duruma girer.