PDF İndir
Mülakat görevlisinin size mülakat sırasında sorabileceği Temel Java mülakat sorularına hazırlanmanıza yardımcı olacak en sık sorulan Java Mülakat Soruları ve Cevaplarını derledik. Bu Temel Java mülakat soruları listesinde, iş görüşmesini temizlemenize yardımcı olmak için yaygın olarak sorulan tüm temel ve gelişmiş Core Java mülakat sorularını ayrıntılı yanıtlarla ele aldık.
Aşağıdaki liste, yeni başlayanlar için 100 önemli Core Java mülakat sorusunun yanı sıra deneyimli programcıların görüşmeye hazırlanmalarına yardımcı olacak Java mülakat soruları ve cevaplarını içerir. Java Programlama için mülakat sorularının bu ayrıntılı kılavuzu, İş mülakatınızı kolayca kırmanıza yardımcı olacaktır.
Yeni Başlayanlar ve Deneyimli Kişiler için Temel Java Mülakat Soruları ve Cevapları
S1. Bir İç Sınıf ile Alt Sınıf arasındaki fark nedir?
Ans: Inner sınıfı, başka bir sınıfın içine yerleştirilmiş bir sınıftır. Bir Inner sınıfı, onu iç içe geçiren sınıf için erişim haklarına sahiptir ve dış sınıfta tanımlanan tüm değişkenlere ve yöntemlere erişebilir.
Bir alt sınıf, süper sınıf adı verilen başka bir sınıftan miras kalan bir sınıftır. Alt sınıf, süper sınıfının tüm genel ve korumalı yöntemlerine ve alanlarına erişebilir.
S2. Java sınıfları için çeşitli erişim tanımlayıcıları nelerdir?
Cevap: Java'da, erişim belirteçleri, erişim kapsamını tanımlayan bir sınıf adından önce kullanılan anahtar sözcüklerdir. Sınıflar için erişim belirleyici türleri şunlardır:
1. Genel: Sınıf, Yöntem, Alana her yerden erişilebilir.
2. Korumalı: Metot, Alana ait oldukları aynı sınıftan veya alt sınıflardan ve aynı paketin sınıfından ancak dışarıdan erişilemez.
3. Varsayılan: Yöntem, Alan, sınıfa yalnızca aynı paketten erişilebilir, yerel paketin dışından erişilemez.
4. Özel: Yöntem, Alana ait oldukları aynı sınıftan erişilebilir.
S3. Statik yöntemlerin ve statik değişkenlerin amacı nedir?
Cevap: Bir sınıfın birden çok nesnesi arasında bir yöntemi veya değişkeni paylaşma gereksinimi olduğunda, her nesne için ayrı kopyalar oluşturmak yerine, tüm nesneler için paylaşılan bir yöntem veya değişken oluşturmak için statik anahtar sözcüğü kullanırız.
S4. Veri kapsülleme nedir ve önemi nedir?
Ans: Encapsulation, özellikleri ve yöntemleri tek bir birimde birleştirmek için bir Nesne Yönelimli Programlama konseptidir.
Kapsülleme, programcıların yazılım geliştirme için modüler bir yaklaşım izlemelerine yardımcı olur çünkü her nesnenin kendi yöntemleri ve değişkenleri vardır ve işlevlerini diğer nesnelerden bağımsız olarak yerine getirir. Kapsülleme ayrıca veri gizleme amacına da hizmet eder.
S5. Singleton sınıfı nedir? Kullanımının pratik bir örneğini verin.
Java'daki bir singleton sınıfının yalnızca bir örneği olabilir ve bu nedenle tüm yöntemleri ve değişkenleri yalnızca bir örneğe aittir. Singleton sınıfı kavramı, bir sınıftaki nesne sayısını sınırlama ihtiyacı duyulduğunda kullanışlıdır.
Tekil kullanım senaryosunun en iyi örneği, bazı sürücü sınırlamaları veya herhangi bir lisans sorunu nedeniyle bir veritabanına yalnızca bir bağlantıya sahip olma sınırının olduğu zamandır.
S6. Java'da Döngüler nedir? Üç tür döngü nedir?
Cevap: Döngü, programlamada bir ifadeyi veya bir ifade bloğunu tekrar tekrar yürütmek için kullanılır. Java'da üç tür döngü vardır:
1) Döngüler İçin
For döngüler, java'da ifadeleri belirli bir sayıda tekrar tekrar çalıştırmak için kullanılır. For döngüleri, programcı tarafından ifadelerin kaç kez çalıştırılacağını bildiğinde kullanılır.
2) Döngüler
While döngüsü, belirli ifadelerin bir koşul yerine getirilene kadar tekrar tekrar yürütülmesi gerektiğinde kullanılır. While döngülerinde, koşul ifadelerin yürütülmesinden önce kontrol edilir.
3) Döngüler Yaparken Yapın
Do While Loop, While döngüsü ile aynıdır, tek fark, bu koşul ifadeler bloğunun yürütülmesinden sonra kontrol edilir. Bu nedenle do while döngüsü durumunda, ifadeler en az bir kez yürütülür.
S7: Sonsuz Döngü nedir? Sonsuz döngü nasıl ilan edilir?
Cevap: Sonsuz bir döngü herhangi bir koşul olmaksızın çalışır ve sonsuz olarak çalışır. Sonsuz bir döngü, ifade bloklarının gövdesinde herhangi bir kesme mantığı tanımlanarak kırılabilir.
Sonsuz döngü şu şekilde bildirilir:
for (;;){// Statements to execute// Add any loop breaking logic}
S8. Continue ve break ifadesi arasındaki fark nedir?
Cevap: break ve Continue, Loops'ta kullanılan iki önemli anahtar sözcüktür. Bir döngüde bir break anahtar sözcüğü kullanıldığında, continue anahtar sözcüğü kullanıldığında döngü anında kesilir, geçerli yineleme kesilir ve döngü bir sonraki yinelemeyle devam eder.
Aşağıdaki örnekte, sayaç 4'e ulaştığında Döngü bozulur.
for (counter = 0; counter & lt; 10; counter++)system.out.println(counter);if (counter == 4) {break;}}
Aşağıdaki örnekte, sayaç 4'e ulaştığında, döngü bir sonraki yinelemeye atlar ve continue anahtar sözcüğünden sonraki tüm ifadeler geçerli yineleme için atlanır.
for (counter = 0; counter < 10; counter++)system.out.println(counter);if (counter == 4) {continue;}system.out.println("This will not get printed when counter is 4");}
S9. Java'da double ve float değişkenler arasındaki fark nedir?
Cevap: Java'da, float bellekte 4 bayt alırken, Double bellekte 8 bayt alır. Float, tek duyarlıklı kayan noktalı ondalık sayıdır, Double ise çift duyarlıklı ondalık sayıdır.
S10. Java'da Son Anahtar Kelime nedir? Örnek vermek.
Cevap: Java'da, Final anahtar sözcüğü kullanılarak bir sabit bildirilir. Değer yalnızca bir kez atanabilir ve atamadan sonra bir sabitin değeri değiştirilemez.
Aşağıdaki örnekte, const_val adında bir sabit bildirilir ve değer olarak atanır:
Özel Final int const_val = 100
Bir yöntem son olarak bildirildiğinde, alt sınıflar tarafından geçersiz kılınamaz. Bu yöntem diğer yöntemlerden daha hızlıdır, çünkü bunlar uygun zamanda çözülür.
Bir sınıf nihai olarak ilan edildiğinde, alt sınıflara alınamaz. Örnek String, Integer ve diğer sarmalayıcı sınıfları.
S11. Üçlü operatör nedir? Örnek vermek.
Ans: Koşullu operatör olarak da adlandırılan üçlü operatör, Boolean değer değerlendirmesine dayalı olarak bir değişkene hangi değerin atanacağına karar vermek için kullanılır. Olarak gösteriliyor?
Aşağıdaki örnekte, rank değeri 1 ise, duruma "Bitti", aksi takdirde "Beklemede" değeri atanır.
public class conditionTest {public static void main(String args[]) {String status;int rank = 3;status = (rank == 1) ? "Done" : "Pending";System.out.println(status);}}
S12: Java'da rasgele sayıları nasıl üretebilirsiniz?
Ans:
- Math.random () kullanarak 0.1'den büyük veya ona eşit ve 1.0'dan küçük aralıkta rastgele sayılar üretebilirsiniz.
- Java.util paketinde Random sınıfını kullanma
S13. Varsayılan anahtar durumu nedir? Örnek ver.
Ans: Bir switch deyiminde, başka hiçbir switch koşulu eşleşmediğinde varsayılan durum yürütülür. Varsayılan durum isteğe bağlı bir durumdur. Yalnızca diğer tüm anahtar durumları kodlandıktan sonra bildirilebilir.
Aşağıdaki örnekte, puan 1 veya 2 olmadığında, varsayılan durum kullanılır.
public class switchExample {int score = 4;public static void main(String args[]) {switch (score) {case 1:system.out.println("Score is 1");break;case 2:system.out.println("Score is 2");break;default:system.out.println("Default Case");}}}
S14. Java'da tüm sınıfların türetildiği temel sınıf nedir?
Ans: java.lang.object
S15. Java'da main () yöntemi herhangi bir veri döndürebilir mi?
Cevap: Java'da, main () yöntemi herhangi bir veri döndüremez ve bu nedenle, her zaman bir void dönüş türü ile bildirilir.
S16. Java Paketleri nedir? Paketlerin önemi nedir?
Cevap: Java'da paket, birbirleriyle ilişkili olduklarından birlikte paketlenmiş sınıflar ve arabirimler koleksiyonudur. Paketlerin kullanılması, geliştiricilerin kodu modüler hale getirmesine ve doğru yeniden kullanım için kodu gruplandırmasına yardımcı olur. Kod, Paketler halinde paketlendiğinde, diğer sınıflara aktarılabilir ve kullanılabilir.
S17. Soyut bir yönteme sahip olmadan bir sınıfı Abstract olarak ilan edebilir miyiz?
Cevap: Evet, herhangi bir soyut yöntemi olmasa bile, sınıf isminden önce abstract anahtar sözcüğünü kullanarak soyut bir sınıf oluşturabiliriz. Ancak, bir sınıfın tek bir soyut yöntemi varsa, soyut olarak bildirilmesi gerekir, aksi takdirde hata verecektir.
S18. Java'da Soyut Sınıf ile Arayüz arasındaki fark nedir?
Cevap: Soyut bir sınıf ile arabirim arasındaki temel fark, bir arabirimin yalnızca somut bir uygulama olmaksızın genel statik yöntemlerin bildirimine sahip olabilmesidir; soyut bir sınıfın ise somut uygulama ile veya olmadan herhangi bir erişim belirleyicisine (genel, özel vb.) Sahip üyeleri olabilir.
Soyut sınıfların ve arabirimlerin kullanımındaki diğer bir önemli fark, bir arabirimi uygulayan bir sınıfın arabirimin tüm yöntemlerini uygulaması gerektiğidir; soyut bir sınıftan miras alan bir sınıf, süper sınıfının tüm yöntemlerinin uygulanmasını gerektirmez.
Bir sınıf birden çok arabirim uygulayabilir, ancak yalnızca bir soyut sınıfı genişletebilir.
S19. Arayüzlerin soyut sınıflar üzerindeki performans etkileri nelerdir?
Cevap: Arayüzler için ekstra indirimler gerektiğinden, arayüzler soyut sınıflara kıyasla daha yavaştır. Geliştiricilerin dikkate alması gereken bir diğer önemli faktör de, herhangi bir sınıfın yalnızca bir soyut sınıfı genişletebilmesi ve bir sınıfın birçok arabirimi uygulayabilmesidir.
Arayüzlerin kullanımı ayrıca, bir arayüzün bir sınıfta uygulandığı her seferde geliştiricilere fazladan bir yük getirir; geliştirici her bir arabirim yöntemini uygulamaya zorlanır.
S20. Bir paketi içe aktarmak, alt paketlerini Java'da da içe aktarır mı?
Cevap: Java'da, bir paket içe aktarıldığında, alt paketleri içe aktarılmaz ve gerekirse geliştiricinin bunları ayrı olarak içe aktarması gerekir.
Örneğin, bir geliştirici bir paket üniversitesi. * İçe aktarırsa, üniversite adlı paketteki tüm sınıflar yüklenir ancak alt paketten hiçbir sınıf yüklenmez. Sınıfları alt paketinden (departman diyelim) yüklemek için geliştiricinin aşağıdaki gibi açıkça içe aktarması gerekir:
İthalat üniversite bölümü. *
S21. Sınıfımızın ana yöntemini özel olarak ilan edebilir miyiz?
Cevap: Java'da, herhangi bir uygulamayı doğru şekilde çalıştırmak için ana yöntem genel statik olmalıdır. Ana yöntem özel olarak bildirilirse, geliştirici herhangi bir derleme hatası almaz, ancak çalıştırılmaz ve bir çalışma zamanı hatası verir.
S22. Değere göre geçirmek yerine bir işleve gönderme yoluyla argümanı nasıl iletebiliriz?
Cevap: Java'da, bir işleve referansla değil, yalnızca değere göre bağımsız değişken geçirebiliriz.
S23. Java'da bir nesne nasıl serileştirilir?
Ans: Java'da, bir nesneyi serileştirme yoluyla bayt akışına dönüştürmek için, sınıf tarafından Serializable adlı bir arabirim uygulanır. Serileştirilebilir arabirimi uygulayan bir sınıfın tüm nesneleri serileştirilir ve durumları bayt akışına kaydedilir.
S24. Serileştirmeyi ne zaman kullanmalıyız?
Cevap: Serileştirme, verilerin ağ üzerinden iletilmesi gerektiğinde kullanılır. Serileştirme kullanılarak nesnenin durumu kaydedilir ve bayt akışına dönüştürülür. Bayt akışı ağ üzerinden aktarılır ve nesne hedefte yeniden oluşturulur.
S25. İstisna işleme için Java'da bir Try Bloğunun ardından Catch Block'un gelmesi zorunlu mudur?
Cevap: Try bloğunun ardından Yakalama bloğu veya Nihayet bloğu veya her ikisi de gelmelidir. Try bloğundan atılan herhangi bir istisna ya catch bloğunda yakalanmalı ya da kod kürtajı Last bloğuna konulmadan önce gerçekleştirilecek herhangi bir özel görev olmalıdır.
S26. İstisna bloğunda bazı istisnalar meydana gelse bile Nihayet istisna bloğunu atlamanın bir yolu var mı?
Cevap: Try bloğunda bir istisna ortaya çıkarsa, kontrol bloğu yakalamaya geçer, aksi halde bloke eder. Son olarak blok, bir istisna meydana geldiğinde her zaman yürütülür ve Nihayet bloğundaki herhangi bir ifadenin yürütülmesini önlemenin tek yolu, try bloğunun sonunda aşağıdaki kod satırını yazarak kodu zorla iptal etmektir:
System.exit(0);
S27. Bir sınıfın kurucusu ne zaman çağrılır?
Ans: Bir sınıfın kurucusu, yeni anahtar sözcükle bir nesne her oluşturulduğunda çağrılır.
Örneğin, aşağıdaki sınıfta, new anahtar sözcüğü kullanılarak iki nesne oluşturulur ve bu nedenle, yapıcı iki kez çağrılır.
public class const_example {const_example() {system.out.println("Inside constructor");}public static void main(String args[]) {const_example c1 = new const_example();const_example c2 = new const_example();}}
S28. Bir sınıfın birden fazla kurucusu olabilir mi?
Cevap: Evet, bir sınıfın farklı parametrelere sahip birden çok kurucusu olabilir. Nesne oluşturmak için hangi kurucunun kullanılacağı, nesneler oluşturulurken aktarılan argümanlara bağlıdır.
S29. Bir sınıfın statik yöntemlerini geçersiz kılabilir miyiz?
Cevap: Statik yöntemleri geçersiz kılamayız. Statik yöntemler tek tek nesnelere değil bir sınıfa aittir ve derleme sırasında çözülür (çalışma zamanında değil). Statik yöntemi geçersiz kılmaya çalışsak bile, bir derleme hatası veya kodu.
S30. Aşağıdaki örnekte çıktı ne olacak?
public class superclass {public void displayResult() {system.out.println("Printing from superclass");}}public class subclass extends superclass {public void displayResult() {system.out.println("Displaying from subClass");super.displayResult();}public static void main(String args[]) {subclass obj = new subclass();obj.displayResult();}}
Ans : Çıktı şu şekilde olacaktır:
Alt sınıftan görüntüleniyor
Süper sınıftan görüntüleniyor
S31. String, java'da bir veri türü midir?
Ans: String, java'da ilkel bir veri türü değildir. Java'da bir dizge oluşturulduğunda, aslında oluşturulan Java.Lang.String sınıfının bir nesnesidir. Bu string nesnesinin yaratılmasından sonra, String sınıfının tüm yerleşik metotları string nesnesinde kullanılabilir.
S32. Aşağıdaki örnekte kaç adet String Nesnesi oluşturulmuştur?
String s1="I am Java Expert";String s2="I am C Expert";String s3="I am Java Expert";
Ans: Yukarıdaki örnekte, Java.Lang.String sınıfının iki nesnesi oluşturulmuştur. s1 ve s3 aynı nesneye referanslardır.
S33. Java'daki Dizeler neden Değişmez olarak adlandırılır?
Cevap: Java'da, dize nesneleri değişmez olarak adlandırılır, çünkü değer bir dizeye atandığında, değiştirilemez ve değiştirilirse yeni bir nesne oluşturulur.
Aşağıdaki örnekte başvuru str, "Değer bir" değerine sahip bir dize nesnesini ifade eder.
String str="Value One";
Yeni bir değer atandığında, yeni bir String nesnesi oluşturulur ve referans yeni nesneye taşınır.
str="New Value";
S34. Bir dizi ile Vector arasındaki fark nedir?
Cevap: Bir dizi aynı ilkel türdeki verileri gruplandırır ve yapı olarak statiktir, vektörler doğası gereği dinamiktir ve farklı veri türlerinden verileri tutabilir.
S35. Çoklu iş parçacığı nedir?
Cevap: Çoklu iş parçacığı, birden çok görevi aynı anda tek bir program içinde çalıştırmak için bir programlama konseptidir. İş parçacıkları aynı işlem yığınını paylaşır ve paralel olarak çalışır. Herhangi bir programın performans iyileştirmesine yardımcı olur.
S36. Java'da neden Runnable Arayüz kullanılıyor?
Cevap: Çalıştırılabilir arayüz, java'da çok iş parçacıklı uygulamaları gerçekleştirmek için kullanılır. Java.Lang.Runnable arabirimi, çoklu iş parçacığını desteklemek için bir sınıf tarafından uygulanır.
S37. Java'da çoklu iş parçacığı uygulamanın iki yolu nedir?
Cevap: Çok iş parçacıklı uygulamalar Java'da aşağıdaki iki metodolojiden herhangi biri kullanılarak geliştirilebilir:
1. Java.Lang.Runnable Arayüzü kullanarak. Sınıflar, çoklu iş parçacığını etkinleştirmek için bu arabirimi uygular. Bu arayüzde uygulanan bir Run () yöntemi vardır.
2. Java.Lang.Thread sınıfını genişleten bir sınıf yazarak.
S38. Verilerde çok fazla değişiklik gerektiğinde hangisinin kullanılması tercih edilmelidir? String mi yoksa StringBuffer mı?
Cevap: StringBuffers doğası gereği dinamik olduğundan ve değişmez olan String'den farklı olarak StringBuffer nesnelerinin değerlerini değiştirebildiğimizden, veriler çok fazla değiştirildiğinde StringBuffer'ı kullanmak her zaman iyi bir seçimdir. Böyle bir durumda String kullanırsak, her veri değişikliği için fazladan bir ek yük olacak yeni bir String nesnesi oluşturulacaktır.
S39. Her Switch İfadesi durumunda Break kullanmanın amacı nedir?
Cevap: Break, her durumdan sonra (sonuncusu hariç) bir anahtarda kullanılır, böylece kod geçerli durumdan sonra kırılır ve devam eden durumlarda da akmaz.
Her vakadan sonra mola kullanılmazsa, geçerli vakadan sonraki tüm vakalar da yürütülür ve yanlış sonuçlara neden olur.
S40. Java'da çöp toplama nasıl yapılır?
Cevap: Java'da, bir nesneye artık başvurulmadığında, çöp toplama gerçekleşir ve nesne otomatik olarak yok edilir. Otomatik çöp toplama için java, System.gc () yöntemini veya Runtime.gc () yöntemini çağırır.
S41. Ana yöntemden önce bile herhangi bir kodu nasıl çalıştırabiliriz?
Cevap: Herhangi bir ifadeyi, sınıfın yükleme zamanında nesneler yaratılmadan önce yürütmek istiyorsak, sınıfta statik bir kod bloğu kullanabiliriz. Bu statik kod bloğunun içindeki herhangi bir ifade, ana yöntemde nesneler oluşturulmadan önce bile sınıf yüklendiği sırada bir kez çalıştırılacaktır.
S42. Bir sınıf aynı anda hem süper hem de alt sınıf olabilir mi? Örnek ver.
Cevap: Kullanılan bir kalıtım hiyerarşisi varsa, bir sınıf aynı anda başka bir sınıf için bir süper sınıf ve başka bir sınıf için bir alt sınıf olabilir.
Aşağıdaki örnekte, kıta sınıfı, dünya sınıfının alt sınıfıdır ve süper sınıf ülke sınıfıdır.
public class world {… .}public class continenet extends world {… }public class country extends continent {… .}
S43. Sınıfta hiçbir yapıcı tanımlanmadıysa, bir sınıfın nesneleri nasıl oluşturulur?
Cevap: Bir java sınıfında açık bir kurucu tanımlanmasa bile, nesneler başarıyla yaratılır, çünkü varsayılan bir kurucu nesne oluşturma için dolaylı olarak kullanılır. Bu kurucunun parametresi yok.
S44. Çoklu iş parçacığı oluşturmada, bir kaynağın aynı anda birden fazla iş parçacığı tarafından kullanılmamasını nasıl sağlayabiliriz?
Cevap: Çoklu iş parçacığı bağlamada, birden çok iş parçacığı arasında paylaşılan kaynaklara erişim, senkronizasyon kavramı kullanılarak kontrol edilebilir. Senkronize anahtar kelimeyi kullanarak, aynı anda yalnızca bir iş parçacığının paylaşılan kaynağı kullanabilmesini ve diğerlerinin yalnızca onu kullanarak diğerinden serbest kaldıktan sonra kaynağın kontrolünü alabilmesini sağlayabiliriz.
S45. Bir nesne için bir sınıfın yapıcısını birden çok kez arayabilir miyiz?
Ans: Oluşturucu, yeni anahtar sözcük kullanarak bir nesne oluşturduğumuzda otomatik olarak çağrılır. Nesne oluşturma sırasında bir nesne için yalnızca bir kez çağrılır ve bu nedenle, oluşturucuyu bir nesne için oluşturulduktan sonra tekrar çağıramayız.
S46. ClassA ve classB adında iki sınıf vardır. Her iki sınıf da aynı pakette. A sınıfının özel bir üyesine B sınıfının bir nesnesiyle erişilebilir mi?
Cevap: Bir sınıfın özel üyelerine o sınıfın kapsamı dışında erişilemez ve aynı paketteki diğer sınıflar bile bunlara erişemez.
S47. Bir sınıfta aynı ada sahip iki yöntemimiz olabilir mi?
Cevap: Bir sınıfta aynı ada sahip ancak farklı sayıda / türde parametrelere sahip iki yöntem tanımlayabiliriz. Hangi yöntemin çağrılacağı, geçirilen parametrelere bağlı olacaktır.
Örneğin aşağıdaki sınıfta aynı ada sahip ancak farklı parametrelere sahip iki yazdırma yöntemimiz var. Parametrelere bağlı olarak, uygun olanı aranacaktır:
public class methodExample {public void print() {system.out.println("Print method without parameters.");}public void print(String name) {system.out.println("Print method with parameter");}public static void main(String args[]) {methodExample obj1 = new methodExample();obj1.print();obj1.print("xx");}}
S48. Bir java nesnesinin kopyasını nasıl yapabiliriz?
Cevap: Bir nesnenin kopyasını oluşturmak için klonlama kavramını kullanabiliriz. Klon kullanarak, bir nesnenin gerçek durumuyla kopyalar oluştururuz.
Clone () bir Cloneable arayüz yöntemidir ve bu nedenle, Cloneable arayüzünün nesne kopyaları yapmak için uygulanması gerekir.
S49. Kalıtım kullanmanın faydası nedir?
Cevap: Kalıtımın alt sınıfların kendi süper sınıfının kodunu yeniden kullanmasını sağladığından, kalıtımı kullanmanın temel faydası kodun yeniden kullanılabilirliğidir. Çok biçimlilik (Genişletilebilirlik), mevcut türetilmiş sınıfları etkilemeden yeni işlevselliğin sunulmasına izin veren başka bir büyük avantajdır.
S50. Bir sınıfın değişkenleri ve yöntemleri için varsayılan erişim belirticisi nedir?
Cevap: Değişkenler ve yöntem için varsayılan erişim tanımlayıcısı paket korumalıdır, yani değişkenler ve sınıf diğer herhangi bir sınıf için kullanılabilir ancak aynı pakette, paketin dışında değildir.
S51. Java sınıfında İşaretçilerin kullanımına bir örnek verin.
Cevap: Java'da işaret yok. Yani Java'da işaretçi kavramını kullanamayız.
S52. Bir sınıfın kalıtımını, hiçbir sınıfın ondan miras alınamayacağı şekilde nasıl kısıtlayabiliriz?
Cevap: Bir sınıfın herhangi bir sınıf tarafından daha fazla genişletilmemesini istiyorsak , sınıf adıyla birlikte Final anahtar kelimesini kullanabiliriz .
Aşağıdaki örnekte, Stone sınıfı Finaldir ve genişletilemez
public Final Class Stone {// Class methods and Variables}
S53. Korumalı Erişim tanımlayıcısının erişim kapsamı nedir?
Cevap: Bir yöntem veya değişken Korumalı erişim belirteci ile bildirildiğinde, aynı sınıfta, aynı paketin diğer sınıflarında ve bir alt sınıfta erişilebilir hale gelir.
Değiştirici |
Sınıf |
Paket içeriği |
Alt sınıf |
Dünya |
halka açık |
Y |
Y |
Y |
Y |
korumalı |
Y |
Y |
Y |
N |
değiştirici yok |
Y |
Y |
N |
N |
özel |
Y |
N |
N |
N |
S54. Yığın ve Sıra arasındaki fark nedir?
Cevap: Yığın ve Sıranın her ikisi de bir veri koleksiyonu için yer tutucu olarak kullanılır. Yığın ile sıra arasındaki temel fark, yığının Son Giren İlk Çıkar (LIFO) ilkesine, sıranın ise FIFO (İlk Giren İlk Çıkar) ilkesine dayanmasıdır.
S55. Java'da değişkenlerin serileştirilmesine nasıl izin vermeyebiliriz?
Cevap: Bir sınıfın belirli değişkenlerinin serileştirilmesini istemiyorsak, bunları bildirirken geçici anahtar kelimesini kullanabiliriz . Örneğin, aşağıdaki trans_var değişkeni geçici bir değişkendir ve serileştirilemez:
public class transientExample {private transient trans_var;// rest of the code}
S56. İlkel veri türlerini nesneler olarak nasıl kullanabiliriz?
Cevap: int gibi ilkel veri türleri, ilgili sarmalayıcı sınıflarının kullanılmasıyla nesneler olarak ele alınabilir. Örneğin, Tamsayı, int ilkel veri türü için bir sarmalayıcı sınıfıdır. Diğer nesneler gibi bir sarmalayıcı sınıfına farklı yöntemler uygulayabiliriz.
S57. Derleme sırasında hangi tür istisnalar yakalanır?
Cevap: Kontrol edilen istisnalar program derlemesi sırasında yakalanabilir. Kodu başarılı bir şekilde derlemek için, kontrol edilen istisnalar kodda try catch bloğu kullanılarak ele alınmalıdır.
S58. Bir iş parçacığının farklı durumlarını tanımlayın.
Cevap: Java'da bir iş parçacığı aşağıdaki durumlardan birinde olabilir:
- Hazır: Bir iş parçacığı oluşturulduğunda Hazır durumundadır.
- Çalışıyor: Şu anda yürütülmekte olan bir iş parçacığı çalışır durumda.
- Bekliyor: Belirli kaynakları serbest bırakmak için başka bir iş parçacığını bekleyen bir iş parçacığı bekleme durumunda.
- Ölü: Yürütmeden sonra ölmüş olan bir iş parçacığı ölü durumdadır.
S59. Açık bir kurucu tanımlanmış olsa bile bir sınıfın varsayılan yapıcısını kullanabilir miyiz?
Yanıt: Java sınıfında açık bir kurucu tanımlanmamışsa, Java varsayılan bir bağımsız değişken oluşturucu sağlamaz. Ancak, açık bir kurucu tanımlanmışsa, varsayılan kurucu çağrılamaz ve geliştirici yalnızca sınıfta tanımlanan yapıcıları kullanabilir.
S60. Aynı yöntem adı ve argümanları ancak farklı dönüş türleri kullanarak bir yöntemi geçersiz kılabilir miyiz?
Cevap: Yöntemin geçersiz kılınmasının temel koşulu, yöntem adı, bağımsız değişkenler ve dönüş türünün, geçersiz kılınan yönteminki ile tamamen aynı olması gerektiğidir. Dolayısıyla, farklı bir dönüş türü kullanmak bir yöntemi geçersiz kılmaz.
S61. Aşağıdaki kod parçasının çıktısı ne olacak?
public class operatorExample {public static void main(String args[]) {int x = 4;system.out.println(x++);}}
Cevap: Bu durumda, önce değeri döndüren ve sonra artıran postfix ++ operatörü kullanılır. Dolayısıyla çıktısı 4 olacaktır.
S61. Bir kişi, bir java sınıfını, içinde ana bir yöntem bile olmadan başarılı bir şekilde derlediğini söylüyor? Bu mümkün mü?
Ans: ana yöntem, Java sınıfının bir giriş noktasıdır ve programın çalıştırılması için gereklidir; bir sınıf, ana yöntemi olmasa bile başarıyla derlenir. Yine de çalıştırılamaz.
S62. Statik bir yöntemin içinden statik olmayan bir yöntemi çağırabilir miyiz?
Ans: Statik olmayan yöntemler, bir sınıfın nesnelerine aittir ve nesne düzeyinde kapsama sahiptir ve Statik olmayan yöntemleri statik bir bloktan (statik bir ana yöntemden olduğu gibi) çağırmak için, sınıfın bir nesnesinin oluşturulması gerekir. ilk. Daha sonra nesne referansı kullanılarak bu yöntemler çağrılabilir.
S63. Herhangi bir Java programını çalıştırmak için ayarlanması gereken iki ortam değişkeni nelerdir?
Cevap: Java programları bir makinede yalnızca iki ortam değişkeninin doğru şekilde ayarlandıktan sonra çalıştırılabilir:
- PATH değişkeni
- CLASSPATH değişkeni
S64. Java'da değişkenler başlatma olmadan kullanılabilir mi?
Cevap: Java'da, geçerli bir değerle önceden başlatılmadan bir kodda bir değişken kullanılırsa, Java'da değişkenlere varsayılan değer atanmadığından program derlemez ve bir hata verir.
S65. Java'daki bir sınıf birden fazla sınıftan miras alınabilir mi?
Cevap: Java'da, bir sınıf birden fazla sınıftan değil, yalnızca bir sınıftan türetilebilir. Birden çok kalıtım Java tarafından desteklenmez.
S66. Bir kurucu, Java'daki bir Sınıf adından farklı bir ada sahip olabilir mi?
Cevap: Java'da oluşturucu, sınıf adıyla aynı ada sahip olmalıdır ve ad farklıysa, kurucu görevi görmez ve derleyici bunu normal bir yöntem olarak düşünür.
S67. Round (3.7) ve Ceil (3.7) çıktıları ne olacak?
Ans: Round (3.7) 4 döndürür ve Ceil (3.7) 4 döndürür.
S68: Belirli bir satıra gitmek için Java'da goto kullanabilir miyiz?
Cevap: Java'da, goto anahtar sözcüğü yoktur ve java bu özelliği belirli bir etiketli satıra gitmeyi desteklemez.
S69. Ölü bir iş parçacığı yeniden başlatılabilir mi?
Cevap: Java'da, ölü durumda olan bir iş parçacığı tekrar başlatılamaz. Ölü bir iş parçacığını yeniden başlatmanın bir yolu yoktur.
S70. Aşağıdaki sınıf beyanı doğru mu?
Ans:
public abstract final class testClass {// Class methods and variables}
Cevap: Yukarıdaki sınıf bildirimi yanlıştır çünkü soyut bir sınıf Final olarak bildirilemez.
S71. Bir Java programını çalıştırmak için her makinede JDK gerekli midir?
Cevap: JDK, Java Geliştirme Kitidir ve yalnızca geliştirme için ve bir makinede bir Java programını çalıştırmak için gereklidir, JDK gerekli değildir. Yalnızca JRE gereklidir.
S72. Eşittir yöntemi ile == operatörü tarafından yapılan karşılaştırma arasındaki fark nedir?
Ans: Java'da, equals () yöntemi iki dize nesnesinin içeriğini karşılaştırmak için kullanılır ve ikisi aynı değere sahipse true değerini döndürürken == operatörü iki dize nesnesinin referanslarını karşılaştırır.
Aşağıdaki örnekte, equals (), iki dize nesnesi aynı değerlere sahip olduğundan true değerini döndürür. Ancak == operatörü, her iki dize nesnesi de farklı nesnelere başvurduğundan false değerini döndürür:
public class equalsTest {public static void main(String args[]) {String str1 = new String("Hello World");String str2 = new String("Hello World");if (str1.equals(str2)){ // this condition is trueSystem.out.println("str1 and str2 are equal in terms of values");}if (str1 == str2) {//This condition is trueSystem.out.println("Both strings are referencing same object");} else{// This condition is NOT trueSystem.out.println("Both strings are referencing different objects");}}}
S73. Java sınıfında bir yöntem tanımlamak ama C gibi başka bir dilin kodunda uygulanmasını sağlamak mümkün müdür?
Cevap: Evet, bunu yerel yöntemler kullanarak yapabiliriz. Yerel yöntem tabanlı geliştirme durumunda, Java sınıfımızda public static yöntemleri uygulanmadan tanımlıyoruz ve daha sonra C gibi başka bir dilde ayrı ayrı uygulama yapılıyor.
S74. Yıkıcılar Java'da nasıl tanımlanır?
Cevap: Java'da, buna gerek olmadığı için sınıfta tanımlanmış hiçbir yıkıcı yoktur. Java, artık başvurulmadığında nesneleri yok ederek işi otomatik olarak yapan kendi çöp toplama mekanizmasına sahiptir.
S75. Bir değişken aynı anda hem yerel hem de statik olabilir mi?
Cevap: Hiçbir değişken aynı anda hem statik hem de yerel olamaz. Yerel bir değişkeni statik olarak tanımlamak derleme hatası verir.
S76. Bir Arayüzde statik yöntemler kullanabilir miyiz?
Cevap: Statik yöntemler herhangi bir sınıfta geçersiz kılınamazken, bir arabirimdeki yöntemler varsayılan olarak soyuttur ve arabirimi uygulayan sınıflarda uygulanması gerekir. Bu nedenle Java'da bir arayüzde statik yöntemlere sahip olmanın bir anlamı yoktur.
S77. Arayüz uygulayan bir sınıfta, arayüzde tanımlanan herhangi bir değişkenin değerini değiştirebilir miyiz?
Cevap: Hayır, arayüzde tanımlanan tüm değişkenler varsayılan olarak public, statik ve Son ve son değişkenler daha sonra değiştirilemeyen sabitler gibi olduğundan, uygulama sınıfındaki bir arayüzün herhangi bir değişkeninin değerini değiştiremeyiz.
S78. Java'daki çöp toplama özelliği nedeniyle bir java programının hafızası hiç dolmaz demek doğru mu?
Cevap: Otomatik çöp toplama Java tarafından sağlansa da, Java nesnelerinin oluşturulmasının çöp toplama ile karşılaştırıldığında daha hızlı bir hızda yapılması olasılığı olduğundan, bir Java programının hafızanın dışına çıkmayacağını garanti etmez. mevcut tüm bellek kaynaklarının doldurulması.
Dolayısıyla, çöp toplama, bir programın hafızadan çıkma olasılığını azaltmaya yardımcı olur, ancak bunu garanti etmez.
S79. Ana yöntem için void dışında başka bir dönüş türüne sahip olabilir miyiz?
Cevap: Hayır, Java sınıfı ana yöntemi, programın başarıyla çalıştırılması için yalnızca geçersiz dönüş türüne sahip olabilir.
Bununla birlikte, ana yöntemin tamamlanmasında kesinlikle bir değer döndürmeniz gerekiyorsa, System.exit (int status) kullanabilirsiniz.
S80. Çöp toplandıktan sonra bir nesneye yeniden ulaşmak ve onu kullanmak istiyorum. Nasıl mümkün olabilir?
Cevap: Bir nesne çöp toplayıcı tarafından yok edildiğinde, artık yığın üzerinde mevcut değildir ve tekrar erişilemez. Tekrar referans vermenin bir yolu yok.
S81. Java iş parçacığı programlamasında, tüm iş parçacıkları için hangi yöntem uygulanmalıdır?
Ans: Run (), tüm iş parçacıkları tarafından uygulanması gereken bir Çalıştırılabilir arabirim yöntemidir.
S82. Programımdaki veritabanı bağlantılarını kontrol etmek istiyorum ve aynı anda yalnızca bir iş parçacığının veritabanı bağlantısı yapabilmesini istiyorum. Bu mantığı nasıl uygulayabilirim?
Cevap: Bu, senkronizasyon kavramı kullanılarak uygulanabilir. Veritabanı ile ilgili kod , bir seferde yalnızca bir iş parçacığının erişebilmesi için eşzamanlı anahtar sözcük olan bir yönteme yerleştirilebilir .
S83. Bir programcı tarafından manuel olarak nasıl bir istisna atılabilir?
Cevap: Bir kod bloğuna manuel olarak bir istisna atmak için, throw anahtar sözcüğü kullanılır. Daha sonra bu istisna yakalanır ve yakalama bloğunda ele alınır.
public void topMethod() {try {excMethod();} catch (ManualException e) {}}public void excMethod {String name = null;if (name == null) {throw (new ManualException("Exception thrown manually ");}}
S84. Sınıfımın, başka hiçbir sınıfın (türetilmiş sınıf bile) nesnelerini yaratamayacağı şekilde geliştirilmesini istiyorum. Bunu nasıl yapabilirim?
Cevap: Bir sınıfın kurucusunu özel olarak ilan edersek, başka herhangi bir sınıf tarafından erişilebilir olmayacak ve dolayısıyla başka hiçbir sınıf onu örnekleyemeyecek ve nesnesinin oluşumu sadece kendisiyle sınırlı olacaktır.
S85. Java'da nesneler nasıl saklanır?
Cevap: Java'da, her nesne oluşturulduğunda bir yığıntan bir bellek alanı alır. Bir nesne bir çöp toplayıcı tarafından yok edildiğinde, ona öbekten ayrılan alan öbeğe yeniden tahsis edilir ve yeni nesneler için kullanılabilir hale gelir.
S86. Yığın üzerindeki bir nesnenin gerçek boyutunu nasıl bulabiliriz?
Cevap: Java'da, yığın üzerindeki bir nesnenin tam boyutunu bulmanın bir yolu yoktur.
S87. Aşağıdaki sınıflardan hangisine daha fazla bellek ayrılmış olacak?
A Sınıfı: Üç yöntem, dört değişken, nesne yok
Sınıf B: Beş yöntem, üç değişken, nesne yok
Cevap: Bellek, nesneler oluşturulmadan önce tahsis edilmez. Her iki sınıf için de yaratılan nesne olmadığından öbek üzerinde herhangi bir sınıf için bellek ayrılmamıştır.
S88. Bir programda bir istisna ele alınmazsa ne olur?
Cevap: Eğer try catch bloklarını kullanan bir programda bir istisna işlenmezse, program iptal edilir ve istisna atmaya neden olan ifadeden sonra hiçbir ifade çalıştırılmaz.
S89. Bir sınıfta tanımlanmış birden çok kurucum var. Başka bir kurucunun bünyesinden bir kurucu çağırmak mümkün mü?
Cevap: Bir sınıfın birden fazla kurucusu varsa, bunu () kullanarak diğerinin gövdesinden bir kurucu çağırmak mümkündür .
S90. İsimsiz sınıf ile ne kastedilmektedir?
Cevap: Anonim sınıf, yeni anahtar sözcük kullanılarak tek bir kod satırında herhangi bir isim olmadan tanımlanan bir sınıftır.
Örneğin, aşağıdaki kodda bir kod satırında anonim bir sınıf tanımladık:
public java.util.Enumeration testMethod(){return new java.util.Enumeration(){@Overridepublic boolean hasMoreElements(){// TODO Auto-generated method stubreturn false;}@Overridepublic Object nextElement(){// TODO Auto-generated method stubreturn null;}}
S91. Bir dizinin bildiriminden sonra boyutunu artırmanın bir yolu var mı?
Cevap: Diziler statiktir ve boyutunu belirledikten sonra değiştiremeyiz. Boyut değişikliği gerektirebileceğimiz (öğe yok) bu tür koleksiyonları kullanmak istiyorsak, vektörü diziye tercih etmeliyiz.
S92. Bir uygulamanın içinde birden fazla sınıf varsa, birden fazla sınıfta bir ana yönteme sahip olmak uygun mudur?
Cevap: Bir java uygulamasında birden fazla sınıfta ana yöntem varsa, herhangi bir uygulama için giriş noktası belirli bir sınıf olacağından ve kod yalnızca o belirli sınıfın ana yönteminden başlayacağından herhangi bir soruna neden olmaz.
S93. Nesnelerin verilerini daha sonra kullanmak için saklamak istiyorum. Bunu yapmak için en iyi yaklaşım nedir?
Cevap: Verileri ileride kullanmak üzere muhafaza etmenin en iyi yolu serileştirme kavramını kullanmaktır.
S94. Java'da Yerel sınıf nedir?
Cevap: Java'da, belirli bir blok içinde yeni bir sınıf tanımlarsak, buna yerel sınıf denir. Böyle bir sınıfın yerel kapsamı vardır ve tanımlandığı bloğun dışında kullanılamaz.
S95. String ve StringBuffer, hem String nesnelerini temsil eder. Java'da String ve StringBuffer'ı karşılaştırabilir miyiz?
Cevap: String ve StringBuffer her ikisi de String nesnelerini temsil etse de, onları birbirleriyle karşılaştıramayız ve bunları karşılaştırmaya çalışırsak bir hata alırız.
S96. Nesneler kümesi üzerindeki işlemler için Java tarafından hangi API sağlanır?
Ans: Java, bir dizi nesneye uygulanabilen birçok yararlı yöntem sağlayan bir Koleksiyon API'si sağlar. Collection API tarafından sağlanan önemli sınıflardan bazıları ArrayList, HashMap, TreeSet ve TreeMap içerir.
S97. Boolean Türüne başka türden tür dönüştürme ile dönüştürebilir miyiz?
Cevap: Hayır, başka herhangi bir ilkel türü Boolean veri türüne dönüştüremeyiz veya Boolean veri türünü başka herhangi bir ilkel veri türüne dönüştüremeyiz.
S98. Geçersiz kılındığında yöntemler için farklı dönüş türleri kullanabilir miyiz?
Cevap: Java'da yöntemi geçersiz kılmanın temel gerekliliği, geçersiz kılınan yöntemin aynı ada ve parametrelere sahip olmasıdır, ancak yeni dönüş türü orijinali genişlettiği sürece bir yöntem farklı bir dönüş türü ile geçersiz kılınabilir.
Örneğin, yöntem bir başvuru türü döndürüyor.
Class B extends A {A method(int x) {//original method}B method(int x) {//overridden method}}
S99. Tüm istisna sınıflarının temel sınıfı nedir?
Ans: Java'da Java.lang.Throwable , tüm istisna sınıflarının süper sınıfıdır ve tüm istisna sınıfları bu temel sınıftan türetilir.
S100. Kalıtımda kurucuların çağrı sırası nedir?
Cevap: Kalıtım durumunda, türetilmiş bir sınıfın yeni bir nesnesi oluşturulduğunda, önce süper sınıfın kurucusu ve ardından türetilmiş sınıfın kurucusu çağrılır.
İş Görüşmenize Hazırlanın !!! Daha iyi hazırlanabilmek için Java Eğitimi'ni inceleyin.
Bu ayrıntılı Java mülakat soruları pdf, Java mülakat soruları hakkındaki şüpheleri gidermenize yardımcı olacak ve ayrıca mülakatı kırmanıza yardımcı olacaktır.