CodeGym /Java Blogu /Rastgele /En iyi 21 Java mülakat sorusu
John Squirrels
Seviye
San Francisco

En iyi 21 Java mülakat sorusu

grupta yayınlandı
Sayısız Java mülakat sorusu var ve hepsini tek bir makalede toplayamayız. Bununla birlikte, BT şirketlerinin İK yöneticilerine göre, burada bazı çok yaygın Java mülakat soruları bulabilirsiniz. En iyi 21 Java mülakat sorusu - 1
  1. "Sökün" public static void main(String args[]).

    Yeni başlayanlar için popüler java mülakat sorularından biri ve çok kolay.

    • publicbir erişim değiştiricisidir. Bu yönteme erişimi belirtmek için kullanıyoruz. Burada değiştirici "genel"dir, bu nedenle herhangi bir Sınıfın bu yönteme erişimi vardır.

    • static. Bu Java anahtar sözcüğü, bu yöntemi yeni bir Sınıf Nesnesi oluşturmadan kullandığımız anlamına gelir.

    • Voidyöntemin dönüş türüdür. Bu, yöntemin herhangi bir değer döndürmediği anlamına gelir.

    • mainyöntemin adıdır. JVM, onu bir uygulamaya giriş noktası olarak "bilir" (belirli bir imzası olmalıdır). Mainana yürütmenin gerçekleştiği bir yöntemdir.

    • String args[]. Bu, ana yönteme iletilen parametredir. Burada Java uygulamanızın çalıştırdığınızda kabul ettiği String tipindeki argümanlara sahibiz. Bunları terminale yazabilirsiniz.

  2. equals()ve arasındaki fark nedir ==?

    Birincisi, “ ==” bir operatör, oysa equals()bir yöntemdir. ==Referans karşılaştırması (veya adres karşılaştırması) için operatör ve equals()içerik karşılaştırması için yöntem kullanıyoruz . Bu , nesnelerdeki değerleri karşılaştırırken ==her iki nesnenin de aynı bellek konumuna işaret edip etmediğini kontrol ettiği anlamına gelir .equals()

  3. Yöntemsiz bir program yürütebilir miyiz main()?

    Java temel mülakat sorularının çoğu gerçekten kolaydır. Bunun gibi. Çok kısa cevap: evet, yapabiliriz. Örneğin statik blok kullanarak yapabiliriz.

    Statik veri üyesini başlatmak için statik bloğu kullanabilirsiniz. mainYöntemden önce, sınıf yüklemesi sırasında yürütülür .

    
    class Example{  
     Static{
    System.out.println("static block is invoked");
    }  
      public static void main(String args[]){  
       System.out.println("Now main method");  
      }  
    }
    

    Çıktı:

    
    static block is invoked
    Now main method
    
  4. Peki ya toplam ana yöntem yokluğu? Ana yöntem olmadan sıradan bir sınıfı çalıştırmayı denerseniz, bir sonraki hatayı alırsınız: Ana yöntem bulunamadı sınıfı Testi, lütfen ana yöntemi şu şekilde tanımlayın: genel statik geçersiz ana (String [] args) veya bir JavaFX uygulaması sınıf javafx.application.Application'ı genişletmelidir. Hatanın kendisi, eğer bu bir JavaFX uygulamasıysa ve sınıf javafx.application.Application'dan miras alınmışsa, bunun mümkün olduğunu söylüyor.
  5. nesne immutablenedir? Nesne yaratabilir misin immutable?

    immutableBir sınıfın nesnelerini oluşturulduktan sonra değiştiremezsiniz . Yani onları bir kez oluşturduktan sonra değiştiremezsiniz. Nesneyi değiştirmeye çalışırsanız, Immutableyeni bir nesne (klon) alırsınız ve bu klonu oluşturma sırasında değiştirirsiniz.

    İyi bir örnek String, Java'dadır immutable. Bu, nesnenin kendisini değiştiremeyeceğiniz, ancak nesneye yapılan referansı değiştirebileceğiniz anlamına gelir.

  6. Aşağıdaki kodda kaç tane nesne yaratılıyor?

    # 4'ün yerini alan java teknik mülakat sorularından biri.

    
    String s1="Hello";  
    String s2="Hello";  
    String s3="Hello";  
    

    Yanıt “yalnızca bir” çünkü Java'nın bir Dize Havuzu var. new() operatörünü kullanarak bir String nesnesi oluşturduğumuzda, yığın belleğinde yeni bir nesne oluşturur. Örneğimizde olduğu gibi String değişmez sözdizimini kullanırsak, zaten varsa, String havuzundan var olan bir nesneyi döndürebilir.

  7. Aşağıdaki kodda kaç tane nesne yaratılıyor?

    
    String s = new String("Hello");
    

    2 nesne var. Biri string sabit havuzunda (zaten yoksa) ve diğeri yığında.

  8. StringVe Java'daki Sınıflar StringBuilderArasındaki Fark Nedir ?StringBuffer

    En iyi java mülakat sorularında liderlerden biri var.

    Her şeyden önce Stringbir Immutable sınıfıdır. Bu, oluşturulduktan sonra içeriğini değiştiremeyeceğiniz anlamına gelir. While StringBufferve StringBuilderdeğişken sınıflardır, bu yüzden onları daha sonra değiştirebilirsiniz. Nesnenin içeriğini değiştirirsek String, yeni bir dizi oluşturur, bu nedenle orijinali değiştirmez. Bu nedenle ile performans, StringBufferile olduğundan daha iyidir String.

    StringBufferve StringBuilderthat 'nin yöntemleri arasındaki temel fark StringBuffersenkronize edilirken StringBuilder' ler değil.

  9. StringDeğişmez değer kullanılarak ve işleç kullanılarak oluşturulmuş herhangi bir fark var mı new()?

    Orada. Operatörle bir String oluşturursak new(), heap'te ve string havuzunda görünür (zaten mevcut değilse). Hazır değeri kullanarak bir oluşturursanız String, dize havuzunda oluşturulur (zaten mevcut değilse). Bir dize havuzu, yığın içinde dize değişmezlerini depolayan bir depolama alanıdır.

  10. Java'da geçersiz kılabilir privateveya yöntemi kullanabilir misiniz ?static

    Çaylaklar için java zor mülakat sorularından biri. Java'da gerçekten geçersiz kılamaz privateveya yöntem kullanamazsınız .static

    privateÖzel erişim belirticisinin kapsamı yalnızca sınıf içinde olduğu için yöntemleri geçersiz kılamazsınız . Bir şeyi geçersiz kılacağınız zaman, ebeveyn ve çocuk sınıfımızın olması gerekir. Üst sınıfın yöntemi ise private, alt sınıf onu kullanamaz ve alt sınıftaki yöntemler yeni yöntemler olarak kabul edilir (geçersiz kılınmaz).

    StaticAyrıca metotlar geçersiz kılınamaz, çünkü staticmetotlar Sınıfın kendisinin parçasıdır ve sınıfın herhangi bir nesnesinin parçası değildir. Elbette, alt sınıflarda aynı yöntemi aynı imzayla bildirebilirsiniz static, ancak yine, bunlar yeni yöntemler olarak ele alınacaktır.

  11. Abstract Classve arasındaki farkInterface

    OOP ilkelerine dayanan popüler java geliştirici mülakat sorularından biri. Öncelikle Java'da interfacebir davranış tanımlar ve abstract classhiyerarşi oluşturur.

    Soyut sınıf Arayüz
    Soyut sınıfta bir yöntem gövdesine (soyut olmayan yöntemler) sahip olmak mümkündür. Arayüz yalnızca soyut yöntemlere sahip olabilir. Java 8 veya daha yeni sürümlerde, varsayılan yöntemleri tanımlamak ve bunları doğrudan arayüzde uygulamak mümkün hale geldi. Ayrıca, Java 8'deki Arayüzler statik yöntemlere sahip olabilir.
    Örnek değişkenler soyut sınıfta olabilir Bir arayüzün örnek değişkenleri olamaz.
    Yapıcılara izin verilir Arayüz herhangi bir kurucuya sahip olamaz.
    Statik yöntemlere izin verilir Statik yöntemlere izin verilmez
    Sınıfın yalnızca bir soyut ebeveyni olabilir Bir arabirim farklı sınıfları uygulayabilir
    Soyut sınıf, arayüzün uygulanmasını sağlayabilir. Arayüz, soyut sınıfın uygulanmasını sağlayamaz.
    Soyut bir sınıfın diğer Java sınıfını genişletmesine ve birden çok Java arabirimi uygulamasına izin verilir. Bir arabirimin yalnızca diğer Java arabirimini genişletmesine izin verilir.
    Bir Java soyut sınıfı, özel ve korumalı sınıf üyelerine sahip olabilir Bir Java arayüzünün üyeleri varsayılan olarak herkese açıktır.
  12. staticBir sınıfta değişkenleri ve yöntemleri bildirebilir miyiz abstract?

    staticEvet, metotta değişkenler ve metotlar bildirmek mümkündür abstract. Statik bağlama erişmek için bir nesne yapmaya gerek yoktur. abstractBu nedenle , sınıfın adını kullanarak sınıf içinde bildirilen statik içeriğe erişmemize izin verilir abstract.

  13. JVM tarafından ne tür bellek alanları ayrılır?

    Sınıf Alanı , çalışma zamanı sabit havuzu, alanlar, yöntem verileri ve yöntemler için tüm kodlar gibi belirli sınıf yapılarını depolar.

    Yığın , belleğin nesnelere ayrıldığı bir çalışma zamanı veri alanıdır.

    Yığın çerçeveleri depolar. Yerel değişkenleri ve kısmi sonuçları içerir ve yöntem çağırma ve döndürmede yer alır. Her iş parçacığının, iş parçacığıyla aynı zamanda oluşturulan özel bir JVM yığını vardır. Her metot çağrıldığında yeni bir çerçeve oluşturulur. Yöntem çağrısı tamamlandığında bir çerçeve yok edilir.

    Program Sayaç Kaydı, yürütülmekte olan Java sanal makine komutunun bir adresini içerir.

    Yerel Yöntem Yığını, uygulamada kullanılan tüm yerel yöntemleri içerir.

  14. Java'da çoklu kalıtıma neden izin verilmiyor?

    Gerçekten karmaşık olurdu. Üç sınıfın A, Bve Cve Cmiras aldığını düşünün Ave B. Şimdi, Asınıflar Baynı yönteme sahip ve siz onu bir alt sınıf nesnesinden çağırıyorsunuz... Hangisi? A'ler mi yoksa B'ler mi? Burada belirsizliğimiz var.

    iki sınıfı miras almaya çalışırsanız, Java derleme zamanı hatası verir.

  15. Yöntemi aşırı yükleyebilir miyiz main()?

    mainElbette, bir Java programında, yöntem aşırı yüklemesini kullanarak birçok yönteme sahip olmamıza izin verilir . Denemek!

  16. Bir kurucu olarak ilan edebilir miyiz final?

    Hayır. finalBir yapıcı, miras alınamadığı için a olarak bildirilemez . Bu nedenle, yapıcıları olarak bildirmek anlamsızdır final. Ancak, bunu yapmaya çalışırsanız, Java derleyicisi size bir hata verir.

  17. Bir arayüzü şu şekilde ilan edebilir miyiz final?

    Hayır, bunu yapamayız. Arayüz olamaz, finalçünkü arayüzün tanımına göre bir sınıf tarafından uygulanması gerekir. Bu nedenle arayüz yapmanın bir anlamı yoktur final. Ancak, bunu yapmaya çalışırsanız, derleyici bir hata gösterecektir.

  18. static bindingve arasındaki fark nedir dynamic binding?

    bindingDerleme zamanında derleyici tarafından çözülebilen , staticerken bağlama olarak adlandırılır. Bindingtüm static, privateand finalyöntemleri derleme zamanında yapılır.

    Derleyicide Dynamic bindingçağrılacak bir yöntem seçemezsiniz. Geçersiz kılma mükemmel bir örnektir dynamic binding. Geçersiz kılmada hem ebeveyn hem de çocuk sınıfları aynı yönteme sahiptir.

    
    Static Binding
    class Cat{  
     private void talk()
    {System.out.println("cat is mewing...");
    }  
      
     public static void main(String args[]){  
      Cat cat=new Cat();  
      cat.talk();  
     }  
    }  
    Dynamic Binding
    class Animal{  
     void talk(){
    System.out.println("animal is talking...");
    }  
    }  
      
    class Cat extends Animal{  
     void talk(){
    System.out.println("cat is talking...");
    }    
     public static void main(String args[]){  
      Animal animal=new Cat();  
      animal.talk();  
     }  
    }
    
  19. Java'da salt okunur bir sınıf nasıl oluşturulur?

    Bunu, sınıfın tüm alanlarını özel yaparak yapabilirsiniz. Salt okunur sınıf, yalnızca sınıfın özel özelliğini yönteme döndüren alıcı yöntemlerine sahiptir main. Bu özelliği değiştiremezsiniz, nedeni ayarlayıcı yönteminin olmamasıdır.

    
    public class HockeyPlayer{    
    private String team ="Maple leaf";    
    public String getTeam(){    
    return team;    
    }    
    }
    
  20. Java'da salt yazılır bir sınıf nasıl oluşturulur?

    Yine, sınıfın tüm alanlarını yapmalısınız private. Şimdi, salt yazılır sınıfınızın yalnızca ayarlayıcı yöntemleri olmalı ve alıcıları olmamalıdır. Bu nedenle sınıfın özelliklerini okuyamıyoruz.

    
    public class HockeyPlayer{       
    private String team;    
    public void setTeam(String college){    
    this.team = team;    
    }    
    }    
    
  21. Her trybloğu bir blok takip etmelidir catch, değil mi?

    Hayır. Bu bir gereklilik değil. Her tryblok bloksuz olabilir catch. Bunu bir yakalama bloğu veya bir nihayet bloğu veya hatta onlarsız takip edebilir.

    
    public class Main{  
         public static void main(String []args){  
            try{  
                int variable = 1;   
                System.out.println(variable/0);  
            }  
            finally  
            {  
                System.out.println("the other part of the program...");  
            }  
         }  
    }
    

    Çıktı:

    
    Exception in thread main java.lang.ArithmeticException:/ by zero
    the other part of the program...
    

    Bir örnek daha:
    
    class Main {
            public static void main(String[] args) throws IOException {
                try(InputStreamReader inputStreamReader = new InputStreamReader(System.in);
                    BufferedReader reader = new BufferedReader(inputStreamReader)){
                    System.out.println("test");
                }
            }
        }
    

    Çıktı:

    
    test
    

    Not: Java 8'den önce arabirimlerdeki yöntemler yalnızca soyut olabilirdi. Java 8 veya daha yeni sürümlerde, varsayılan yöntemleri tanımlamak ve bunları doğrudan arayüzde uygulamak mümkün hale geldi.
  22. throwve anahtar kelimeler arasındaki fark nedir throws?

    Throwsbir istisna bildirmek için kullanılır, bu nedenle bloğa benzer şekilde çalışır try-catch. Throwanahtar kelime, bir yöntemden veya başka herhangi bir kod bloğundan açıkça bir istisna atmak için kullanılır.

    Throwardından bir Exceptionsınıf örneği gelir ve atışları istisna sınıf adları izler.

    Throwyöntem gövdesinde bir istisna atmak için kullanılır. Throwsyöntemde bulunan ifadelerde oluşabilecek istisnaları bildirmek için bir yöntem imzasında kullanılır.

    Her seferinde bir istisna atılmasına izin verilir, ancak birden çok istisnayı anahtar kelime kullanarak bildirerek işleyebilirsiniz. throwBirden çok istisna bildirebilirsiniz, örneğin, public void method()throws IOException, SQLException.

Burada sadece birkaç java mülakat sorumuz ve cevabımız vardı. Bu makale röportaj serisinin ilkidir. Bir sonraki (yakında) veri yapısı soruları hakkında.
Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION