Bu Java Mülakat Sorularıyla Esnek Bir Programcı Olun

java-interview-questions

Anlıyorum - hayalinizdeki o iş görüşmesini beklemek çok sinir bozucu bir hale gelebilir. Günleri, saatleri ve sonra dakikaları saymaya başlarsınız. Sonunda da gelecekteki potansiyel işvereninizle oturup şirketteki pozisyonunuzu konuşmaya başlarsınız. Bazen tedirginliğiniz kontrolü ele geçirebilir ve kendinizi zor bir durumda bulabilirsiniz. Ne diyeceğinizi ya da nasıl cevap vereceğinizi bilemeyebilirsiniz. Bundan kaçınmak ve görüşmeyi başarıyla bitirmek için ise hazırlıklı gelmelisiniz. Java mülakat soruları ile ilgili olan bu rehber de size tam da bu konuda yardımcı olacak.

Sizler için en çok sorulan temel Java mülakat sorularını bir araya getirdim. Her seviyeden Java örnek sorular bu rehberde ele alınacak. Sizlerin onları öğrenmeniz ve hatırlayabilmeniz için de gruplara ve bölümlere ayırdım. Bu sorular (daha doğrusu cevaplar) sizlere mülakatınızını iyi geçmesi için yardımcı olacak. Yazılım mülakat soruları tedirginlik verici olabilir ve bu konuda sizin için elimden geleni sunacağım. Böylece hiç vakit geçirmeden Java geliştiricisi olabileceksiniz!

Giriş

Bir iş görüşmesinde karşınıza çıkabilecek temel Java mülakat soruları ile başlayacağız. Java 8 mülakat sorularıyla başlayacağız ve sizlere deneyimli geliştiriciler için Java mülakat soruları ve cevaplarını sunacağım. Yazılım mülakat soruları farklı seviyelerde olur ve hem temel hem de ileri seviye olanları ele alacağız. Gene de en baştan başlayalaım ve öncelikle temelleri ele alalım.

Java Mülakat Soruları: Temeller

Soru 1: Java Nedir?

Basit bir soru gibi geliyor, değil mi? Eh, işvereniniz büyük ihtimalle net ve doğrudan sonuca varan bir cevap isteyecektir, o yüzden onu bunu verelim.

Java, bir nesne yönelimli, yüksek seviye güvenlikli bir programlama dilidir. 1991’de James Gosling isimli bir adam tarafından oluşturuldu. Java, “TYKÇ” sloganını esas alarak üretilmiştir - “tek yazım, kesintisiz çalışma”. Çok esnek ve yüksek performanslı olmasıyla bilinir.

Soru 2: Java tam anlamıyla nesne yönelimli midir?

Hayır, değil. Java nesne olmayan bazı veri türlerini (chat, byte, float) kullanır.

Soru 3: Akla gelen bazı önemli Java özelliklerini sayın.

Yeni başlayan programcı ve geliştiriciler için, en önemli özellik basitliktir. Java kolay öğrenilip uzmanlaşılabilen bir dil olarak bilinir, özellikle piyasadaki diğer bazı dillerle karşılaştırıldığında. Yazılım mülakat soruları bu özellikleri anlatmanızı isteyebilir.

Java aynı zamanda diğer programlama dilleriyle karşılaştırıldığı zaman çok güvenli olarak görülür. Bunun sebebi JVM adlı bir yorumlayıcıs olmasıdır. Bu yorumlayıcı Java ile birlikte yüklenir ve sürekli bilgisayarınızı internetten güvenlik güncellemeleriyle doldurur.

Ek olarak da, Java tamamen seyyar bir programdır. Java’nın baz alınarak oluşturulduğu “TYKÇ” prensibi sayesinde istediğiniz makineye aktarılabilir ve orada çalıştırılabilir. Tamamen esnek ve çok işlevlidir.

Soru 4: Java 8’i bu kadar özel yapan nedir?

İş görüşmenizde, büyük ihtimalle Java 8 mülakat sorularıyla karşılaşacaksınız (büyük ihtimalle karşılaştırma soruları olacak). Programlama diline getirilmiş olan bu güncelleme önemli olanlardan biriydi. Bununla birlikte hangi özelliklerin geldiğini bilmek size çok faydalı oalcaktır.

Java 8, String için dil desteğini getirdi. Tarih/Zaman API’sine ekleme ve güçlendirme sundu ve JVM’yi daha da geliştirtirerek ilerletti. Bu güvenlik dahil Java’nın üzerine kurulduğu birçok şeyin temel alındığı sistemdir. Genel olarak Java 8 bu programlama dilini daha erişilebilir ve güncel programlama dilleriyle daha uyumlu hale getirdi.

Bu büyük ihtimalle ana Java 8 mülakat sorularından birisi olacak. Java örnek sorular genellikle güncel olur. Aklınızda bulundurmanız gereken şey Java 8’in muazzam bir performans ve güvenlik güncellemesi olması. Bunu hatırlarsanız büyük ihtimalle sizin için yeterli olacaktır.

Soru 5: Java’daki ‘aceess specifiers’ nedir?

Toplamda dört tane erişim belirteci vardır. Bunlardan birinin Java mülakat soruları olarak karşınıza çıkması muhtemeldir. Bunlar: public, private, protected ve default’tur (açık, özel, korunmalı ve varsayılan).

Açık belirteci metotla birlikte herhangi bir sınıfın erişilebilmesini sağlar (adını da böyle almıştır). Buna karşılık olarak özel belirteçler de yalnızca belirli bir sınıfın içinden erişim sağlar. Korunmalı olan da bir şekilde sınıfla bağlantı kurar: Ya sınıfın içinden ya da bir yan sınıftan ya da yalnızca pakedin içinden. Son olarak da varsayılan, standart kapsamı temsil eder ve yalnızca aynı paketten erişim sağlar.

Soru 6: ‘Constructor’ nedir?

Sık sorulan Java mülakat soruları içinden biri de, belirli bir nesneyi başlatan ‘constructor’dur. Java’nın iki tip constructor’u vardır: Defaul olan ve bir de parameterized olan.

Soru 7: ‘Nesne’ nedir?

Java’daki nesne bir durum ve davranışa sahiptir. Nesnenin en yaygın ve anlaşılabilir tanımı bir sınıfın anlık durumudur.

Soru 8: ‘equals()’ ile ‘==’ arasındaki fark nedir?

public class Equaltest {

public static void main(String[] args) {

String str1= new String(“HELLO”);

String str2= new String(“HELLO”);

if(Str1 == str2)

{

System.out.println("String 1 == String 2 is true");

}

else

{

System.out.println("String 1 == String 2 is false");

String Str3 = Str2;

if( Str2 == Str3)

{

System.out.println("String 2 == String 3 is true");

}

else

{

System.out.println("String 2 == String 3 is false");

}

if(Str1.equals(str2))

{

System.out.println("String 1 equals string 2 is true");

}

else

{

System.out.prinltn("String 1 equals string 2 is false");

}

}}

Soru 9: Java’da farklı nesne referansları neler olabilir?

Bütün Java mülakat soruları içerisinde kolay olarak kabul edilebilecek bir tek bu var. Java’da bütün nesneler null’dur.

Soru 10: JDK, JVM ve JRE arasındaki farklar nelerdir?

JDK Java Development Kit demektir. Java’nın program derlemek için kullandığı ana araçtır. Bu pakedin içinde ihtiyacınız olan bütün araçlar bulunmaktadır.

Daha önce zaten JVM’nin ne olduğundan bahsetmiştim. Java Virtual Machine anlamına gelir. Bu makine Java bytecode’unun içinde çalışacağı ortamı oluşturur.

JRE ise Java Runtime Environment anlamına gelir. Bu tür bir ortam JVM’nin sağladığı türdendir. Java bytecode’unun çalışması ve işlemesi için gereklidir.

Bazı temel basit Java mülakat soruları konusunu ele aldığımıza göre, artık deneyimli geliştiriciler ve programcılar için olan Java mülakat soruları konusuna geçiş yapabiliriz. Bu sorular genellikle kodlamayla alakalı olacak.

İleri Seviye Sorular

Soru 1: ‘method overloading’ ve ‘method overriding’ arasındaki farklar nelerdir?

Bir “method overloading” durumunda, aynı sınıfta olan metotlar aynı ismi de paylaşırlar, ancak parametreleri farklıdır. Bu diğer şeylerden daha fazla metodun uzantılarının davranışlarıyla ilgilidir. Tersi bir durum olan “method overriding”de ise, alt sınıflar tam olarak isme ve parametrelere aittir. Burada amaç zaten var olan metodun davranışını değiştirmektir.

java-interview-questions

Bir örnek vermek gerekirse, işte method overloading:

class Adder {

Static int add(int x, int y)

{

return x+y;

}

Static double add( double x, double y)

{

return x+y;

}

public static void main(String args[])

{

System.out.println(Adder.add(33,33));

System.out.println(Adder.add(16.4,16.8));

}}

Bu da method overriding:

class Dog {

void run(){

System.out.println(“dog is sleeping”);

}

Class Doberman extends Dog{

void run()

{

System.out.prinltn(“doberman is sleeping at night”);

}

public static void main( String args[])

{

Dog b=new Doberman();

b.run();

}

}

Soru 2: Bu Java programının çıktısı nedir?

public class Test

{

Test(int x, int y)

{

System.out.println("x = "+x+" y = "+y);

}

Test(int x, float y)

{

System.out.println("x = "+x+" y = "+y);

}

public static void main (String args[])

{

byte x = 30;

byte y = 65;

Test test = new Test(x,y);

}

}

Doğru cevap da şu:

a = 30 b = 65

Soru 3: ‘main () method’ olmadan bir programı çalıştırmak mümkün müdür?

Evet, bunu yapmak mümkün. Böyle bir programı çalıştırmanın en yaygın biçimlerinden biri de statik blok kullanmaktır.

Soru 4: ‘Runtime polymorphism’ nedir?

Bir “runtime polymorphism” üzerine yazılmış bir metoda verilmiş olan spesifik bir getirmenin compile time yerine runtime içinde çözülmesi işlemine denilir. Bir örnek:

class Tree {

void run()

{

System.out.println(“tree is standing”);

}

}

class Willow extends Tree {

void run()

{

System.out.prinltn(“willow is standing on a hill”);

}

public static void main(String args[])

{

Tree b= new Willow(); //upcasting

b.run();

}

}

Soru 5: ‘Kalıtım’ yani Java inheritance nedir?

Java inheritance nedir? Bu terim dürüst olmak gerekirse neredeyse kendi kendini açıklayan bir ada sahip: Kalıtım bir nesne özelliklerini ve parametrelerini bir diğerinden (farklı bir sınıftan) aldığı zaman denilir. Yukarıda bahsedilen method overriding bunu kullanır. Kalıtımın ana fikri zaten var olan sınıfların üzerine yenilerini inşa edebileceğinizdir. Farklı kalıtım türleri vardır, ancak Java yalnızca dört tanesini destekler (birden fazla kalıtım desteklenmez). Neden birden fazla kalıtım desteklenmiyor? Aslında tek bir tane spesifik cevabı var. O da programı basitleştirmek. Bu ayrıntıyı Java mülakat soruları konusunu hatırlamanız iyi olur. Java inheritance nedir sorusu sık sık karşınıza çıkabilir

Soru 6: Java’daki diğer bütün sınıflar için olan süpersınıfı söyleyin.

Bu da bir diğer kolay Java mülakat soruları içinden biri. Gene de bunun bir temel Java sorularından birisi olduğunu da size hatırlatmalıyım. Java’da süpersınıfın adı nesne sınıfı’dır.

Soru 7: Java’da ‘super’ ne demektir?

Java’da “süper” ana sınıf nesnesinde hemen bir noktaya referans verebilmek için kullanılır. Bu komut aynı zamanda anında ana sınıf metodunu ve constructor’u getirmek için de kullanılabilir.

Soru 8: Bu Java programının çıktısı nedir?

class Animal

{

public Animal()

{

System.out.println("Animal class constructor called");

}

}

public class Zebra extends Animal

{

public Zebra()

{

System.out.println("Zebra class constructor called");

}

public static void main (String args[])

{

Zebra e = new Zebra();

}

}

Cevap:

Animal class constructor called

Zebra class constructor called

Bunlar çok yaygın Java mülakat soruları olarak bilinir. Her zaman değişkenlere dikkat edin. Son cevabı bunlar belirliyor.

Soru 9: Java’da ‘association’ nedir?

Çok sık sorulan bir diğer Java mülakat soruları içinden birisi. Bu ilk başta çok da ileri seviye gibi görünmeyebilir. Şu da var ki aggregation ve composition gibi şeyler association’dan geliyor, o yüzden bu tabiri anlamak daha kolay.

Association bütün nesnelerin kendi belirli sürelerinin olması ve belirli bir sahibinin olmaması durumudur. “One” ve “many” arasında değişebilir.

Soru 10: ‘Nesne klonlamak’ nedir?

Büyük ihtimalle farketmişsinizdir, bu Java mülakat soruları çoğu kendi kendini cevaplayan türden. Bu soru da buna istisna değil.

“Nesne klonlama” komutu bir nesnenin tamamen aynısını oluşturmak içindir. Bu da nesne sınıfından clone() metodu kullanılarak yapılır.

Artık sizinle en yaygın Java mülakat sorularını paylaştığıma göre bir adım geri gidip iş görüşmenize nasıl hazırlanabileceğiniz hakkında biraz konuşalım.

Mülakat için Tavsiyeler

Şimdi sizlere kullanabileceğiniz birkaç tavsiye vereceğim. Bunları iş görüşmenize gitmeden önce kullanabilir ve istediğiniz pozisyonu elde etmek için uygulayabilirsiniz. Her ne kadar Java örnek sorular ve çözümlerini öğrenmek önemli olsa da bu tür tavsiyelere de ihtiyacınız var.

Büyük ihtimalle bütün o iyi bir gece uykusu çekin ve sağlıklı bir kahvaltı yapın senaryolarına yabancı değilsinizdir. Mutlaka ki bunları binlerce defa zaten duymuşsunuzdur. Size söylemek istediğim tek şey sakın gece 3’te kalkıp temel Java mülakat soruları konusunu yeniden gözden geçirmemeniz gerektiğidir. Hele hele mülakatınız sabahın 8’indeyse. Strese girmeye gerek yok. Mülakatla ilgili 24 saat öncesinden düşünmemeye çalışın. Notlarınızı ancak mülakata giderken yolda gözden geçirin.

java-interview-questions

Ayrıca oradayken de rahat davranmaya çalışın. Eğer işvereniniz tedirgin olduğunuzu görürse saklayacak bir şeyleriniz olduğu için kaygılandığınızı düşünebilir. Belki de beceriksizliğinizi sakladığınızı düşünecektir? Çok kendini beğenmiş de davranmayın. Özgüvenli davranmakla doğaçlama yapmaya yer vermek arasındaki mükemmel dengeyi bulun.

Son olarak da Java mülakat sorularınızı sanki büyük bir duvarmış gibi düşünmeyin. Her soruya hatasızca cevap vermek zorunda değilsiniz. İşverenler hem becerilerinizi HEM DE kişiliğinizi mülakat sırasında ölçerler. Bütün sorulara mükemmel cevap verememek bir tür hava atan ya da kendini beğenmiş birisi gibi görünmekten iyidir.

Sonuçlar

Programcılara olan talebin yükselmesiyle birlikte, birden fazla şirket ve bireysel işveren bilgisayar kodlama alanında deneyimli profesyoneller arıyor. Java da dünya çapındaki en popüler programlama dillerinden biri olduğu için (esnekliği, güvenli olması ve basitliği sayesinde) çoğu programcı bu dili kendi temel programlama dilleri olarak seçiyor. Bu rehberde ise sizlere bazı Java mülakat soruları ve bunların cevaplarını gösterdim. İş görüşmeniz sırasında çok daha fazla sorulabilecek olan Java mülakat soruları var. Ancak eğer bu anlattıklarımın cevaplarını biliyorsanız, büyük ihtimalle doğru yoldasınız demektir.

Bazı temellerden bahsettik, Java 8’in kendisini ve neden özel olduğunu anlattık. Deneyimli programcılar ve geliştiriciler için olan bazı Java mülakat sorularına örnekler verdim. Artık sizin için geriye kalan tek şey gidip o hayal ettiğiniz pozisyon için iş görüşmesine katılmak kaldı!

Umarım bu Java kodlama mülakat soruları size yardımcı olmuştur. Sizlere o işi elde etme konusunda bol şans ve en iyi dileklerimi iletiyorum!

Dürüst geri bildirimde bulunun

Gerçek fikrinizi bırakarak en iyi online eğitim platformunu seçmek isteyen binlerce insana yardımcı olun. Pozitif veya negatif de olsa tüm geri bildirimler dürüst oldukları sürecek kabul ediliyor. Taraflı geri birimleri veya spam'leri yayınlamıyoruz. Deneyiminizi, fikrinizi veya tavsiyenizi paylaşmak istiyorsanız sahne sizin!

SSS

Hangi online ders sitesini inceleyeceğinizi nasıl seçiyorsunuz?

Piyasa boyutuna, popülerliğe ve en önemlisi kullanıcılarımızın taleplerine veya belli online eğitim platformları hakkında gerçek MOOC incelemesi okumak isteme talebine göre online eğitim platformlarını seçiyoruz.

E-öğrenme incelemelerinizi yazmadan önce ne kadar araştırma yapıyorsunuz?

MOOC uzmanlarımız haftalarca araştırma yapıyor. Sonrasında farklı etkenler hakkında değerlendirmelerini yapabiliyorlar. Çok fazla zaman alsa da online eğitim platformundaki tüm gerekli özelliklerin denenmesi, test edilmesi ve gerçek verilere dayalı bir hükümde bulunulmasını garanti edebilmemiz için tek yol bu.

En iyi online eğitim platformlarını seçerken en önemli etken hangisi?

Tek bir etken seçmek yanlış olur. Öncelikler her kişinin değerlerine, isteklerine ve hedeflerine göre değişiyor. Biri için önemli olan bir özellik başkası için önemsiz olabiliyor. Tüm kullanıcıların öğrenme materyallerinin iyi kalitesi konusunda hemfikir olması bir online eğitim platformu olmazsa olmaz.

Bu e-öğrenme inceleme platformu diğerlerinden nasıl farklı?

Her MOOC inceleme platformu eşsizdir. Kendi hedefleri ve değerleri vardır. Bizim e-öğrenme incelemelerimiz %100 gerçektir ve dikkatli bir analizden sonra kaleme alınır. Çoğu e-öğrenme inceleme sitesinde bu bu özellik bulunmadığından bunu süper gücümüz gibi görüyoruz!

Gün
Saat
Dakika
Saniye