Temel Java Mülakat Soruları! Hemen Java Mülakat Sorularını Öğrenin
Temel Java Mülakat Soruları neler? Tüm Java sorularına bu kaynaktan öğrenebilirsiniz.
Temel Java Mülakat Soruları
Temel Java Mülakat Soruları nelerdir? Bu Java Mülakat Soruları blogunda, sizi mülakat sürecinde diğer adaylardan ayıracak en önemli Java programlama Soruları ve Cevapları listesini vereceğim. Java, dünya çapında yaklaşık 10 milyon geliştirici tarafından, Java’yı destekleyen 15 milyar cihaz için uygulamalar geliştirmek için kullanılıyor. Aynı zamanda Big Data gibi trend olan teknolojilerden, Mobil ve DTH kutular gibi ev cihazları için uygulamalar oluşturmak için de kullanılıyor. Bu nedenle bugün Java her yerde kullanılıyor! Bu, Java Sertifikasının programlama alanındaki en çok talep edilen sertifika olmasının nedenidir. Edureka Java Mülakat Soruları ve Cevapları videosu, Java Mülakatlarınızı ilk denemenizde geçmek için kendinizi hazırlamanıza yardımcı olacaktır.
Hadi en sık sorulan Java mülakat sorularından bazılarına bir göz atalım: S1. JDK, JRE ve JVM’yi açıklayın. S2. Java’da public static void main(String args[]) ne anlama gelir? S3. Java neden platform bağımsızdır? S4. Java neden %100 Nesne Yönelimli değildir? S5. Java’da sarmalayıcı sınıflar nedir? S6. Java’da yapıcılar nedir? S7. Java’da singleton sınıfı nedir ve bir sınıfı nasıl singleton yapabiliriz? S8. Java’da Array list ve Vector arasındaki fark nedir? S9. Java’da equals() ve == arasındaki fark nedir? S10. Java’da Heap ve Stack Bellek arasındaki farklar nelerdir?
Kariyerinizde öne geçmek için kendinizi geliştirmek mi istiyorsunuz? En Popüler Eğilim Gösteren Teknolojilere göz atın. Java mülakatlarında size güvence sağlayacak, doğru kelimeleri, doğru teknolojileri öğrenmeyi ve doğru cevapları hazırlamayı öğrenmek önemlidir. İşte bir sonraki seviyeye geçmek için sizi kolayca geçirecek en iyi Java mülakat sorularının kesin bir listesi.
Yakın zamanda bir Java mülakatına katıldıysanız veya kapsamadığımız ek sorularınız varsa, bunları Soru-Cevap Forumumuza göndermenizi öneririz. Uzman ekibimiz en kısa sürede size geri dönecektir.
Öyleyse, temel Java Mülakat Soruları ile başlayalım.
Fresherlar için Temel Java Mülakat Soruları:
Bir Java uzmanı olarak, doğru terimleri bilmek, doğru teknolojileri öğrenmek ve yaygın olarak sorulan Java Mülakat Sorularına doğru cevapları hazırlamak çok önemlidir. İşte bir sonraki seviyeye geçişi garanti edecek en önemli Java Mülakat Sorularının kesin bir listesi.
Yakın zamanda herhangi bir Java mülakatına katıldıysanız veya ele aldıklarımızın ötesinde ek sorularınız varsa, bunları QnA Forumumuza göndermenizi öneririz . Uzman ekibimiz en kısa sürede size dönüş yapacaktır.
O halde, ilk temel Java Mülakat Soruları seti ile başlayalım.
Yeni Öğrenciler için Temel Java Mülakat Soruları
S1. JDK, JRE ve JVM’yi açıklayın?
JDK | JRE | JVM |
Java Geliştirme Kiti anlamına gelir. | Java Runtime Environment anlamına gelir. | Java Sanal Makinesi anlamına gelir. |
Java programlarını derlemek, belgelemek ve paketlemek için gerekli araçtır. | JRE, Java bayt kodunun yürütülebileceği bir çalışma zamanı ortamını ifade eder. | Soyut bir makinedir. Java bayt kodunun yürütülebileceği bir çalışma zamanı ortamı sağlayan bir belirtimdir. |
JRE + geliştirme araçlarını içerir. | Fiziksel olarak var olan JVM’nin bir uygulamasıdır. | JVM üç gösterimi takip eder: Belirtim, Uygulama ve Çalışma Zamanı Örneği . |
S2. Java’da public static void main(String args[]) işlevini açıklayın.
Java’daki main(), herhangi bir Java programının giriş noktasıdır. Her zaman public static void main(String[] args) olarak yazılır .
- public : Public, bu yönteme kimlerin erişebileceğini belirtmek için kullanılan bir erişim değiştiricisidir. Genel, bu Yöntemin herhangi bir Sınıf tarafından erişilebilir olacağı anlamına gelir.
- static : Java’da sınıf tabanlı olduğunu tanımlayan bir anahtar kelimedir. main() Java’da statik yapılır, böylece bir Sınıf örneği oluşturmadan erişilebilir. main öğesinin statik yapılmaması durumunda, herhangi bir nesne yapılmadan önce JVM tarafından main () çağrıldığından ve yalnızca statik yöntemler doğrudan sınıf aracılığıyla çağrılabileceğinden derleyici bir hata verecektir .
- void : Metodun dönüş tipidir. Void, herhangi bir değer döndürmeyen yöntemi tanımlar.
- main : Yalnızca belirli bir imzaya sahip bir uygulama için başlangıç noktası olarak JVM tarafından aranan yöntemin adıdır. Ana yürütmenin gerçekleştiği yöntemdir.
- String args[] : Ana metoda aktarılan parametredir.
S3. Java neden platformdan bağımsızdır?
Java, temel işletim sisteminden bağımsız olarak herhangi bir sistemde çalışabilen bayt kodları nedeniyle platformdan bağımsız olarak adlandırılır.
S4. Java neden %100 Nesneye yönelik değildir?
Java %100 Nesne yönelimli değildir çünkü boolean, byte, char, int, float, double, long, short gibi nesne olmayan sekiz ilkel veri türünü kullanır.
S5. Java’da sarmalayıcı sınıfları nelerdir?
Wrapper sınıfları, Java ilkellerini referans türlerine (nesnelere) dönüştürür. Her ilkel veri türünün kendisine ayrılmış bir sınıfı vardır. Bunlar, ilkel veri türünü o sınıfın bir nesnesine “sardıkları” için sarmalayıcı sınıflar olarak bilinir. Farklı ilkel tip, sarmalayıcı sınıf ve yapıcı argümanı gösteren aşağıdaki resme bakın.
S6. Java’daki yapıcılar nelerdir?
Java’da yapıcı, bir nesneyi başlatmak için kullanılan bir kod bloğunu ifade eder. Sınıfın adı ile aynı ada sahip olmalıdır. Ayrıca dönüş tipi yoktur ve bir nesne oluşturulduğunda otomatik olarak çağrılır.
İki tür kurucu vardır:
- Varsayılan Oluşturucu: Java’da, herhangi bir girdi almayan varsayılan bir yapıcıdır. Başka bir deyişle, varsayılan kurucular, kullanıcı tarafından başka bir kurucu tanımlanmamanız durumunda, varsayılan olarak oluşturulacak bağımsız değişken olmayan kuruculardır. Ana amacı, örnek değişkenleri varsayılan değerlerle başlatmaktır. Ayrıca, büyük ölçüde nesne oluşturma için kullanılır.
- Parametreli Oluşturucu: Java’daki parametreli yapıcı, örnek değişkenleri sağlanan değerlerle başlatma yeteneğine sahip olan yapıcıdır. Başka bir deyişle, argümanları alan kuruculara parametreli kurucular denir.
S7. Java’da singleton sınıfı nedir ve bir sınıf singletonunu nasıl yapabiliriz?
Singleton sınıfı, herhangi bir zamanda, bir JVM’de yalnızca bir örneği oluşturulabilen bir sınıftır. Bir sınıf, kurucusunu private yaparak tekil hale getirilebilir.
S8. Java’da Dizi listesi ve vektör arasındaki fark nedir?
Dizi Listesi | Vektör |
---|---|
Dizi Listesi senkronize değil. | Vektör senkronize edilir. |
Dizi Listesi senkronize olmadığı için hızlıdır. | Vektör, iş parçacığı güvenli olduğu için yavaştır. |
Dizi Listesine bir öğe eklenirse, Dizi boyutunu %50 oranında artırır. | Vektör varsayılan olarak dizisinin boyutunu iki katına çıkarır. |
Dizi Listesi, artış boyutunu tanımlamaz. | Vektör, artış boyutunu tanımlar. |
Dizi Listesi, bir Dizi Listesini geçmek için yalnızca Yineleyiciyi kullanabilir. | Vektör, geçiş için hem Numaralandırmayı hem de Yineleyiciyi kullanabilir. |
S9. Java’da equals() ve == arasındaki fark nedir?
Equals() yöntemi, Java’da Object sınıfında tanımlanır ve iş mantığı tarafından tanımlanan iki nesnenin eşitliğini kontrol etmek için kullanılır.
Java’daki “==” veya eşitlik operatörü, Java programlama dili tarafından sağlanan ve ilkelleri ve nesneleri karşılaştırmak için kullanılan ikili bir operatördür. public boolean equals(Object o) , Object sınıfı tarafından sağlanan yöntemdir. Varsayılan uygulama, iki nesneyi karşılaştırmak için == operatörünü kullanır. Örneğin: yöntem, String sınıfı gibi geçersiz kılınabilir. equals() yöntemi, iki nesnenin değerlerini karşılaştırmak için kullanılır.
S10. Süper anahtar kelimeyi ne zaman kullanabilirsiniz?
Java’da super anahtar sözcüğü, hemen bir üst sınıf nesnesine başvuran bir başvuru değişkenidir.
Java Sertifikasyon Eğitim Kursu
- Eğitmen Liderliğinde Oturumlar
- Gerçek Hayat Vaka Çalışmaları
- Ödevler
- Ömür Boyu Erişim
Java süper Anahtar Kelimesinin kullanımları
- Anında bir üst sınıf örnek değişkenine başvurmak için super kullanın.
- super anahtar sözcüğü, doğrudan bir üst sınıfın yöntemini çağırmak için kullanılabilir.
- Super(), hemen ana sınıfın yapıcısını çağırmak için kullanılabilir.
S11. HashSet’i TreeSet’ten farklı kılan nedir?
HashSet | Ağaç Kümesi |
Bir hash tablosu aracılığıyla uygulanır. | TreeSet, verileri depolamak için ağaçları kullanan SortedSet Arabirimini uygular. |
Boş nesneye izin verir. | Boş nesneye izin vermez. |
Özellikle arama, ekleme ve silme işlemleri için TreeSet’ten daha hızlıdır. | Bu işlemler için HashSet’ten daha yavaştır. |
Öğeleri düzenli bir şekilde tutmaz. | Öğeler sıralı bir düzende tutulur. |
İki nesneyi karşılaştırmak için equals() yöntemini kullanır. | İki nesneyi karşılaştırmak için CompareTo() yöntemini kullanır. |
Heterojen bir nesneye izin vermez. | Heterojen bir nesneye izin verir. |
S12. Java’da HashMap ve HashTable arasındaki farklar nelerdir?
HashMap | Hashtable |
Senkronize değil. Uygun senkronizasyon kodu olmadan birçok iş parçacığı arasında paylaşılamaz. | Senkronize edilir. İş parçacığı için güvenlidir ve birçok iş parçacığı ile paylaşılabilir. |
Bir boş anahtara ve birden çok boş değere izin verir. | Herhangi bir boş anahtara veya değere izin vermez. |
JDK 1.2’de tanıtılan yeni bir sınıftır. | Java’nın önceki sürümlerinde de mevcuttu. |
Bu daha hızlı. | Daha yavaş. |
Yineleyici üzerinden geçilir. | Numaralandırıcı ve Yineleyici aracılığıyla geçilir. |
Fail hızlı yineleyici kullanır. | Hızlı başarısız olmayan bir numaralandırıcı kullanır. |
AbstractMap sınıfını devralır. | Dictionary sınıfını devralır. |
S13. Java’da yansımanın önemi nedir?
Reflection, yöntemlerin, sınıfların ve arabirimlerin davranışını denetlemek ve değiştirmek için bir çalışma zamanı API’sidir. Java Reflection, gerçekten faydalı olabilecek güçlü bir araçtır. Java Reflection, derleme zamanında ne adlandırıldığını bilmeden çalışma zamanı sırasında sınıfları, arabirimleri, alanları ve yöntemleri analiz etmenize olanak tanır. Yansıma ayrıca yeni nesneler oluşturmak, yöntemleri çağırmak ve alan değerlerini almak/ayarlamak için kullanılabilir. Dış, kullanıcı tanımlı sınıflar, tam adlarıyla genişletilebilirlik nesnelerinin örnekleri oluşturularak kullanılabilir. Hata ayıklayıcılar, sınıfların özel üyelerini incelemek için yansımayı da kullanabilir.
S14. Java’da bir sınıfın niteliklerinin serileştirilmesine nasıl izin verilmez?
NonSerialized özniteliği, üye değişkenlerin serileştirilmesini önlemek için kullanılabilir.
Ayrıca, güvenlik açısından hassas verileri potansiyel olarak içeren bir nesneyi mümkünse serileştirilemez hale getirmelisiniz. Nesnenin serileştirilmesi gerekiyorsa, hassas verileri depolayan belirli alanlara NonSerialized özniteliğini uygulayın. Bu alanları serileştirmenin dışında tutmazsanız, depoladıkları veriler serileştirme iznine sahip tüm programlar tarafından görülebilir.
S15. Başka bir kurucunun içindeki bir sınıfın kurucusunu çağırabilir misiniz?
Evet, bir sınıfın yapıcısını başka bir yapıcı içinde çağırabiliriz. Buna yapıcı zincirleme de denir. Yapıcı zincirleme 2 şekilde yapılabilir-
- Aynı sınıf içinde: Aynı sınıftaki yapıcılar için this() anahtar sözcüğü kullanılabilir.
- Temel sınıftan: super() anahtar sözcüğü, yapıcıyı temel sınıftan çağırmak için kullanılır.
Yapıcı zincirleme, kalıtım sürecini takip eder. Alt sınıfın kurucusu önce süper sınıfın kurucusunu çağırır. Bu nedenle, alt sınıfın nesnesinin oluşturulması, süper sınıfın veri üyelerinin başlatılmasıyla başlar. Yapıcı zincirleme, herhangi bir sayıda sınıfla benzer şekilde çalışır. Her kurucu, zincirin tepesine kadar zinciri çağırmaya devam eder.
S16. Bitişik bellek konumları genellikle bir dizideki gerçek değerleri depolamak için kullanılır, ancak ArrayList’te kullanılmaz. Açıklamak.
Bir dizi genellikle int, float, vb. gibi ilkel veri türlerinin öğelerini içerir. Bu gibi durumlarda, dizi bu öğeleri doğrudan bitişik bellek konumlarında depolar. ArrayList, ilkel veri türleri içermez. Bir arrayList, nesnenin kendisi yerine farklı bellek konumlarındaki nesnelerin referansını içerir. Bu nedenle nesneler bitişik bellek konumlarında saklanmaz.
S17. new() kullanılarak bir String oluşturulması, bir hazır bilgiden nasıl farklıdır?
new() kullanarak bir dize oluşturduğumuzda, yeni bir nesne oluşturulur. Oysa, dize değişmez sözdizimini kullanarak bir dize oluşturursak, aynı ada sahip zaten var olan bir nesneyi döndürebilir.
S18. Senkronizasyon neden gereklidir? İlgili bir örnek yardımıyla açıklayınız.
Java, birden çok iş parçacığının yürütülmesine izin verir. Aynı değişkene veya nesneye erişiyor olabilirler. Senkronizasyon, iş parçacıklarının birbiri ardına yürütülmesine yardımcı olur.
Senkronize olurken tüm eşzamanlı iş parçacıklarının yürütülmesine yardımcı olduğu için önemlidir. Paylaşılan belleğe erişimden kaynaklanan bellek tutarlılığı hatalarını önler. Senkronizasyon koduna bir örnek:
1234 | public synchronized void increment() { a++; } |
Bu fonksiyonu senkronize ettiğimiz için, bu thread nesneyi ancak önceki thread onu kullandıktan sonra kullanabilir.
S19. Java’da “Çift Ayraç Başlatma” terimini açıklayın?
Double Brace Initialization, iki bağımsız sürecin birleşimini ifade eden bir Java terimidir. Bunda kullanılan iki diş teli vardır. İlk küme, anonim bir iç sınıf oluşturur. İkinci ayraç bir başlatma bloğudur. Bu ikisi birlikte kullanıldığında, Çift Ayraç Başlatma olarak bilinir. İç sınıf, genellikle ‘bu’ işaretçisini kullanarak, çevreleyen dış sınıfa bir referansa sahiptir. Tek bir ifadede hem oluşturma hem de başlatma yapmak için kullanılır. Genellikle koleksiyonları başlatmak için kullanılır. Kodu azaltır ve ayrıca daha okunabilir hale getirir.
S20. String sınıfının length() yönteminin neden doğru sonuçlar döndürmediği söyleniyor?
String sınıfının length() yöntemi,
yalnızca String içindeki karakter sayısını hesaba kattığı için doğru sonuçlar döndürmez. Başka bir deyişle, BMP (Temel Çok Dilli Düzlem) dışındaki kod noktaları, yani U+10000 veya üzeri değere sahip kod noktaları yoksayılacaktır.
Bunun nedeni tarihseldir. Java’nın orijinal hedeflerinden biri, tüm metni Unicode olarak kabul etmekti; henüz, Unicode, o sırada BMP’nin dışında kod noktaları tanımlamadı. Unicode bu tür kod noktalarını belirlediğinde char’ı değiştirmek için çok geçti.
S21. Java’da Yığın ve Yığın Belleği arasındaki farklar nelerdir?
Yığın ve Yığın bellek arasındaki en büyük fark şunlardır:
Özellikler | Yığın | Yığın |
---|---|---|
Hafıza | Yığın bellek, yalnızca bir yürütme iş parçacığı tarafından kullanılır. | Yığın bellek, uygulamanın tüm bölümleri tarafından kullanılır. |
Erişim | Yığın belleğine diğer iş parçacıkları tarafından erişilemez. | Yığında depolanan nesnelere genel olarak erişilebilir. |
Hafıza yönetimi | Belleği boşaltmak için LIFO yöntemini izler. | Bellek yönetimi, her bir nesneyle ilişkili üretimi temel alır. |
Ömür | İş parçacığının yürütülmesinin sonuna kadar var olur. | Yığın bellek, uygulamanın yürütülmesinin başlangıcından sonuna kadar yaşar. |
kullanım | Yığın bellek, yalnızca yığın alanındaki nesnelere yerel ilkel ve başvuru değişkenleri içerir. | Bir nesne oluşturulduğunda, her zaman Heap alanında depolanır. |
S22. Java’da paket nedir? Paketlerin çeşitli avantajlarını listeleyin.
Java’daki paketler, birlikte paketlenmiş ilgili sınıfların ve arayüzlerin toplamıdır. Geliştiriciler paketleri kullanarak kodu kolayca modüler hale getirebilir ve yeniden kullanımını optimize edebilir. Ayrıca paketlerin içindeki kodlar diğer sınıflar tarafından içe aktarılabilir ve yeniden kullanılabilir. Aşağıda birkaç avantajını listeledim:
- Paketler, ad çakışmalarını önlemeye yardımcı olur
- Kod üzerinde daha kolay erişim kontrolü sağlarlar
- Paketler ayrıca dış sınıflar tarafından görülmeyen ve yalnızca paket içinde kullanılan gizli sınıflar da içerebilir.
- İlgili sınıfları bulmayı kolaylaştıran uygun bir hiyerarşik yapı oluşturur.
S23. Java’da işaretçiler neden kullanılmaz?
Java, güvensiz oldukları ve programın karmaşıklığını artırdığı için işaretçiler kullanmaz. Java, kod basitliği ile bilindiğinden, işaretçiler kavramını eklemek çelişkili olacaktır. Ayrıca, JVM örtük bellek tahsisinden sorumlu olduğundan, kullanıcı tarafından belleğe doğrudan erişimden kaçınmak için Java’da işaretçiler önerilmez.
S24. Java’da JIT derleyicisi nedir?
JIT, Java’da Tam Zamanında derleyici anlamına gelir. Java bayt kodunu doğrudan işlemciye gönderilen talimatlara dönüştürmeye yardımcı olan bir programdır. Varsayılan olarak, JIT derleyicisi Java’da etkindir ve bir Java yöntemi her çağrıldığında etkinleştirilir. JIT derleyicisi daha sonra çağrılan yöntemin bayt kodunu yerel makine kodunda derler ve yürütmek için “tam zamanında” derler. Yöntem derlendikten sonra JVM, bu yöntemin derlenmiş kodunu yorumlamak yerine doğrudan çağırır. Bu nedenle, Java uygulamalarının çalışma zamanında performans optimizasyonundan genellikle sorumludur.
S25. Java’da erişim değiştiricileri nelerdir?
Java’da erişim değiştiricileri, başka bir sınıftaki bir sınıfın, yapıcının, veri üyesinin ve yöntemin erişimini kısıtlamak için kullanılan özel anahtar kelimelerdir. Java, dört tür erişim değiştiriciyi destekler:
- Varsayılan
- Özel
- Korumalı
- Halk
değiştirici | Varsayılan | Özel | Korumalı | Halk |
Aynı sınıf | EVET | EVET | EVET | EVET |
Aynı Paket alt sınıfı | EVET | NUMARA | EVET | EVET |
Aynı Paket alt sınıf dışı | EVET | NUMARA | EVET | EVET |
Farklı paket alt sınıfı | NUMARA | NUMARA | EVET | EVET |
Alt sınıf olmayan farklı paket | NUMARA | NUMARA | NUMARA | EVET |
S26. Bir Java Sınıfı tanımlayın.
Java’daki bir sınıf, tüm verilerinizi içeren bir plandır. Bir sınıf, bir nesnenin davranışını tanımlayan alanlar (değişkenler) ve yöntemler içerir. Bir sınıfın sözdizimine bir göz atalım.
123 | class Abc { member variables // class body methods} |
S27. Java’da nesne nedir ve nasıl oluşturulur?
Bir nesne, bir durumu ve davranışı olan gerçek dünyadaki bir varlıktır. Bir nesnenin üç özelliği vardır:
- Durum
- Davranış
- Kimlik
‘new’ anahtar sözcüğü kullanılarak bir nesne oluşturulur. Örneğin:
SınıfAdı nesnesi = yeni SınıfAdı();
S28. Nesneye Yönelik Programlama Nedir?
Nesne yönelimli programlama veya popüler olarak OOP’ler olarak bilinen, programların mantık ve işlevler yerine nesneler etrafında düzenlendiği bir programlama modeli veya yaklaşımıdır. Başka bir deyişle, OOP esas olarak mantık yerine manipüle edilmesi gereken nesnelere odaklanır. Bu yaklaşım, büyük ve karmaşık kodlar içeren programlar için idealdir ve aktif olarak güncellenmesi veya bakımının yapılması gerekir.
S29. Java’daki OOP’lerin ana kavramları nelerdir?
Nesneye Yönelik Programlama veya OOP’ler, aşağıdaki gibi kavramlarla ilişkili bir programlama stilidir:
- Kalıtım: Kalıtım, bir sınıfın diğerinin özelliklerini kazandığı bir süreçtir.
- Kapsülleme: Java’da Kapsülleme, verileri ve kodu tek bir birim olarak bir araya getirme mekanizmasıdır.
- Soyutlama: Soyutlama, uygulama ayrıntılarını kullanıcıdan gizleme ve yalnızca kullanıcılara işlevselliği sağlama metodolojisidir.
- Polimorfizm: Polimorfizm, bir değişkenin, işlevin veya nesnenin birden çok biçim alabilme yeteneğidir.
S30. Yerel değişken ile örnek değişken arasındaki fark nedir?
Java’da yerel bir değişken tipik olarak bir yöntem, yapıcı veya blok içinde kullanılır ve yalnızca yerel kapsamı vardır. Böylece bu değişken sadece bir blok kapsamında kullanılabilir. Yerel bir değişkene sahip olmanın en iyi yararı, sınıftaki diğer yöntemlerin o değişkenin farkında bile olmamasıdır.
Örnek
1234 | if (x > 100 ) { String test = "Edureka" ; } |
Oysa Java’daki bir örnek değişken , nesnesinin kendisine bağlı bir değişkendir. Bu değişkenler bir sınıf içinde ancak bir yöntemin dışında bildirilir. Bu sınıfın her nesnesi, onu kullanırken değişkenin kendi kopyasını yaratacaktır. Bu nedenle, değişkende yapılan herhangi bir değişiklik, o sınıfın diğer örneklerine yansımayacak ve yalnızca o belirli örneğe bağlı olacaktır.
1234 | class Test{ public String EmpName; public int empAge; } |
S31. Java’daki yapıcılar ve yöntemler arasında ayrım yapın?
yöntemler | yapıcılar |
1. Bir nesnenin davranışını temsil etmek için kullanılır | 1. Bir nesnenin durumunu başlatmak için kullanılır |
2. Bir dönüş türü olmalıdır | 2. Herhangi bir iade türü yok |
3. Açıkça çağrılması gerekiyor | 3. Örtülü olarak çağrılır |
4. Derleyici tarafından varsayılan bir yöntem sağlanmamıştır. | 4. Sınıfta herhangi bir kurucu yoksa, derleyici tarafından varsayılan bir kurucu sağlanır. |
5. Yöntem adı, sınıf adıyla aynı olabilir veya olmayabilir | 5. Yapıcı adı her zaman sınıf adıyla aynı olmalıdır |
Bu Core Java mülakat sorularıyla ilgili herhangi bir zorlukla karşılaşmanız durumunda, lütfen aşağıdaki bölümde sorunlarınız hakkında yorum yapın.
S32. Java’da son anahtar kelime nedir?
final , Java’da erişim dışı değiştirici olarak kullanılan özel bir anahtar kelimedir. Son bir değişken, aşağıdakiler gibi farklı bağlamlarda kullanılabilir:
- son değişken
Final anahtar sözcüğü bir değişkenle birlikte kullanıldığında değeri atandıktan sonra değiştirilemez. Son değişkene hiçbir değer atanmamışsa, yalnızca sınıf kurucusu kullanılarak ona bir değer atanabilir.
S33. Break ve Continue ifadeleri arasındaki fark nedir?
kırmak | devam et |
1. Switch ve loop (for, while, do while) deyimlerinde kullanılabilir | 1. Yalnızca döngü ifadeleriyle kullanılabilir |
2. Switch veya loop deyimlerinin yürütüldüğü anda sonlandırılmasına neden olur. | 2. Döngüyü sonlandırmaz ancak döngünün bir sonraki yinelemeye geçmesine neden olur |
3. En içteki kapalı döngüyü sonlandırır veya hemen geçiş yapar | 3. Bir anahtarla iç içe bir döngü içinde devam etmek, sonraki döngü yinelemesinin yürütülmesine neden olur |
Örnek mola:
123456789 | for ( int i = 0 ; i < 5 ; i++)</div> <div> <pre>{ if (i == 3 ) { break ; } System.out.println(i); } |
Örnek devam:
12345678 | for ( int i = 0 ; i < 5 ; i++) { if (i == 2 ) { continue ; } System.out.println(i); } |
S34. Java’da sonsuz döngü nedir? Bir örnekle açıklayın.
Sonsuz döngü, Java’da işlevsel bir çıkış karşılanmadığında sonsuz döngüye giren bir talimat dizisidir. Bu döngü türü, bir programlama hatasının sonucu olabilir veya uygulama davranışına dayalı kasıtlı bir eylem de olabilir. Uygulamadan çıktıktan sonra sonsuz bir döngü otomatik olarak sona erecektir.
Örneğin:
12345678 | public class InfiniteForLoopDemo { public static void main(String[] arg) { for (;;) System.out.println( "Welcome to Edureka!" ); // To terminate this program press ctrl + c in the console. } } |
S35. Java’da this() ve super() arasındaki fark nedir?
Java’da super() ve this(), her ikisi de yapıcıyı çağırmak için kullanılan özel anahtar sözcüklerdir.
Bu() | Süper() |
1. this() bir sınıfın mevcut örneğini temsil eder | 1. super() bir ebeveyn/temel sınıfın mevcut örneğini temsil eder |
2. Aynı sınıfın varsayılan yapıcısını çağırmak için kullanılır | 2. Ebeveyn/temel sınıfın varsayılan yapıcısını çağırmak için kullanılır |
3. Geçerli sınıfın yöntemlerine erişmek için kullanılır | 3. Temel sınıfın yöntemlerine erişmek için kullanılır |
4. Mevcut sınıf örneğini işaretlemek için kullanılır | 4. Üst sınıf örneğini işaretlemek için kullanılır |
5. Bir bloğun ilk satırı olmalıdır | 5. Bir bloğun ilk satırı olmalıdır |
S36. Java Dize Havuzu nedir?
Java Dize havuzu, yığın belleğinde depolanan bir Dizeler koleksiyonunu ifade eder. Bunda, yeni bir nesne oluşturulduğunda, String havuzu önce nesnenin havuzda olup olmadığını kontrol eder. Varsa, aynı referans değişkene döndürülür, aksi takdirde String havuzunda yeni nesne oluşturulur ve ilgili referans döndürülür.
S37. Java’da statik ve statik olmayan yöntemleri ayırt edin.
Statik Yöntem | Statik Olmayan Yöntem |
1. Statik anahtar kelime, yöntem adından önce kullanılmalıdır. | 1. Yöntem adından önce s tatic anahtar sözcüğünü kullanmaya gerek yok |
2. Sınıf kullanılarak çağrılır (className.methodName) | 2. Herhangi bir genel yöntem gibi çağrılabilir. |
3. Statik olmayan örnek değişkenlere veya yöntemlere erişemezler | 3. Sınıfın bir örneğini oluşturmadan herhangi bir statik yönteme ve herhangi bir statik değişkene erişebilir. |
S38. Java’da “Çift Ayraç Başlatma” terimini açıklayın.
Double Brace Initialization, iki bağımsız sürecin birleşimini ifade eden bir Java terimidir. Bunda kullanılan iki diş teli vardır. İlk küme, anonim bir iç sınıf oluşturur. İkinci ayraç bir başlatma bloğudur. Bu ikisi birlikte kullanıldığında, Çift Ayraç Başlatma olarak bilinir. İç sınıf, genellikle ‘bu’ işaretçisini kullanarak, çevreleyen dış sınıfa bir referansa sahiptir. Tek bir ifadede hem oluşturma hem de başlatma yapmak için kullanılır. Genellikle koleksiyonları başlatmak için kullanılır. Kodu azaltır ve ayrıca daha okunabilir hale getirir.
S39. Java’da yapıcı zincirleme nedir?
Java’da yapıcı zincirleme, geçerli nesneye göre bir yapıcıyı diğerinden çağırma işlemidir. Yapıcı zincirleme, yalnızca bir alt sınıf oluşturucusunun üst sınıf oluşturucusunu ilk önce çağırmaktan sorumlu olduğu miras yoluyla mümkündür. Yapıcı zincirinde herhangi bir sayıda sınıf olabilir. Yapıcı zincirleme iki şekilde gerçekleştirilebilir:
- this() kullanarak aynı sınıf içinde
- super() kullanarak temel sınıftan
S40. String, StringBuilder ve StringBuffer arasındaki fark.
faktör | Sicim | StringBuilder | Dize Tamponu |
Depolama alanı | Sabit Dizi Havuzu | Yığın Alanı | Yığın Alanı |
değişebilirlik | değişmez | değişebilir | değişebilir |
İplik Güvenliği | Evet | Numara | Evet |
Verim | Hızlı | Daha verimli | Daha az verimli |
Java Mülakat Soruları hakkındaki bu makalenin faydalı olduğunu düşünüyorsanız, Edureka’nın
Chennai’deki Java Eğitimine de göz atabilirsiniz .
S41. Java’da sınıf yükleyici nedir?
Java ClassLoader , sınıf dosyalarının yüklenmesinden sorumlu olan bir JVM (Java Virtual Machine) alt kümesidir . Bir Java programı çalıştırıldığında, ilk olarak sınıf yükleyici tarafından yüklenir. Java, üç yerleşik sınıf yükleyici sağlar:
- Önyükleme Sınıf Yükleyici
- Uzantı Sınıf Yükleyici
- Sistem/Uygulama Sınıf Yükleyici
S42. Java Dizeleri neden doğada değişmez?
Java’da, dize nesneleri doğası gereği değişmezdir, bu da basitçe, String nesnesi oluşturulduktan sonra durumunun değiştirilemeyeceği anlamına gelir. Belirli bir nesnenin değerlerini güncellemek yerine o nesnenin değerini güncellemeye çalıştığınızda, Java yeni bir dize nesnesi oluşturur. Java String nesneleri, String nesneleri genellikle String havuzunda önbelleğe alındığından değişmezdir. String değişmezleri genellikle birden çok istemci arasında paylaşıldığından, bir istemcinin eylemi geri kalanını etkileyebilir. Uygulamanın güvenliğini, önbelleğe alınmasını, senkronizasyonunu ve performansını artırır.
S43. Dizi ve dizi listesi arasındaki fark nedir?
Dizi | Dizi Listesi |
---|---|
Farklı veri türlerinin değerlerini içeremez | Farklı veri türlerinin değerlerini içerebilir. |
Boyut, beyan sırasında tanımlanmalıdır | Boyut dinamik olarak değiştirilebilir |
Veri eklemek için dizini belirtmeniz gerekiyor | Dizini belirtmeye gerek yok |
Diziler tür parametreli değildir | Dizi listeleri türdür |
Diziler, nesnelerin yanı sıra ilkel veri türlerini de içerebilir. | Dizi listeleri yalnızca nesneleri içerebilir, ilkel veri türlerine izin verilmez |
S44. Java’da Harita Nedir?
Java’da Harita, benzersiz anahtarları değerlerle eşleyen Util paketinin bir arabirimidir. Harita arabirimi, ana Koleksiyon arabiriminin bir alt kümesi değildir ve bu nedenle diğer koleksiyon türlerinden biraz farklı davranır. Aşağıda, Harita arayüzünün özelliklerinden birkaçı verilmiştir:
- Harita yinelenen anahtarlar içermiyor.
- Her anahtar maksimum bir değerde eşlenebilir.
S45. Java’da toplama sınıfı nedir? Yöntemlerini ve arayüzlerini listeleyin.
Java’da koleksiyon, bir grup nesneyi depolamak ve işlemek için bir mimari görevi gören bir çerçevedir. Koleksiyonları kullanarak arama, sıralama, ekleme, değiştirme, silme vb. gibi çeşitli görevleri gerçekleştirebilirsiniz. Java toplama çerçevesi aşağıdakileri içerir:
- Arayüzler
- sınıflar
- yöntemler
Aşağıdaki resim, Java Koleksiyonunun tam hiyerarşisini göstermektedir.
Kariyerde ilerlemek için kendinizi geliştirmek ister misiniz? Bu videoya göz atın
Yeni Başlayanlar ve Deneyimliler için Temel Java Mülakat Soruları ve Cevapları Bu 120+ çekirdek java mülakat sorusu ve cevabı, yeni başlayanların ve deneyimin ilk denemede röportajı kırmalarına yardımcı olacak
OOPS Java Mülakat Soruları
S1. Polimorfizm nedir?
Polimorfizm kısaca “tek arayüz, birçok uygulama” olarak tanımlanmaktadır. Polimorfizm, farklı bağlamlarda bir şeye farklı bir anlam veya kullanım atayabilme özelliğidir – özellikle, değişken, işlev veya nesne gibi bir varlığın birden fazla forma sahip olmasına izin verme. İki tür polimorfizm vardır:
- Derleme zamanı polimorfizmi
- Çalışma zamanı polimorfizmi
Derleme zamanı polimorfizmi yöntem aşırı yüklemesidir, Çalışma zamanı polimorfizmi ise kalıtım ve arayüz kullanılarak yapılır.
S2. Çalışma zamanı polimorfizmi veya dinamik yöntem gönderimi nedir?
Java’da, çalışma zamanı polimorfizmi veya dinamik yöntem gönderimi, geçersiz kılınan bir yönteme yapılan çağrının derleme zamanında değil, çalışma zamanında çözüldüğü bir süreçtir. Bu süreçte, bir üst sınıfın referans değişkeni aracılığıyla geçersiz kılınan bir yöntem çağrılır. Daha iyi anlamak için aşağıdaki örneği inceleyelim.
1234567891011121314151617 | class Car { void run() { System.out.println(“car is running”); } } class Audi extends Car { void run() { System.out.prinltn(“Audi is running safely with 100km”); } public static void main(String args[]) { Car b= new Audi(); //upcasting b.run(); } } |
S3. Java’da soyutlama nedir?
Soyutlama, olaylardan ziyade fikirlerle uğraşmanın kalitesini ifade eder. Temel olarak ayrıntıları gizleme ve kullanıcıya gerekli şeyleri gösterme ile ilgilenir. Bu nedenle, Java’daki soyutlamanın, uygulama ayrıntılarını kullanıcıdan gizleme ve yalnızca işlevselliği onlara gösterme süreci olduğunu söyleyebilirsiniz. Soyutlama iki şekilde gerçekleştirilebilir:
- Soyut Sınıflar (0-100% soyutlama elde edilebilir)
- Arayüzler (soyutlamanın %100’ü elde edilebilir)
S4. Java’da bir arayüz ile ne demek istiyorsunuz?
Java’daki bir arabirim, bir sınıfın planıdır veya bunun bir soyut yöntemler ve statik sabitler topluluğu olduğunu söyleyebilirsiniz. Bir arabirimde, her yöntem genel ve soyuttur ancak herhangi bir kurucu içermez. Bu nedenle, arayüz temel olarak boş gövdeli bir ilgili yöntemler grubudur. Örnek:
genel arayüz Hayvan {
public void eat();
genel boşluk uykusu();
genel geçersiz çalıştırma();
}
S5. Soyut sınıflar ve arayüzler arasındaki fark nedir?
soyut sınıf | Arayüzler |
---|---|
Soyut bir sınıf, eksiksiz, varsayılan kod ve/veya yalnızca geçersiz kılınması gereken ayrıntıları sağlayabilir. | Bir arayüz herhangi bir kod sağlayamaz, sadece imza |
Soyut bir sınıf söz konusu olduğunda, bir sınıf yalnızca bir soyut sınıfı genişletebilir. | Bir Sınıf birkaç arabirim uygulayabilir |
Soyut bir sınıf soyut olmayan yöntemlere sahip olabilir | Bir Arayüzün tüm yöntemleri soyuttur |
Soyut bir sınıf, örnek değişkenlere sahip olabilir | Bir Arayüzün örnek değişkenleri olamaz |
Soyut bir sınıf herhangi bir görünürlüğe sahip olabilir: genel, özel, korumalı | Bir Arayüz görünürlüğü herkese açık olmalıdır (veya hiçbiri) |
Soyut bir sınıfa yeni bir yöntem eklersek, varsayılan uygulama sağlama seçeneğimiz vardır ve bu nedenle mevcut tüm kodlar düzgün çalışabilir. | Bir Arayüze yeni bir yöntem eklersek, arayüzün tüm uygulamalarını izlemeli ve yeni yöntem için uygulamayı tanımlamalıyız. |
Soyut bir sınıf, kurucular içerebilir | Bir Arayüz, yapıcılar içeremez |
Soyut sınıflar hızlıdır | Arayüzler yavaştır, çünkü gerçek sınıfta karşılık gelen yöntemi bulmak için ekstra yönlendirme gerektirir |
S6. Java’da kalıtım nedir?
Java’da kalıtım, bir sınıfın özelliklerinin diğeri tarafından miras alınabileceği kavramdır. Kodun yeniden kullanılmasına ve farklı sınıflar arasında bir ilişki kurulmasına yardımcı olur. Kalıtım iki tür sınıf arasında gerçekleştirilir:
- Ebeveyn sınıfı (Süper veya Temel sınıf)
- Alt sınıf (Alt sınıf veya Türetilmiş sınıf)
Özellikleri devralan bir sınıf, Alt Sınıf olarak bilinirken, özellikleri devralınan bir sınıf, Ana sınıf olarak bilinir.
S7. Java’daki farklı kalıtım türleri nelerdir?
Java dört tür kalıtımı destekler:
- Tek Kalıtım: Tek mirasta, bir sınıf diğerinin özelliklerini miras alır, yani yalnızca bir ebeveyn ve bir alt sınıf olacaktır.
- Çok Düzeyli Kalıtım: Bir sınıf, aynı zamanda başka bir sınıftan türetilen bir sınıftan türetildiğinde, yani birden fazla üst sınıfa sahip ancak farklı düzeylerde olan bir sınıf, bu tür mirasa Çok Düzeyli Kalıtım denir.
- Hiyerarşik Kalıtım: Bir sınıfın birden fazla alt sınıfı (altsınıfı) varsa veya başka bir deyişle, birden fazla alt sınıf aynı ana sınıfa sahipse, bu tür kalıtım hiyerarşik olarak bilinir.
- Hibrit Kalıtım: Hibrit kalıtım, iki veya daha fazla kalıtım türünün birleşimidir .
S8. Yöntem aşırı yükleme ve yöntemi geçersiz kılma nedir?
Yöntem Aşırı Yükleme:
- Yöntem Aşırı Yüklemesinde, aynı sınıfa ait Yöntemler aynı adı paylaşır, ancak her yöntemin farklı sayıda parametreye veya farklı tür ve sıraya sahip parametreye sahip olması gerekir.
- Yöntem Aşırı Yükleme, yöntemin davranışına daha fazla “eklemek” veya “genişletmektir”.
- Derleme zamanı polimorfizmidir.
- Yöntemlerin farklı bir imzası olmalıdır.
- Yöntem Aşırı Yüklemesinde kalıtım gerektirebilir veya gerekmeyebilir.
Daha iyi anlamak için aşağıdaki örneği inceleyelim.
1234567891011121314 | class Adder { Static int add( int a, int b) { return a+b; } Static double add( double a, double b) { return a+b; } public static void main(String args[]) { System.out.println(Adder.add( 11 , 11 )); System.out.println(Adder.add( 12.3 , 12.6 )); }} |
Yöntem Geçersiz Kılma:
- Yöntem Geçersiz Kılma’da, alt sınıf, bir üst sınıfla aynı ada ve tam olarak aynı sayıda ve türde parametreye ve aynı dönüş türüne sahip aynı yönteme sahiptir.
- Yöntem Geçersiz Kılma, yöntemin mevcut davranışını “Değiştirmektir”.
- Bir çalışma zamanı polimorfizmidir.
- Yöntemler aynı imzaya sahip olmalıdır.
- Yöntem Geçersiz Kılma’da her zaman kalıtım gerektirir.
Daha iyi anlamak için aşağıdaki örneği inceleyelim.
123456789101112131415 | class Car { void run(){ System.out.println(“car is running”); } Class Audi extends Car{ void run() { System.out.prinltn( "Audi is running safely with 100km" ); } public static void main( String args[]) { Car b= new Audi(); b.run(); } } |
S9. Java’da özel veya statik bir yöntemi geçersiz kılabilir misiniz?
Java’da özel veya statik bir yöntemi geçersiz kılamazsınız. Alt sınıfta aynı dönüş türü ve aynı yöntem argümanlarıyla benzer bir yöntem oluşturursanız, üst sınıf yöntemini gizleyecektir; bu yöntem gizleme olarak bilinir. Benzer şekilde, orada erişilebilir olmadığı için alt sınıfta özel bir yöntemi geçersiz kılamazsınız. Yapabileceğiniz şey, alt sınıfta aynı ada sahip başka bir özel yöntem oluşturmaktır. Daha iyi anlamak için aşağıdaki örneği inceleyelim.
12345678910111213141516171819202122 | class Base { private static void display() { System.out.println( "Static or class method from Base" ); } public void print() { System.out.println( "Non-static or instance method from Base" ); } class Derived extends Base { private static void display() { System.out.println( "Static or class method from Derived" ); } public void print() { System.out.println( "Non-static or instance method from Derived" ); } public class test { public static void main(String args[]) { Base obj= new Derived(); obj1.display(); obj1.print(); } } |
S10. Çoklu kalıtım nedir? Java tarafından destekleniyor mu?
Bir alt sınıf, özelliği birden çok sınıftan miras alırsa, çoklu kalıtım olarak bilinir. Java, birden çok sınıfın genişletilmesine izin vermez.
Çoklu kalıtımla ilgili sorun, birden çok üst sınıf aynı yöntem adına sahipse, çalışma zamanında derleyicinin alt sınıftan hangi yöntemi çalıştıracağına karar vermesinin zorlaşmasıdır.
Bu nedenle, Java çoklu kalıtımı desteklemez. Soruna genel olarak Elmas Sorunu denir.
Bu java mülakat sorularıyla ilgili herhangi bir zorlukla karşılaşmanız durumunda, lütfen aşağıdaki bölümde sorunlarınız hakkında yorum yapın.
S11. Java’da kapsülleme nedir?
Kapsülleme, verilerinizi (değişkenleri) ve kodunuzu (yöntemleri) tek bir birim olarak birbirine bağladığınız bir mekanizmadır. Burada veriler dış dünyadan gizlenir ve yalnızca mevcut sınıf yöntemleriyle erişilebilir. Bu, verilerin gereksiz değişikliklerden korunmasına yardımcı olur. Java’da kapsüllemeyi şu şekilde başarabiliriz:
- Bir sınıfın değişkenlerini private olarak bildirmek.
- Değişkenlerin değerlerini değiştirmek ve görüntülemek için genel ayarlayıcı ve alıcı yöntemleri sağlama.
S12. Dernek nedir?
İlişkilendirme, tüm nesnelerin kendi yaşam döngüsüne sahip olduğu ve sahibinin olmadığı bir ilişkidir. Öğretmen ve Öğrenci örneğini ele alalım. Birden çok öğrenci tek bir öğretmenle ilişki kurabilir ve tek bir öğrenci birden çok öğretmenle ilişki kurabilir ancak nesneler arasında sahiplik yoktur ve her ikisinin de kendi yaşam döngüleri vardır. Bu ilişkiler bire bir, bire çok, çoktan bire ve çoktan çoğa olabilir.
S13. Toplama ile ne demek istiyorsun?
Toplama, tüm nesnelerin kendi yaşam döngüsüne sahip olduğu ancak mülkiyetin olduğu ve alt nesnenin başka bir ana nesneye ait olamayacağı özel bir İlişkilendirme biçimidir. Bölüm ve öğretmen örneğini ele alalım. Tek bir öğretmen birden fazla bölüme ait olamaz, ancak bölümü silersek öğretmen nesnesi yok olmaz.
S14. Java’da kompozisyon nedir?
Kompozisyon yine Agregasyonun özelleşmiş bir şeklidir ve buna “ölüm” ilişkisi diyebiliriz. Güçlü bir Toplama türüdür. Alt nesnenin yaşam döngüsü yoktur ve ana nesne silerse tüm alt nesneler de silinir. Yine House ve odalar arasındaki ilişki örneğini ele alalım. Ev birden fazla oda içerebilir, bağımsız bir oda ömrü yoktur ve herhangi bir oda iki farklı eve ait olamaz, evi silersek oda otomatik olarak silinir.
S15. İşaretleyici arayüzü nedir?
Bir Marker arabirimi, veri üyesi ve üye işlevleri olmayan arabirim olarak tanımlanabilir. Daha basit bir ifadeyle, boş bir arayüze Marker arayüzü denir. Java’da Marker arabiriminin en yaygın örnekleri Serileştirilebilir, Cloneable vs.’dir. Marker arabirimi aşağıdaki gibi bildirilebilir.
12 | public interface Serializable{ } |
S16 . Java’da nesne klonlama nedir?
Java’da nesne klonlama, bir nesnenin tam bir kopyasını oluşturma işlemidir. Temel olarak, orijinal nesneye benzer bir duruma sahip bir nesne oluşturma yeteneği anlamına gelir. Bunu başarmak için Java, bu işlevsellikten yararlanmak için bir klon yöntemi () sağlar. Bu yöntem, geçerli nesnenin sınıfının yeni bir örneğini oluşturur ve ardından tüm alanlarını karşılık gelen alanların tam olarak aynı içeriğiyle başlatır. Clone() nesnesine itiraz etmek için, herhangi bir çalışma zamanı istisnasından kaçınmak için Java.lang.Cloneable işaretleyici arabirimi uygulanmalıdır. Dikkat etmeniz gereken bir şey, Object klon() korumalı bir yöntemdir, bu nedenle onu geçersiz kılmanız gerekir.
S17. Java’da bir kopya oluşturucu nedir?
Kopya yapıcı, aynı sınıftan başka bir nesneyi kullanarak bir nesneyi başlatmak için kullanılan bir üye işlevidir. Tüm nesneler referans olarak iletildiği için Java’da kopya oluşturucuya gerek yoktur. Ayrıca, Java otomatik değer geçişini bile desteklemez.
S18. Java’da yapıcı aşırı yükleme nedir?
Java’da, yapıcı aşırı yükleme, her biri farklı bir parametre listesine sahip bir sınıfa herhangi bir sayıda yapıcı ekleme tekniğidir. Derleyici, aşırı yüklenmiş kurucuları ayırt etmek için listedeki parametre sayısını ve türlerini kullanır.
123456789101112 | class Demo { int i; public Demo( int a) { i=k; } public Demo( int a, int b) { //body } } |
Bu java mülakat sorularıyla ilgili herhangi bir zorlukla karşılaşmanız durumunda, lütfen aşağıdaki bölümde sorunlarınız hakkında yorum yapın. Bu Java Mülakat Soruları Blogu dışında, bu teknoloji konusunda profesyonellerden eğitim almak istiyorsanız, edureka’dan yapılandırılmış bir eğitim almayı tercih edebilirsiniz!
Servlet – Java Mülakat Soruları
S1. servlet nedir?
- Java Servlet, dinamik yanıt ve veri kalıcılığı için destek sağlayarak web sunucularının kapasitesini genişletmeye yönelik sunucu tarafı teknolojilerdir.
- javax.servlet ve javax.servlet.http paketleri, kendi sunucu uygulamalarımızı yazmak için arayüzler ve sınıflar sağlar.
- Tüm sunucu uygulamaları, sunucu uygulaması yaşam döngüsü yöntemlerini tanımlayan javax.servlet.Servlet arabirimini uygulamalıdır. Genel bir hizmeti uygularken, Java Servlet API ile sağlanan GenericServlet sınıfını genişletebiliriz. HttpServlet sınıfı, HTTP’ye özgü hizmetleri işlemek için doGet() ve doPost() gibi yöntemler sağlar.
- Çoğu zaman, web uygulamalarına HTTP protokolü kullanılarak erişilir ve bu nedenle çoğunlukla HttpServlet sınıfını genişletiriz. Servlet API hiyerarşisi aşağıdaki resimde gösterilmiştir.
S2. Al ve Gönder yöntemleri arasındaki farklar nelerdir?
Almak | Postalamak |
---|---|
Başlıkta veri gönderildiği için sınırlı miktarda veri gönderilebilir. | Veri gövde içinde gönderildiği için büyük miktarda veri gönderilebilir. |
Veriler URL çubuğunda gösterildiği için Güvenli Değil. | Veriler URL çubuğunda gösterilmediğinden güvenli. |
İşaretlenebilir | İşaretlenemez |
Etkisiz | Idempotent Olmayan |
Post’tan daha verimli ve kullanılır | Daha az verimlidir ve kullanılır |
S3. İstek Göndericisi nedir?
RequestDispatcher arayüzü, isteği HTML, JSP veya aynı uygulamadaki başka bir sunucu uygulaması olabilecek başka bir kaynağa iletmek için kullanılır. Bunu, yanıta başka bir kaynağın içeriğini eklemek için de kullanabiliriz.
Bu arabirimde tanımlanan iki yöntem vardır:
1. ileriyi geçersiz kıl()
2.void içerme()
S4. forward() yöntemi ile sendRedirect() yöntemleri arasındaki farklar nelerdir?
ileri() yöntemi | SendRedirect() yöntemi |
---|---|
forward() aynı isteği başka bir kaynağa gönderir. | sendRedirect() yöntemi, tarayıcının URL çubuğunu kullandığı için her zaman yeni istek gönderir. |
forward() yöntemi sunucu tarafında çalışır. | sendRedirect() yöntemi istemci tarafında çalışır. |
forward() yöntemi yalnızca sunucu içinde çalışır. | sendRedirect() yöntemi, sunucunun içinde ve dışında çalışır. |
S5. Bir sunucu uygulamasının yaşam döngüsü nedir?
Bir sunucu uygulamasının yaşam döngüsünde 5 aşama vardır:
- Servlet yüklendi
- Servlet somutlaştırıldı
- Servlet başlatıldı
- İsteği yerine getir
- Servlet yok edildi
S6. Çerezler Servlet’lerde nasıl çalışır?
- Çerezler, sunucu tarafından istemciye gönderilen metin verileridir ve istemcinin yerel makinesine kaydedilir.
- Servlet API, Serileştirilebilir ve Cloneable arabirimleri uygulayan javax.servlet.http.Cookie sınıfı aracılığıyla çerez desteği sağlar.
- İstekten Çerez dizisini almak için HttpServletRequest getCookies() yöntemi sağlanmıştır, çünkü isteğe Cookie eklemenin bir anlamı olmadığından, isteğe çerez ekleme veya ekleme yöntemi yoktur.
- Benzer şekilde, yanıt başlığına çerez eklemek için HttpServletResponse addCookie(Cookie c) yöntemi sağlanmıştır, çerez için alıcı yöntemi yoktur.
S7. ServletContext ile ServletConfig arasındaki farklar nelerdir?
Servlets JSP’de ServletContext ve ServletConfig arasındaki fark aşağıdaki tablo biçimindedir.
ServletConfig | ServletContext |
---|---|
Sunucu uygulaması yapılandırma nesnesi, tek sunucu uygulamasını temsil eder | Belirli bir JVM üzerinde çalışan ve tüm sunucu uygulaması için ortak olan tüm web uygulamasını temsil eder. |
Belirli bir sunucu uygulamasıyla ilişkili yerel parametreye benzer | Tüm uygulama ile ilişkili küresel parametreye benzer |
Web.xml dosyasının sunucu uygulaması bölümünde tanımlanmış bir ad değer çiftidir, bu nedenle sunucu uygulaması geniş kapsamına sahiptir. | ServletContext’in uygulama geniş kapsamı vardır, bu nedenle web.xml dosyasında servlet etiketinin dışında tanımlayın. |
config nesnesini almak için getServletConfig() yöntemi kullanılır | bağlam nesnesini almak için getServletContext() yöntemi kullanılır. |
örneğin bir kullanıcının alışveriş sepeti belirli bir kullanıcıya özel olduğundan burada sunucu uygulaması yapılandırmasını kullanabiliriz | Bir dosyanın MIME türünü veya uygulama oturumu ile ilgili bilgileri almak için sunucu uygulaması bağlam nesnesi kullanılarak depolanır. |
S8. Sunucu uygulamalarında farklı oturum yönetimi yöntemleri nelerdir?
Oturum, istemci ve sunucu arasındaki bir konuşma durumudur ve istemci ile sunucu arasında birden çok istek ve yanıttan oluşabilir. HTTP ve Web Sunucusu durumsuz olduğundan, bir oturumu sürdürmenin tek yolu, her istek ve yanıtta sunucu ve istemci arasında oturum hakkında bazı benzersiz bilgilerin (oturum kimliği) iletilmesidir.
Sunucu uygulamalarında oturum yönetiminin yaygın yollarından bazıları şunlardır:
- Kullanıcı doğrulama
- HTML Gizli Alanı
- Kurabiye
- URL Yeniden Yazma
- Oturum Yönetimi API’si
Bu blog dışında, bu teknoloji konusunda profesyonellerden eğitim almak istiyorsanız, edureka’nın yapılandırılmış eğitimlerini tercih edebilirsiniz! Daha fazla bilgi için aşağıya tıklayın.
JDBC – Java Mülakat Soruları
1. JDBC Sürücüsü Nedir?
JDBC Driver, java uygulamasının veritabanı ile etkileşime girmesini sağlayan bir yazılım bileşenidir. 4 tip JDBC sürücüsü vardır:
- JDBC-ODBC köprü sürücüsü
- Yerel API sürücüsü (kısmen java sürücüsü)
- Ağ Protokolü sürücüsü (tamamen java sürücüsü)
- İnce sürücü (tamamen java sürücüsü)
2. Java’da bir veritabanına bağlanma adımları nelerdir?
- Sürücü sınıfının kaydedilmesi
- Bağlantı oluşturma
- İfade oluşturma
- Sorguları yürütme
- Kapanış bağlantısı
3. JDBC API bileşenleri nelerdir?
Java.sql paketi, JDBC API için arabirimler ve sınıflar içerir.
Arayüzler:
- Bağ
- Beyan
- Hazır Beyanı
- Sonuç kümesi
- Sonuç KümesiMetaVerileri
- VeritabanıMetaVeri
- CallableStatement vb.
Sınıflar:
- Sürücü Yöneticisi
- kabarcık
- pıhtı
- Türler
- SQLException vb.
4. JDBC DriverManager sınıfının rolü nedir?
DriverManager sınıfı , kayıtlı sürücüleri yönetir . Sürücüleri kaydetmek ve kaydını silmek için kullanılabilir. Bağlantı örneğini döndüren fabrika yöntemi sağlar.
5. JDBC Bağlantı arayüzü nedir?
Bağlantı arabirimi , veritabanıyla bir oturum tutar. İşlem yönetimi için kullanılabilir. Statement, ReadyStatement, CallableStatement ve DatabaseMetaData örneğini döndüren fabrika yöntemleri sağlar.
Bu java mülakat sorularıyla ilgili herhangi bir zorlukla karşılaşmanız durumunda, lütfen aşağıdaki bölümde sorunlarınız hakkında yorum yapın.
6. JDBC ResultSet arayüzünün amacı nedir?
ResultSet nesnesi, bir tablo satırını temsil eder. İmleç işaretçisini değiştirmek ve veri tabanından bilgi almak için kullanılabilir.
7. JDBC ResultSetMetaData arayüzü nedir?
ResultSetMetaData arabirimi, toplam sütun sayısı, sütun adı, sütun türü vb. gibi tablo bilgilerini döndürür.
8. JDBC DatabaseMetaData arayüzü nedir?
DatabaseMetaData arabirimi, kullanıcı adı, sürücü adı, sürücü sürümü, tablo sayısı, görünüm sayısı vb. gibi veritabanı bilgilerini döndürür.
9. JDBC’de toplu işleme ile ne demek istiyorsunuz?
Toplu işleme, ilgili SQL ifadelerini bir toplu iş halinde gruplandırmanıza ve bunları tek bir sorgu yürütmek yerine yürütmenize yardımcı olur. JDBC’de toplu işleme tekniğini kullanarak, performansı daha hızlı hale getiren birden çok sorgu çalıştırabilirsiniz.
10. Yürütme, yürütme Sorgulama, YürütmeUpdate arasındaki fark nedir?
Execute (String query) ifadesi, herhangi bir SQL sorgusunu yürütmek için kullanılır ve sonuç, Select sorgularını çalıştırmak gibi bir ResultSet ise, TRUE değerini döndürür. Ekle veya Güncelle sorgularını çalıştırmak gibi bir ResultSet nesnesi olmadığında çıktı YANLIŞ olur. ResultSet’i almak için getResultSet ( ) ‘i ve güncelleme sayısını almak için getUpdateCount() yöntemini kullanabiliriz.
ExecuteQuery (String query) ifadesi, Select sorgularını yürütmek için kullanılır ve ResultSet’i döndürür. Sorguyla eşleşen kayıt olmasa bile döndürülen ResultSet hiçbir zaman boş olmaz. Select sorgularını yürütürken executeQuery yöntemini kullanmalıyız, böylece birisi insert/update ifadesini çalıştırmaya çalışırsa “executeQuery yöntemi güncelleme için kullanılamaz” mesajı ile java.sql.SQLException’ı atar.
ExeexeUpdate (String sorgusu ) ifadesi Insert/Update/Delete (DML) deyimlerini veya hiçbir şey döndürmeyen DDL deyimlerini yürütmek için kullanılır. Çıktı int’dir ve SQL Data Manipulation Language (DML) deyimleri için satır sayısına eşittir. DDL deyimleri için çıktı 0’dır.
Execute() yöntemini yalnızca deyimin türünden emin olmadığınız durumlarda kullanmalısınız, yoksa executeQuery veya executeUpdate yöntemini kullanın.
11. JDBC Açıklamalarından ne anlıyorsunuz?
JDBC deyimleri temel olarak veritabanına SQL komutları göndermek ve veri tabanından veri almak için kullanılan deyimlerdir. Veritabanıyla etkileşim için JDBC tarafından execute(), executeUpdate(), executeQuery vb. gibi çeşitli yöntemler sağlanır.
JDBC, 3 tür ifadeyi destekler:
- Açıklama: Veritabanına genel amaçlı erişim için kullanılır ve çalışma zamanında statik bir SQL sorgusu yürütür.
- ReadyStatement: Yürütme sırasında sorguya giriş parametreleri sağlamak için kullanılır.
- CallableStatement: Veritabanında saklı yordamlara erişmek için kullanılır ve çalışma zamanı parametrelerinin kabul edilmesine yardımcı olur.
Bu java mülakat sorularıyla ilgili herhangi bir zorlukla karşılaşmanız durumunda, lütfen aşağıdaki bölümde sorunlarınızı yorumlayın. Bu Java Mülakat Soruları Blogu dışında, bu teknoloji konusunda profesyonellerden eğitim almak istiyorsanız, edureka’dan yapılandırılmış bir eğitim almayı tercih edebilirsiniz!
Spring Framework – Java Mülakat Soruları
S1. Spring nedir?
Wikipedia, Spring çerçevesini “Java platformu için bir uygulama çerçevesi ve kontrol kabının tersine çevrilmesi” olarak tanımlar. Çerçevenin temel özellikleri herhangi bir Java uygulaması tarafından kullanılabilir, ancak Java EE platformunun üzerine web uygulamaları oluşturmak için uzantılar vardır.” Spring, temel olarak Java’da kurumsal uygulamalar geliştirmek için kullanılabilecek hafif, entegre bir çerçevedir.
S2. Spring çerçevesinin farklı modüllerini adlandırın.
Önemli Spring Framework modüllerinden bazıları şunlardır:
- Spring Context – bağımlılık enjeksiyonu için.
- Spring AOP – en boy yönelimli programlama için.
- Spring DAO – DAO modelini kullanan veritabanı işlemleri için
- Spring JDBC – JDBC ve DataSource desteği için.
- Spring ORM – Hazırda Bekletme gibi ORM araçları desteği için
- Spring Web Module – web uygulamaları oluşturmak için.
- Spring MVC – Web uygulamaları, web hizmetleri vb. oluşturmak için Model-View-Controller uygulaması.
S3. Açıklama tabanlı Spring konfigürasyonundaki bazı önemli notları listeleyin.
Önemli açıklamalar şunlardır:
- @Gerekli
- @Otomatik kablolu
- @Qualifier
- @Kaynak
- @PostConstruct
- @ÖnYok
S4. Spring’te Fasulyeyi Açıklayın ve Bahar Fasulyesinin Farklı Kapsamlarını Listeleyin.
Fasulye, bir Spring uygulamasının omurgasını oluşturan nesnelerdir. Spring IoC konteyneri tarafından yönetilirler. Başka bir deyişle, bean, bir Spring IoC konteyneri tarafından örneklenen, birleştirilen ve yönetilen bir nesnedir.
Bahar fasulyesinde tanımlanan beş Kapsam vardır.
- Singleton : Her bir kap için fasulyenin yalnızca bir örneği oluşturulacaktır. Bu, bahar fasulyeleri için varsayılan kapsamdır. Bu kapsamı kullanırken, yaylı fasulyenin paylaşılan örnek değişkenlerine sahip olmadığından emin olun, aksi takdirde iş parçacığı için güvenli olmadığı için veri tutarsızlığı sorunlarına yol açabilir.
- Prototip : Bean her talep edildiğinde yeni bir instance oluşturulacaktır.
- İstek : Bu, prototip kapsamı ile aynıdır, ancak web uygulamaları için kullanılması amaçlanmıştır. Her HTTP isteği için yeni bir çekirdek örneği oluşturulacaktır.
- Session : Container tarafından her HTTP oturumu için yeni bir bean oluşturulacaktır.
- Global-session : Bu, Portlet uygulamaları için global oturum çekirdekleri oluşturmak için kullanılır.
Bu java mülakat sorularıyla ilgili herhangi bir zorlukla karşılaşmanız durumunda, lütfen aşağıdaki bölümde sorunlarınız hakkında yorum yapın.
S5. DispatcherServlet ve ContextLoaderListener rolünü açıklayın.
DispatcherServlet , yaylı çekirdek yapılandırma dosyasını yüklediği ve yapılandırılan tüm çekirdekleri başlattığı için Spring MVC uygulamasında temel olarak ön denetleyicidir. Açıklamalar etkinleştirilirse, @Component, @Controller, @Repository veya @Service notları ile açıklamalı herhangi bir fasulyeyi yapılandırmak için paketleri de tarar
ContextLoaderListener ise Spring kökünde WebApplicationContext’i başlatan ve kapatan dinleyicidir. Önemli işlevlerinden bazıları, Application Context’in yaşam döngüsünü ServletContext’in yaşam döngüsüne bağlamayı ve ApplicationContext’in oluşturulmasını otomatikleştirmeyi içerir.
S6. Yapıcı enjeksiyonu ile ayarlayıcı enjeksiyon arasındaki farklar nelerdir?
Numara. | Yapıcı Enjeksiyon | Setter Enjeksiyon |
1) | Kısmi Enjeksiyon Yok | Kısmi Enjeksiyon |
2) | setter özelliğini geçersiz kılmaz | Her ikisi de tanımlanmışsa yapıcı özelliğini geçersiz kılar. |
3) | Herhangi bir değişiklik olursa yeni bir örnek oluşturur | Özellik değerini değiştirirseniz yeni bir örnek oluşturmaz |
4) | Çok fazla mülk için daha iyi | Birkaç özellik için daha iyi. |
S7. Sping’te otomatik kablolama nedir? Otomatik kablolama modları nelerdir?
Otomatik kablolama, programcının çekirdeği otomatik olarak enjekte etmesini sağlar. Açık enjeksiyon mantığı yazmamıza gerek yok. Bağımlılık enjeksiyonunu kullanarak fasulye enjekte etme kodunu görelim.
- <bean id= “emp” class = “com.javatpoint.Employee” autowire= “byName” />
Otomatik kablolama modları aşağıda verilmiştir:
Numara. | mod | Tanım |
1) | hayır | bu varsayılan moddur, bu, otomatik kablolamanın etkinleştirilmediği anlamına gelir. |
2) | isimle | Fasulyeyi özellik adına göre enjekte eder. Setter yöntemini kullanır. |
3) | byType | Fasulyeyi özellik tipine göre enjekte eder. Setter yöntemini kullanır. |
4) | yapıcı | Yapıcıyı kullanarak fasulyeyi enjekte eder |
S8. Spring MVC Framework’te istisnalar nasıl ele alınır?
Spring MVC Framework, sağlam istisna işleme elde etmemize yardımcı olmak için aşağıdaki yolları sağlar.
Kontrolör Tabanlı:
İstisna işleyici yöntemlerini controller sınıflarımızda tanımlayabiliriz. Tek ihtiyacımız olan bu yöntemlere @ExceptionHandler notasyonu eklemek.
Global İstisna İşleyicisi:
İstisna İşleme, kesişen bir endişedir ve Spring, global istisna işleyicimizi tanımlamak için herhangi bir sınıfla kullanabileceğimiz @ControllerAdvice ek açıklaması sağlar.
HandlerExceptionResolver uygulaması:
Genel istisnalar için çoğu zaman statik sayfalar sunarız. Spring Framework, global istisna işleyicisi oluşturmak için uygulayabileceğimiz HandlerExceptionResolver arabirimi sağlar. Genel istisna işleyicisini tanımlamanın bu ek yolunun arkasındaki neden, Spring çerçevesinin, yay çerçevesi istisna işleme avantajları elde etmek için bahar fasulyesi yapılandırma dosyamızda tanımlayabileceğimiz varsayılan uygulama sınıflarını da sağlamasıdır.
S9. Kullandığınız önemli Spring notlarından bazıları nelerdir?
Projemde kullandığım bazı Spring notları:
@Controller – Spring MVC projesindeki kontrolör sınıfları için.
@RequestMapping – denetleyici işleyici yöntemlerinde URI eşlemesini yapılandırmak için. Bu çok önemli bir açıklamadır, bu nedenle Spring MVC RequestMapping Ek Açıklama Örneklerini gözden geçirmelisiniz.
@ResponseBody – Nesneyi yanıt olarak göndermek için, genellikle yanıt olarak XML veya JSON verilerini göndermek için.
@PathVariable – URI’den işleyici yöntemi bağımsız değişkenlerine dinamik değerleri eşlemek için.
@Autowired – bahar fasulyelerinde otomatik kablolama bağımlılıkları için.
@Qualifier – bean tipinin birden fazla örneği mevcut olduğunda karışıklığı önlemek için @Autowired notu ile.
@Service – servis sınıfları için.
@Scope – yaylı fasulyenin kapsamını yapılandırmak için.
@Configuration, @ComponentScan ve @Bean – Java tabanlı konfigürasyonlar için.
Yönleri ve tavsiyeleri yapılandırmak için AspectJ ek açıklamaları , @Aspect, @Before, @After, @Around, @Pointcut, vb.
S10. Spring ve Hibernate Frameworks nasıl entegre edilir?
Spring ORM modülünü Spring ve Hibernate çerçevelerini entegre etmek için kullanabiliriz, eğer SessionFactory’nin mevcut oturumu sağladığı Hibernate 3+ kullanıyorsanız, o zaman HibernateTemplate veya HibernateDaoSupport sınıflarını kullanmaktan kaçınmalı ve entegrasyon için bağımlılık enjeksiyonlu DAO modelini kullanmalısınız.
Ayrıca Spring ORM, Spring bildirimli işlem yönetimini kullanmak için destek sağlar, bu nedenle işlem yönetimi için hazırda bekletme kazan plakası koduna gitmek yerine bunu kullanmalısınız.
S11. Spring’in desteklediği işlem yönetimi türlerini adlandırın.
Spring tarafından iki tür işlem yönetimi desteklenir. Bunlar:
- Programlı işlem yönetimi: Bunda işlem, programlama yardımı ile yönetilir. Size aşırı esneklik sağlar, ancak bakımı çok zordur.
- Bildirimli işlem yönetimi: Bunda işlem yönetimi iş kodundan ayrılır. İşlemleri yönetmek için yalnızca ek açıklamalar veya XML tabanlı yapılandırmalar kullanılır.
Deneyimli profesyonellere yönelik bu Core Java mülakat sorularının dışında, bu teknoloji konusunda profesyonellerden eğitim almak istiyorsanız, edureka’nın yapılandırılmış eğitimini tercih edebilirsiniz!
Hibernate – Deneyimli Profesyoneller için Java Mülakat Soruları
1. Hibernate Framework nedir?
Nesne-ilişkisel eşleme veya ORM, uygulama etki alanı modeli nesnelerini ilişkisel veritabanı tablolarına eşlemek için kullanılan programlama tekniğidir. Hazırda Bekletme, uygulama etki alanı nesnelerini ilişkisel veritabanı tablolarına eşlemek için bir çerçeve sağlayan Java tabanlı ORM aracıdır ve bunun tersi de geçerlidir.
Hazırda Bekletme, Java Persistence API’sinin referans uygulamasını sağlar ve bu, onu gevşek bağlantı avantajlarıyla ORM aracı olarak mükemmel bir seçim haline getirir. CRUD işlemleri için Hibernate kalıcılık API’sini kullanabiliriz. Hazırda bekletme çerçevesi, düz eski Java nesnelerini, XML tabanlı yapılandırmanın yanı sıra JPA açıklamalarını kullanarak geleneksel veritabanı tablolarına eşleme seçeneği sunar.
Benzer şekilde, hazırda bekletme yapılandırmaları esnektir ve XML yapılandırma dosyasından ve programlı olarak yapılabilir.
2. Hibernate Framework kullanmanın önemli faydaları nelerdir?
Hazırda bekletme çerçevesi kullanmanın önemli faydalarından bazıları şunlardır:
- Hazırda Bekletme, JDBC ile birlikte gelen tüm kazan plakası kodunu ortadan kaldırır ve kaynakların yönetimiyle ilgilenir, böylece iş mantığına odaklanabiliriz.
- Hazırda bekletme çerçevesi, kod uygulamamızı bağımsız kılan JPA ek açıklamalarının yanı sıra XML için de destek sağlar.
- Hazırda Bekletme, SQL’e benzer güçlü bir sorgu dili (HQL) sağlar. Ancak, HQL tamamen nesne yönelimlidir ve kalıtım, polimorfizm ve ilişkilendirme gibi kavramları anlar.
- Hibernate, Red Hat Community’den açık kaynaklı bir projedir ve dünya çapında kullanılır. Bu, onu diğerlerinden daha iyi bir seçim yapar çünkü öğrenme eğrisi küçüktür ve tonlarca çevrimiçi belge vardır ve forumlarda yardım kolayca bulunabilir.
- Hazırda Bekletme, diğer Java EE çerçeveleriyle entegre etmek kolaydır, o kadar popülerdir ki Spring Framework, hazırda bekletme modunu Spring uygulamalarıyla entegre etmek için yerleşik destek sağlar.
- Hazırda Bekletme, proxy nesneleri kullanarak tembel başlatmayı destekler ve yalnızca gerektiğinde gerçek veritabanı sorguları gerçekleştirir.
- Hazırda bekletme önbelleği, daha iyi performans elde etmemize yardımcı olur.
- Veritabanı satıcısına özel özellik için hazırda bekletme uygundur çünkü yerel sql sorguları da yürütebiliriz.
Genel hazırda bekletme, ORM aracı için mevcut pazardaki en iyi seçimdir, bir ORM aracında ihtiyaç duyacağınız tüm özellikleri içerir.
3. Hibernate mimarisini açıklayın.
Hazırda Bekletme, kullanıcının temel API’leri bilmek zorunda kalmadan çalışmasına yardımcı olan katmanlı bir mimariye sahiptir. Hazırda Bekletme, uygulamaya kalıcılık hizmetleri (ve kalıcı nesneler) sağlamak için veritabanı ve yapılandırma verilerini kullanır. Kalıcı nesne, oturum fabrikası, işlem fabrikası, bağlantı fabrikası, oturum, işlem vb. gibi birçok nesneyi içerir.
Hazırda Bekletme mimarisi dört katmanda kategorize edilir.
- Java uygulama katmanı
- Hazırda bekletme çerçeve katmanı
- Backhand API katmanı
- Veritabanı katmanı
4. Get ve load yöntemleri arasındaki farklar nelerdir?
get() ve load() yöntemleri arasındaki farklar aşağıda verilmiştir.
Numara. | almak() | yük() |
1) | Nesne bulunamazsa null döndürür . | Bir nesne bulunamazsa ObjectNotFoundException’ı atar . |
2) | get() yöntemi her zaman veritabanına isabet eder . | load() yöntemi veritabanına ulaşmıyor . |
3) | Bir proxy değil , gerçek bir nesne döndürür . | Bir proxy nesnesi döndürür. |
4) | Örneğin varlığından emin değilseniz kullanılmalıdır . | Örneğin var olduğundan eminseniz kullanılmalıdır . |
5. Hibernate’in JDBC’ye göre avantajları nelerdir?
Hibernate çerçevesinin JDBC’ye göre önemli avantajlarından bazıları şunlardır:
- Hazırda Bekletme, JDBC API ile birlikte gelen çok sayıda ortak kod kodunu kaldırır, kod daha temiz ve okunabilir görünür.
- Hazırda Bekletme, devralmayı, ilişkilendirmeleri ve koleksiyonları destekler. Bu özellikler JDBC API ile mevcut değildir.
- Hazırda Bekletme, dolaylı olarak işlem yönetimi sağlar, aslında sorguların çoğu işlem dışında yürütülemez. JDBC API’de, commit ve rollback kullanarak işlem yönetimi için kod yazmamız gerekiyor.
- JDBC API , işaretli bir istisna olan SQLException’ı atar , bu nedenle çok sayıda try-catch blok kodu yazmamız gerekir. Çoğu zaman her JDBC çağrısında gereksizdir ve işlem yönetimi için kullanılır. Hazırda Bekletme, JDBC istisnalarını sarar ve JDBCException veya HibernateException denetlenmeyen istisna atar, bu nedenle işlemek için kod yazmamız gerekmez. Hazırda bekletme yerleşik işlem yönetimi, try-catch bloklarının kullanımını kaldırır.
- Hibernate Query Language (HQL) daha nesne yönelimlidir ve Java programlama diline yakındır. JDBC için yerel SQL sorguları yazmamız gerekiyor.
- Hazırda Bekletme, performans için daha iyi olan önbelleğe almayı destekler, JDBC sorguları önbelleğe alınmaz, bu nedenle performans düşüktür.
- Hazırda Bekletme, JDBC tablolarının veritabanında bulunması gerektiğinden, veritabanı tabloları da oluşturabileceğimiz bir seçenek sunar.
- Hazırda bekletme yapılandırması, bağlantı havuzu için JDBC benzeri bağlantının yanı sıra JNDI DataSource’u kullanmamıza yardımcı olur. Bu, kurumsal uygulamada çok önemli bir özelliktir ve JDBC API’sinde tamamen eksiktir.
- Hazırda Bekletme, JPA ek açıklamalarını destekler, bu nedenle kod, uygulamadan bağımsızdır ve diğer ORM araçlarıyla kolayca değiştirilebilir. JDBC kodu, uygulama ile çok sıkı bir şekilde birleştirilmiştir.
Bu Java mülakat sorularıyla ilgili herhangi bir zorlukla karşılaşmanız durumunda, lütfen aşağıdaki bölümde sorunlarınız hakkında yorum yapın. Bu Java Mülakat Soruları Blogu dışında, bu teknoloji konusunda profesyonellerden eğitim almak istiyorsanız, edureka’nın yapılandırılmış eğitimini tercih edebilirsiniz!
JSP – Java Mülakat Soruları
1. Bir jsp için yaşam döngüsü yöntemleri nelerdir?
yöntemler | Tanım |
genel geçersiz jspInit() | Sunucu uygulamasının init yöntemiyle aynı şekilde yalnızca bir kez çağrılır. |
public void _jspService(ServletRequest request,ServletResponse) ServletException,IOException atar | Her istekte, servlet’in service() yöntemiyle aynı şekilde çağrılır. |
genel geçersiz jspDestroy() | Sunucu uygulamasının destroy() yöntemiyle aynı şekilde yalnızca bir kez çağrılır. |
2. JSP örtük nesneleri nelerdir?
JSP, varsayılan olarak 9 örtük nesne sağlar. Bunlar aşağıdaki gibidir:
Nesne | Tip |
1) dışarı | JspYazar |
2) istek | HttpServletTalebi |
3) yanıt | HttpServletYanıt |
4) yapılandırma | ServletConfig |
5) oturum | HttpSession |
6) uygulama | ServletContext |
7) sayfaİçerik | Sayfa Bağlamı |
8) sayfa | Nesne |
9) istisna | atılabilir |
3. Dahil etme yönergesi ile içerme eylemi arasındaki farklar nelerdir?
yönergeyi dahil et | eylemi dahil et |
Dahil etme yönergesi, içeriği sayfa çeviri zamanında içerir. | Dahil etme eylemi, istek zamanında içeriği içerir. |
Dahil etme yönergesi, sayfanın orijinal içeriğini içerir, böylece çalışma zamanında sayfa boyutu artar. | Dahil etme eylemi orijinal içeriği içermez, bunun yerine Vendor tarafından sağlanan sınıfın include() yöntemini çağırır. |
Statik sayfalar için daha iyidir. | Dinamik sayfalar için daha iyidir. |
4. Tarayıcının geri düğmesinde önbelleğe alma nasıl devre dışı bırakılır?
< %
response.setHeader(“Önbellek Kontrolü”,”depolama yok”);
answer.setHeader(“Pragma”,”önbellek yok”);
answer.setHeader (“Süresi Doluyor”, “0”);
// % proxy sunucusunda önbelleğe almayı önler >
5. JSTL’de sağlanan farklı etiketler nelerdir?
5 tip JSTL etiketi vardır.
- çekirdek etiketler
- sql etiketleri
- xml etiketleri
- uluslararasılaştırma etiketleri
- işlev etiketleri
6. JSP’de oturum nasıl devre dışı bırakılır?
- < %@ sayfa oturumu = “yanlış” % >
7. Bir JSP’de Çerez nasıl silinir?
Aşağıdaki kod, bir JSP’deki bir Çerezin nasıl silineceğini açıklar:
1234567891011 | Cookie mycook = new Cookie( "name1" , "value1" ); response.addCookie(mycook1); Cookie killmycook = new Cookie( "mycook1" , "value1" ); killmycook . set MaxAge ( 0 ); killmycook . set Path ( "/" ); killmycook . addCookie ( killmycook 1 ); |
8. jspDestroy() yöntemini açıklayın.
Bir JSP sayfası yok edilmek üzereyken, javax.servlet.jsp.JspPage arabiriminden jspDestry() yöntemi çağrılır . Servlet yok etme yöntemleri, bir veritabanı bağlantısını kapatırken olduğu gibi, temizleme gerçekleştirmek için kolayca geçersiz kılınabilir.
9. JSP, Servlet teknolojisinden nasıl daha iyidir?
JSP, sunucu tarafında içerik oluşturmayı basitleştiren bir teknolojidir. Bunlar belge merkezlidir, sunucu uygulamaları ise programlardır. Bir Java sunucusu sayfası, Java sınıflarını yürüten ve başlatan Java programının parçalarını içerebilir. Ancak, bir HTML şablon dosyası içinde oluşurlar. Bir Web Uygulamasının geliştirilmesi için çerçeve sağlar.
10. Web.xml’de neden JSP standart etiketlerini yapılandırmamalıyız?
Web.xml’de JSP standart etiketlerini yapılandırmamız gerekmez, çünkü kapsayıcı web uygulamasını yüklediğinde ve TLD dosyalarını bulduğunda, bunları doğrudan uygulama JSP sayfalarında kullanılmak üzere otomatik olarak yapılandırır. Sadece taglib yönergesini kullanarak JSP sayfasına eklememiz gerekiyor.
11. HTTP yöntem adını almak için JSP EL’yi nasıl kullanacaksınız?
pageContext JSP EL örtük nesnesini kullanarak, istek nesnesi referansını alabilir ve JSP sayfasındaki HTTP yöntem adını almak için nokta operatörünü kullanabilirsiniz. Bu amaç için JSP EL kodu ${pageContext.request.method} gibi görünecektir.
Bu java mülakat sorularıyla ilgili herhangi bir zorlukla karşılaşmanız durumunda, lütfen aşağıdaki bölümde sorunlarınız hakkında yorum yapın. Bu Java Mülakat Soruları Blogu dışında, bu teknoloji konusunda profesyonellerden eğitim almak istiyorsanız, edureka’nın yapılandırılmış eğitimini tercih edebilirsiniz!
İstisna ve Konu Java Mülakat Soruları
S1. Hata ve İstisna arasındaki fark nedir?
Hata, çalışma zamanında meydana gelen geri dönüşü olmayan bir durumdur. OutOfMemory hatası gibi. Bu JVM hatalarını çalışma zamanında onaramazsınız. Yakalama bloğunda hata yakalanabilir, ancak uygulamanın yürütülmesi durma noktasına gelir ve kurtarılamaz.
İstisnalar, hatalı girdi veya insan hatası vb. nedeniyle oluşan koşullar olsa da, örneğin belirtilen dosya mevcut değilse, FileNotFoundException oluşturulacaktır. Veya boş bir başvuru kullanmayı denerseniz bir NullPointerException gerçekleşir. Çoğu durumda bir istisnadan kurtulmak mümkündür (muhtemelen kullanıcıya uygun değerleri girmesi vb. için geri bildirim vererek).
S2. Java istisnalarını nasıl ele alabilirsiniz?
Java’da istisnaları işlemek için kullanılan beş anahtar kelime vardır:
- denemek
- tutmak
- en sonunda
- atmak
- atar
S3. Kontrol Edilen İstisna ile Kontrol Edilmeyen İstisna arasındaki farklar nelerdir?
Kontrol Edilen İstisna
- RuntimeException ve Error dışında Throwable sınıfını genişleten sınıflar, kontrol edilen istisnalar olarak bilinir.
- Kontrol edilen istisnalar derleme zamanında kontrol edilir.
- Örnek: IOException, SQLException vb.
İşaretlenmemiş İstisna
- RuntimeException’ı genişleten sınıflar, denetlenmeyen istisnalar olarak bilinir.
- Kontrol edilmeyen istisnalar derleme zamanında kontrol edilmez.
- Örnek: ArithmeticException, NullPointerException vb.
S4. İplik kullanımının farklı yolları nelerdir?
Bir iş parçacığı oluşturmanın iki yolu vardır:
- Thread sınıfını genişletme
Bu, Thread sınıfını genişleten yeni bir sınıfın örneğini oluşturarak bir iş parçacığı oluşturur. Genişleyen sınıf, iş parçacığının giriş noktası olan run() işlevini geçersiz kılmalıdır.
- Çalıştırılabilir arabirimi uygulama
Çalıştırılabilir arabirimi uygulayan bir sınıf oluşturarak bir iş parçacığı oluşturmanın en kolay yolu budur. Çalıştırılabilir arabirimi uyguladıktan sonra, sınıfın public void run() yöntemini () uygulaması gerekir.
run() yöntemi, programınızda paralel bir iş parçacığı oluşturur. run() döndüğünde, iş parçacığı sona erecektir.
run() yöntemi, programınızda paralel bir iş parçacığı oluşturur. run() döndüğünde, iş parçacığı sona erecektir.
run() yönteminde, iş parçacığının kodunu belirtmelisiniz.
Diğer yöntemler gibi, run() yöntemi de diğer yöntemleri çağırabilir, diğer sınıfları kullanabilir ve değişkenleri tanımlayabilir.
Java, “değere göre geçiş” veya “referans ile geçiş” fenomeni olarak mı çalışıyor?
Java her zaman değere göre geçer. Bu, parametre içeriğinin bir kopyasını bellekte oluşturduğu anlamına gelir. Java’da nesne değişkenleri her zaman bellek yığınının gerçek nesnesine başvurur.
S5. Aşağıda gösterildiği gibi try bloğu ve catch bloğunun sonunda return ifadesi yazıldığında nihayet bloğu yürütülecek mi?
Nihayet bloğu, try bloğunun ve catch bloğunun sonunda return ifadesi yazıldığında bile her zaman yürütülür. İstisna olsa da olmasa da her zaman yürütülür. VM çökmesi, elektrik kesintisi, yazılım çökmesi vb. gibi nihayet bloğunun yürütülmediği yalnızca birkaç durum vardır. Final bloğunu yürütmek istemiyorsanız, System.exit()’i çağırmanız gerekir. yöntem açıkça nihayet bloğunda.
S6. Bir istisna kodda nasıl yayılır?
Bir istisna yakalanmazsa, yığının tepesinden atılır ve çağrı yığınından önceki prosedüre düşer. İstisna orada yakalanmazsa, önceki işleve geri döner ve bu, yakalanana veya çağrı yığını dibe ulaşana kadar böyle devam eder. Bunun için terim İstisna yayılımıdır.
S7. Java iş parçacığı yaşam döngüsünü açıklayabilir misiniz?
Java iş parçacığı yaşam döngüsü aşağıdaki durumlara sahiptir:
Yeni-
Bir iş parçacığı oluşturulduğunda ve program iş parçacığını başlatmadan önce yeni durumdadır. Aynı zamanda doğuştan iplik olarak da adlandırılır.
çalıştırılabilir
Bir iş parçacığı başlatıldığında, Çalıştırılabilir durumdadır. Bu durumda, iş parçacığı görevini yürütüyor.
Beklemek
Bazen bir iş parçacığı, başka bir iş parçacığı yürütülmekte olduğu için boşta kaldığı bekleme durumuna gider. Diğer iş parçacığı bittiğinde, bekleyen iş parçacığı tekrar çalışır duruma gelir.
Zamanlanmış Bekleme
Zamanlanmış beklemede, iş parçacığı bekleme durumuna geçer. Ancak, yalnızca belirli bir zaman aralığı için bekleme durumunda kalır, ardından yürütmeye başlar. Zaman aralığı bitene kadar veya diğer iş parçacığı bitene kadar beklemede kalır.
Sonlandırılmış
Bir iş parçacığı sona erdiğinde bu durumda olduğu söylenir. Konunun görevini tamamlamış olması veya başka bir nedenle olabilir.
S8. Nihai, nihayet ve kesinleştirme anahtar kelimeleri hangi amacı yerine getirir?
Son:
Final, sınıf, yöntem ve değişken üzerindeki kısıtlamaları uygulamak için kullanılır. Son sınıf miras alınamaz, son yöntem geçersiz kılınamaz ve son değişken değeri değiştirilemez. Daha iyi anlamak için aşağıdaki örneği inceleyelim.
123456 | class FinalVarExample { public static void main( String args[]) { final int a= 10 ; // Final variable a= 50 ; //Error as value can't be changed } |
Nihayet
Son olarak, önemli kodu yerleştirmek için kullanılır, istisna işlenip işlenmediğine bakılmaksızın yürütülür. Daha iyi anlamak için aşağıdaki örneği inceleyelim.
123456789101112 | class FinallyExample { public static void main(String args[]){ try { int x= 100 ; } catch (Exception e) { System.out.println(e); } finally { System.out.println( "finally block is executing" );} }} } |
Sonuçlandırmak
Sonlandırma, nesne çöp toplanmadan hemen önce temizleme işlemini gerçekleştirmek için kullanılır. Daha iyi anlamak için aşağıdaki örneği inceleyelim.
12345678910111213 | class FinalizeExample { public void finalize() { System.out.println( "Finalize is called" ); } public static void main(String args[]) { FinalizeExample f1= new FinalizeExample(); FinalizeExample f2= new FinalizeExample(); f1= NULL; f2=NULL; System.gc(); } } |
S9. Fırlatma ve fırlatma arasındaki farklar nelerdir?
anahtar kelime atmak | anahtar kelime atar |
Throw, açıkça bir istisna atmak için kullanılır. | Atarlar bir istisna bildirmek için kullanılır. |
İşaretli istisnalar yalnızca atma ile yayılamaz. | Kontrol edilen istisna, atışlarla yayılabilir. |
Fırlatmayı bir örnek takip eder. | Fırlatmaları sınıf takip eder. |
Fırlatma yöntemi içinde kullanılır. | Atarlar, yöntem imzasıyla birlikte kullanılır. |
Birden çok istisna atamazsınız | Birden çok istisna bildirebilirsiniz, örneğin public void method()throws IOException,SQLException. |
Bu java mülakat sorularıyla ilgili herhangi bir zorlukla karşılaşmanız durumunda, lütfen aşağıdaki bölümde sorunlarınız hakkında yorum yapın.
S10. Java’da istisna hiyerarşisi nedir?
Hiyerarşi aşağıdaki gibidir:
Atılabilir, tüm İstisna sınıflarının bir üst sınıfıdır. İki tür İstisna vardır: Kontrol edilen istisnalar ve UncheckedExceptions veya RunTimeExceptions. Her iki istisna türü de İstisna sınıfını genişletirken, hatalar ayrıca Sanal Makine hatası ve Onaylama hatası olarak sınıflandırılır.
S11. Özel bir İstisna nasıl oluşturulur?
Kendi istisnanızı oluşturmak için İstisna sınıfını veya alt sınıflarından herhangi birini genişletin.
- class New1Exception, İstisnayı { } genişletir // bu, Kontrol Edilen İstisna yaratacaktır
- class NewException, IOException { } öğesini genişletir // bu, Kontrollü istisna oluşturur
- class NewException NullPonterExcpetion { } öğesini genişletir // bu UnChecked istisnası oluşturur
S12. Java İstisna Sınıfının önemli yöntemleri nelerdir?
İstisna ve tüm alt sınıfları herhangi bir özel yöntem sağlamaz ve tüm yöntemler Throwable temel sınıfında tanımlanır.
- String getMessage() – Bu yöntem, String of Throwable mesajını döndürür ve bu mesaj, yapıcısı aracılığıyla istisna oluşturulurken sağlanabilir.
- String getLocalizedMessage( ) – Bu yöntem, alt sınıfların çağıran programa yerel ayara özel mesaj sağlamak için geçersiz kılabilmesi için sağlanır. Bu yöntemin atılabilir sınıf uygulaması , istisna mesajını döndürmek için getMessage() yöntemini kullanır.
- Senkronize Atılabilir getCause() – Bu yöntem, istisnanın nedenini veya nedeni bilinmeyen boş kimliği döndürür.
- String toString() – Bu yöntem, Throwable hakkındaki bilgileri String biçiminde döndürür, döndürülen String, Throwable sınıfının adını ve yerelleştirilmiş mesajı içerir.
- void printStackTrace() – Bu yöntem, yığın izleme bilgilerini standart hata akışına yazdırır, bu yöntem aşırı yüklenmiştir ve yığın izleme bilgilerini dosyaya veya akışa yazmak için bir argüman olarak PrintStream veya PrintWriter iletebiliriz.
S13. İşlemler ve iş parçacıkları arasındaki farklar nelerdir?
İşlem | İplik | |
Tanım | Bir programın çalışan bir örneğine süreç denir. | Bir iş parçacığı, işlemin bir alt kümesidir. |
İletişim | Süreçler, kardeş süreçlerle iletişim kurmak için süreçler arası iletişimi kullanmalıdır. | İş parçacıkları, sürecinin diğer iş parçacıklarıyla doğrudan iletişim kurabilir. |
Kontrol | Süreçler yalnızca alt süreçler üzerinde kontrol uygulayabilir. | Dişler, aynı işlemin iş parçacıkları üzerinde önemli ölçüde kontrol uygulayabilir. |
Değişiklikler | Ana süreçteki herhangi bir değişiklik, alt süreçleri etkilemez. | Ana iş parçacığındaki herhangi bir değişiklik, işlemin diğer iş parçacıklarının davranışını etkileyebilir. |
Hafıza | Ayrı bellek alanlarında çalıştırın. | Paylaşılan bellek alanlarında çalıştırın. |
tarafından kontrol ediliyor | İşlem, işletim sistemi tarafından kontrol edilir. | Konular bir programda programcı tarafından kontrol edilir. |
Bağımlılık | Süreçler bağımsızdır. | Konular bağımlıdır. |
S14. Nihayet blok nedir? Sonunda yürütmeyeceği bir durum var mı?
Son olarak blok, her zaman bir dizi ifadeyi yürüten bir bloktur. Oluşan veya olmayan herhangi bir istisnadan bağımsız olarak her zaman bir try bloğu ile ilişkilendirilir.
Evet, program System.exit()’i çağırarak veya işlemin durdurulmasına neden olan önemli bir hataya neden olarak çıkarsa, son olarak yürütülmez.
S15. senkronizasyon nedir?
Senkronizasyon, çoklu iş parçacığını ifade eder. Senkronize edilmiş bir kod bloğu, aynı anda yalnızca bir iş parçacığı tarafından yürütülebilir. Java birden çok iş parçacığının yürütülmesini desteklediğinden, iki veya daha fazla iş parçacığı aynı alanlara veya nesnelere erişebilir. Senkronizasyon, tüm eşzamanlı iş parçacıklarının senkronize olmasını sağlayan bir işlemdir. Senkronizasyon, paylaşılan belleğin tutarsız görünümünden kaynaklanan bellek tutarlılığı hatalarını önler. Bir yöntem senkronize olarak bildirildiğinde, iş parçacığı o yöntemin nesnesi için monitörü tutar. Başka bir iş parçacığı senkronize yöntemi yürütüyorsa, iş parçacığı monitörü serbest bırakana kadar iş parçacığı engellenir.
S16. Tek bir deneme bloğunun altına birden fazla yakalama bloğu yazabilir miyiz?
Evet, tek bir deneme bloğu altında birden fazla yakalama bloğumuz olabilir, ancak yaklaşım özelden genele doğru olmalıdır. Bunu programlı bir örnekle anlayalım.
12345678910111213141516171819 | public class Example { public static void main(String args[]) { try { int a[]= new int [ 10 ]; a[ 10 ]= 10 / 0 ; } catch (ArithmeticException e) { System.out.println( "Arithmetic exception in first catch block" ); } catch (ArrayIndexOutOfBoundsException e) { System.out.println( "Array index out of bounds in second catch block" ); } catch (Exception e) { System.out.println( "Any exception in third catch block" ); } } |
S17. Java İstisna Sınıfının önemli yöntemleri nelerdir?
Yöntemler, Throwable temel sınıfında tanımlanır. Java istisna sınıfının önemli yöntemlerinden bazıları aşağıda belirtilmiştir.
- String getMessage() – Bu yöntem, istisna hakkında String mesajını döndürür. Mesaj, yapıcısı aracılığıyla sağlanabilir.
- public StackTraceElement[] getStackTrace() – Bu yöntem, yığın izlemedeki her öğeyi içeren bir dizi döndürür. 0 dizinindeki öğe, çağrı yığınının üstünü temsil ederken dizideki son öğe, çağrı yığınının altındaki yöntemi temsil eder.
- Synchronized Throwable getCause() – Bu yöntem, bir Throwable nesnesi tarafından temsil edildiği gibi istisnanın veya boş kimliğin nedenini döndürür.
- String toString() – Bu yöntem, bilgileri String biçiminde döndürür. Döndürülen String, Throwable sınıfının adını ve yerelleştirilmiş mesajı içerir.
- void printStackTrace() – Bu yöntem, yığın izleme bilgilerini standart hata akışına yazdırır.
S18. Java’da OutOfMemoryError nedir?
OutOfMemoryError, Java.lang.Error öğesinin alt sınıfıdır ve genellikle JVM’mizin belleği tükendiğinde oluşur.
S19. İplik nedir?
Bir iş parçacığı, bir zamanlayıcı tarafından bağımsız olarak yürütülebilen programlanmış talimatların en küçük parçasıdır. Java’da, tüm programların ana iş parçacığı olarak bilinen en az bir iş parçacığı olacaktır. Bu ana iş parçacığı, program yürütmeye başladığında JVM tarafından oluşturulur. Ana iş parçacığı, programın ana () işlevini çağırmak için kullanılır.
S20. Bir iş parçacığı oluşturmanın iki yolu nedir?
Java’da iş parçacıkları aşağıdaki iki yolla oluşturulabilir: –
- Runnable arabirimini uygulayarak.
- Konuyu uzatarak
S21. Java’daki farklı çöp toplayıcı türleri nelerdir?
Java’da çöp toplama, örtük bellek yönetimine yardımcı olan bir programdır. Java’da, new anahtar sözcüğünü kullanarak dinamik olarak nesneler oluşturabilirsiniz, bu bir kez oluşturulduktan sonra biraz bellek tüketecektir. İş bittiğinde ve nesneye başka referans kalmadığında, çöp toplama kullanan Java nesneyi yok eder ve işgal ettiği belleği boşaltır. Java dört tür çöp toplayıcı sağlar:
- Seri Çöp Toplayıcı
- Paralel Çöp Toplayıcı
- CMS Çöp Toplayıcı
- G1 Çöp Toplayıcı
Bu java mülakat sorularıyla ilgili herhangi bir zorlukla karşılaşmanız durumunda , lütfen aşağıdaki bölümde sorunlarınızı yorumlayın. Bu Blog dışında, bu teknoloji konusunda profesyonellerden eğitim almak istiyorsanız, edureka’dan yapılandırılmış eğitimleri tercih edebilirsiniz!
Bu bizi Java mülakat soruları blogunun sonuna getiriyor. Bu Temel Java Mülakat Soruları blogunda öğrendiğiniz konular, işe alım uzmanlarının bir Java Profesyonelinde aradığı en çok aranan beceri gruplarıdır. Bu Java Mülakat Soruları seti, iş görüşmenizde başarılı olmanıza kesinlikle yardımcı olacaktır. Mülakatta bol şanslar!
Dünya çapında 250.000’den fazla memnun öğrenciden oluşan bir ağa sahip güvenilir bir çevrimiçi öğrenme şirketi olan Edureka’nın Java Eğitimine göz atın. Yolculuğunuzun her adımında size yardımcı olmak için buradayız, bu java röportaj sorularının yanı sıra Java Developer olmak isteyen öğrenciler ve profesyoneller için tasarlanmış bir müfredat hazırladık. Kurs, Java programlamaya bir adım önde başlamanızı sağlamak ve sizi hem temel hem de ileri düzey Java kavramlarının yanı sıra Hibernate & Spring gibi çeşitli Java çerçeveleri konusunda eğitmek için tasarlanmıştır.
Bize bir sorunuz mu var? Lütfen bu “ Java Mülakat Soruları” nın yorumlar bölümünde belirtin, mümkün olan en kısa sürede size geri döneceğiz veya Bangalore’deki Java Eğitimimize de katılabilirsiniz .
Makalenin orjinal kaynağını bu linkten okuyabilirsiniz.
Tüm yazılarımızı buradan okuyabilirsiniz.