35+ Java 8 Mülakat Soruları ve Cevapları (2025)

İster bir teknisyen ister başka bir profesyonel olsun, görüşmeler her zaman adrenalini gerginlikten uzaklaştırır. Ancak kalabalığın arasından sıyrılmak için becerilerinizi geliştirmek ve yeteneklerinize güvenmek önemlidir. Üstelik sık sorulan sorulara hakim olmak Java 8 röportaj sorusu ve cevabı sizin bilginiz olabilir.

Bu nedenle, yaklaşan röportajlarınızda başarılı olmak için deneyimli ve yeni başlayanlara yönelik bu Java 8 röportaj sorularını derinlemesine inceleyin.

Java Yeni Öğrenciler ve Deneyimliler için 8 Mülakat Sorusu

1) Java 8 hangi programlama paradigmasına giriyor?

Java Aşağıdaki programlama paradigmasında 8 düşüş var:

  • Nesneye veya sınıfa yönelik programlama dili.
  • Fonksiyonel programlama dili.
  • Belirtilen prosedürel programlama dili.
  • Mantıksal programlama dili.

2) Neden Optional sınıfı kullanılmalı?

İsteğe bağlı sınıf, mevcut veya mevcut olmayan isteğe bağlı değerlerin gösterilmesinde yararlı olan, yeni tanıtılan bir kapsayıcı sınıftır. En büyük avantajı boş ve geçersiz kontrollerden kaçınmaktır ve belirli bir değişken için bir değerin varlığını kontrol etmede faydalı yöntemleri kolaylaştırır.


Java 8 Mülakat Sorusu

3) Yeni kullanıma sunulan birkaç yeni özelliği adlandırın Java 8.

Aşağıda tanıtılan en son özellikler bulunmaktadır. Java 8:

  • Lambda İfadeleri: Bu, bir Java paylaşabileceğiniz veya bir nesne olarak başvurabileceğiniz bir işlev.
  • Yöntem girişimi: Bir yöntemi uygulamak için işlevi kriter olarak kullanır.
  • Fonksiyonel Girişim: Her işlevsel müdahale, işlevsel yöntem olarak bilinen tek bir soyut yöntemle ilişkilendirilir.
  • Varsayılan Yöntem: 'Arayüz evrimi' potansiyelinin etkinleştirilmesine yardımcı olan arayüzlerde yöntemlerin uygulanmasında faydalıdır.
  • Tarih Saat API'si: Son sürümün dezavantajlarının üstesinden gelmek için Java time API'lerinin geliştirilmiş ancak ilham verici bir sürümüdür.
  • Akış API'sı işleme verilerinin boru hattına aktarılmasına yardımcı olan soyut katman olarak adlandırılır.
  • İsteğe bağlı: Sarmalayıcı sınıfı, boş değerlerin kontrol edilmesinde ve diğer verilerin işlenmesinde kullanışlıdır.
  • JavaKomut Dosyası ve Nashorn Motoru: Geliştirilmiş versiyonudur Javaİşlevselliğini etkinleştirmede yararlı olan Script Engine Java, Rhino'nun yerini alıyor.

4) Java 8 kullanmanın avantajlarını belirtin

İşte kullanmanın bazı yararları Java 8:

  • Uygulamaların çok daha hızlı ve daha kolay oluşturulmasına yardımcı olur.
  • Geliştiriciler için oldukça istikrarlı bir ortam sağlar.
  • Kısa, yeniden kullanılabilir ve anlaşılması kolay kodlar.
  • Geliştirilmiş ve etkili destek.
  • Çeşitli işletim sistemlerinde taşınması kolaydır.
  • Minimum standart kodlar.

5) Koleksiyon nedir ve akıştan farkı nedir?

Koleksiyon, tüm değerleri mevcut veri yapısına göre kaydeden bir bellek içi veritabanıdır. Bu nedenle, onu koleksiyona eklemeden önce her birini hesaplamak önemlidir. Oysa akış, öğeleri ihtiyaçlarımıza göre hesaplayabildiğimiz, görsel olarak sabit bir veri yapısıdır.


6) Lambada ifadesi nedir?

Lambada ifadesi adı olmayan bir fonksiyon türüdür ve kendine ait bilgi türü olmadığı için bazen anonim fonksiyon olarak da anılır. İhtiyacınıza göre kullanabilirsiniz ve koleksiyondaki verilerin tekrarlanması, filtrelenmesi ve çıkarılmasında oldukça kullanışlıdır.

Örnek:

import java. util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class LambdaExpressionExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
        List<String> filteredNames = names.stream()
                .filter(name -> name.startsWith("C"))
                .map(name -> name.toUpperCase())
                .collect(Collectors.toList());
        System.out.println(filteredNames);
    }
}

Çıktı:

Charlie

7) Akış boru hattını tanımlayın

Akış boru hattı, farklı işlemleri bir arada gruplandırmanın bir yöntemidir. Bunu, akış işlemlerini iki bölüme ayırarak başarabilirsiniz. Ara ve terminal işlemleri.

Ne zaman bir ara işlem gerçekleştirilse, bir örneği akış boru hattına geri döndürür. Bu nedenle, herhangi bir kullanıcı, verileri kolaylaştırmak ve sonuçta bir işleme hattı oluşturmak için irrasyonel sayıda ara işlem kurabilir.

Ayrıca boru hatlarının sonlandırılması için süreç sonunda terminal işleminin yapılması gerekmektedir.


8) Yüklem ve tüketici nedir? Java 8?

Yüklem, genellikle argümanları alan ve bir Boole değeri alan işlevsel bir arayüzdür. Bir nesne koleksiyonuna filtre uygulamak için bunu kullanabilirsiniz.

Öte yandan, tüketiciye, içinde bulunan yerleşik işlevsel bir arayüz adı verilir. Java.util.function paketi. Bunu herhangi bir nesneyi tüketmek için kullanabilirsiniz ve giriş değerini alır ve hiçbir şey vermez.


9) Peek () yöntemi neden kullanılıyor? Java 8?

peek() yöntemi, bir boru hattındaki belirli bir noktadan akma eğilimi gösteren öğelerin fark edilmesi istendiğinde hata ayıklamayı desteklemeye yardımcı olur. Her bir elementin nasıl geçtiğine dair gözlemimizin bir temsilidir.

Sözdizimi: public Object peek()


10) Sizi bu iş için ideal aday yapan şey nedir? Java geliştirici rolü?

İşte sizi ideal bir aday yapabilecek bazı önemli nitelikler: Java geliştirici rolü:

  • Açık, anlaşılır ve etkili kodlar yazma becerisine sahip olmalısınız.
  • Kalıpları ve kavramları hakkında derin bir anlayışOOP veya nesne yönelimli programlama".
  • Çeşitli mimari ve tasarım desenleri hakkında iyi bilgi.
  • Ile aşinalık Java eşzamanlılık modelleri.
  • Çeşitli web uygulama çerçeveleriyle çalışma deneyimi ve bilgisi Spark ve oyna.
  • Temel bilgiler Java Sanal Makine veya JVM, dezavantajları, geçici çözümü vb.
  • Gömülü ve harici veritabanlarını kullanma konusunda iyi bir deneyim.

11) 'İşlevsel Arayüz'ü açıklar.

Yalnızca bir özet içeren arayüze işlevsel arayüz denir. Tek Soyut Yöntem veya SAM olarak da bilinir. Ancak @FunctionalInterface ek açıklaması isteğe bağlıdır ve orada olmasa bile kullanılabilir. Özeti yoksa diğer arayüze uzanır.


12) Statik yöntemlere neden ihtiyaç duyulur? Java 8?

Statik yöntem referansı, bir arayüze bağlı bir yardımcı program veya yardımcı yöntem olarak adlandırılır. Aynı zamanda herhangi bir nesneye bağlı olmayan bir sınıftır.

Statik yöntemi kullanmanın nedenleri şunlardır: Java:

  • API'yi korumak ve genişletmek için kullanışlıdır.
  • Sorumlulukların net ve öz bir şekilde paylaşılmasını gerektirir ve hizmet koleksiyonlarına sahip olmak için tek bir hizmet sınıfına sahip olmanız gerekmez.
  • Belirli arayüzler yerine tüm arayüzleri ortak bir arayüzde tutmak için kullanışlıdır.

13) Nashorn'un avantajları nelerdir?

Nashorn en gelişmiş ve yeni JavaSenaryo işleme motoru tanıtıldı Java 8. Daha önce Mozilla Rhino'yu temel alıyordu. ECMA ile gelişmiş uyumluluk sağlar JavaScript. Önceki versiyonlarına göre daha hızlıdır.


14) Koleksiyon API'si ile Akış API'si arasındaki farklar nelerdir?

Koleksiyon API'sı ile Akış API'si arasındaki bazı önemli farklar şunlardır

Koleksiyon API'si Akış API'sı
Koleksiyon API'si ilk kez kullanıldı Java 1.2 Stream API ilk olarak 2013'te tanıtıldı Java 8.
Sınırsız veri depolamak için kullanabilirsiniz. Sınırsız veri hesaplamak için kullanabilirsiniz.
Koleksiyon API'si, verileri yinelemek için Iterator ve Spilterator'ı kullanmanıza olanak tanır. Stream API, verileri yinelemek için Iterator ve Spilterator'ı kullanmanıza olanak tanır.
Koleksiyon API'sine erişim kolaydır. Yayın içi API'de belirli öğelere ulaşmanın doğrudan bir yolu yoktur.
İhtiyaçlarınıza göre işlenmesi de kolaylık sağlar. Stream API yalnızca bir kez işlenebilir.

15) PermGenSpace ve MetaSpace'i tanımlayın.

PermGen veya Kalıcı Üretim Alanı, depolanan meta verileri takip etmek için kullanılan ve artık kaldırılan benzersiz bir yığın alanı türüdür. Java 8.

Bu yeni versiyonla birlikte metaverilerin saklanması da “MetaSpace” olarak bilinen benzer bir hafızada yapılacak. Bu devredilebilir bir şey değil Java Yığın bellektir ve PermGen'in otomatik ayarlama, çöp toplama vb. yönlerden geliştirilmiş halidir.


16) Fonksiyonel Arayüz nasıl oluşturulur? Java 8?

İşlevsel arayüzün soyut yöntemini uygulamak için lambda ifadesini kullanabilirsiniz. Java 8. Aşağıda aynı kodlama örneğini bulabilirsiniz:

Örnek E-posta

import java.util.function.Consumer;
public class FunctionalInterfaceExample {
    public static void main(String[] args) {
        Consumer<String> printer = System.out::println;
        printer.accept("Hello, world!");
    }
}

Çıktı:

Hello, world!

17) İşlev ve Yüklem arasındaki farklar ve benzerlikler nelerdir? Java 8?

İşlev ve Yüklem arasındaki farklar şunlardır: Java 8:

  • İşlev dönüşümde faydalıdır, oysa yüklem herhangi bir koşulu test etmek için kullanılabilir.
  • İşlev bir argüman alabilir ve bir sonuç verebilir, oysa yüklem de bir argüman alabilir ancak yalnızca Boole değerini verir.
  • Fonksiyon şu şekilde gösterilir: ve Yüklem yalnızca ile gösterilir Burada T işlev türüdür ve R sonuçtur.

İşlev ve Yüklem arasındaki benzerlikler aşağıda verilmiştir:

  • Hem işlev hem de yüklem işlevsel arayüzlerdir.
  • Hem işlev hem de yüklem tek argümanlı işlevlerdir.

18) Atla(uzun) ve limit(uzun) arasındaki farkı bir örnek kullanarak açıklayın.

Atlama (uzun), belirli bir akışın ilk n elemanını ortadan kaldırdıktan sonra kalan elemanları alan bir ara işlemdir.

Örnek:

import java.util.Arrays;
import java.util.List;
public class SkipExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave", "Eve");
        // Create a stream from the names list
        names.stream()
                // Skip the first two elements of the stream
                .skip(2)
                // Print the remaining elements to the console
                .forEach(System.out::println);
    }
}

Çıktı:

Charlie
Dave
Eve

Limit (long), belirli bir boyuttaki öğelerin akışını alır

Örnek:

import java.util.Arrays;
import java.util.List;
public class LimitExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave", "Eve");
        // Create a stream from the names list
        names.stream()
                // Limit the stream to the first three elements
                .limit(3)
                // Print the elements to the console
                .forEach(System.out::println);
    }
}

Çıktı:

AliceBob
Charlie

19) Stream API'yi kullanmak için en uygun durum hangisidir? Java 8?

Akış API'sini şurada kullanabilirsiniz: Java 8. Aşağıdaki işlemlere ihtiyaç vardır:

  • Paralel işlem gerçekleştirebilirsiniz.
  • Tembel işlemleri yürütmek için
  • Veritabanı işlemlerini gerçekleştirmek için
  • Dahili yinelemeler için kullanın.
  • İşlevsel tarzda programlama yazmak için
  • Pipeline işlemlerini kullanmak için kullanabilirsiniz.

20) Tür Çıkarımının işlevi nedir?

Tür Çıkarımı, yalnızca karşılık gelen bildirime ve yöntem çağrısına genel bir bakış sunarak, derleyicinin argüman türlerini tanımlamasına veya tanımasına yardımcı olur.


21) Bir listedeki yinelenen öğeleri tanımlamanın ve ortadan kaldırmanın en kolay yolu hangisidir? Java 8?

Yinelenen öğeleri tanımlamanın ve kaldırmanın en kolay yolu, akış işlemini kullanmak ve bir koleksiyon gerçekleştirmek ve ardından Collections.toSet() yöntemini kullanmaktır.


22) İşlevsel Arayüz için yönergeler nelerdir?

Aşağıda en çok sorulanlar arasında yer alan işlevsel bir arayüze ilişkin yönergeler yer almaktadır. Java 8 programlama sorusu:

  • Yalnızca bir soyut yönteme sahip olmalıdır.
  • Soyut olmadığı için çok sayıda varsayılan yönteme sahip olabilirsiniz ve uygulama aynı şekilde daha önce verilir.
  • Soyut bir yöntem, genel yöntemlerin ana unsuru Java.lang, işlevsel bir arayüzde bilinir. Nesne hala kullanışlı bir arayüz olarak kabul edilmektedir.

Not: Bunun açıklaması, bu arayüz için her uygulama sınıfının, bu soyut yöntem için uygulama sınıfının kendisi tarafından tanımlanan veya bir üst sınıftan alınan bir uygulamaya sahip olabilmesidir.


23) Ayırıcı ve Yineleyici arasındaki farkı ayırt edin.

Ayırıcı ve yineleyici arasındaki bazı farklar şunlardır:

Ayırıcı yineleyici
yılında tanıtıldı Java 1.2 yılında tanıtıldı Java 1.8
Yalnızca tüm öğeleri ayrı ayrı yineler. Tüm elemanları hem ayrı ayrı hem de toplu olarak çaprazlar.
Tam bir API koleksiyonu için yineleyici görevi görür. Hem akış hem de koleksiyon API'si için yineleyici görevi görür.
Paralel programlamayı desteklemez. Paralel programlamayı destekler.

24) Bir sınıftaki bir arayüzün varsayılan yöntemini nasıl çağırabilirsiniz?

Yöntem imzasının başlangıcında bulunan default anahtar sözcüğü, bir arayüzde bir yöntem bildirimini varsayılan yöntem olarak belirlemek için kullanılır. Varsayılan yöntemler de dahil olmak üzere bir arayüzdeki her yöntem bildirimi otomatik olarak genel olduğundan genel değiştiriciyi atlayabilirsiniz.


25) Varsayılan yöntemi tanımlayın. Ne zaman kullanabilirsin?

Arayüzde varsayılan yöntem mevcuttur ve bir uygulama içerir. Bu yöntem, bir arayüzde halihazırda uygulanan sınıflarla birlikte geriye dönük uyumluluğu korurken, belirli bir arayüze yeni işlevler eklemede yardımcı olur.


26) Akışlar nasıl oluşturulur? Javave Java 8 akışı mülakat soruları arasında en çok sorulanlar arasında mıdır?

Akışlar Java Bir koleksiyon gibi belirli bir kaynaktan gelen nesnelerin dizisini tanımlayın, bu da toplu işlemleri destekleyecektir. Bunu, bir veri yapısını toplamak, filtrelemek, yazdırmak ve başka bir veri yapısına dönüştürmek için kullanabilirsiniz.

Aşağıda akışların nasıl oluşturulacağına ilişkin örnekler verilmiştir. Java:

import java.util.stream.Stream;
public class StreamExample {
    public static void main(String[] args) {
        Stream<String> stream = Stream.of("Alice", "Bob", "Charlie", "Dave", "Eve");
        stream.forEach(System.out::println);
    }
}

Çıktı:

Alice
Bob
Charlie
Dave
Eve

27) Harita ve FlatMap akış işlemleri nelerdir?

Harita ve FlatMap, bir fonksiyon kabul eden akış ve ara akış işlemleri olarak kabul edilir. Ayrıca verilen fonksiyonun elemanların geri kalanına uygulanmasına da yardımcı olur.


28) Neden değiştirmemiz gerekiyor? Java programlama dili sıklıkla?

değiştirmeliyiz Java Aşağıdaki nedenlerden dolayı programlama dilini sıklıkla kullanırız:

  • Özelliklerini kullanabilirsiniz Fonksiyonel programlama.
  • Çok Çekirdekli CPU'ların en son teknolojisini etkin bir şekilde kullanmak.

29) Kullanılan birkaç işlevsel arayüzden bahsedin Java 8.

Aşağıda kullanılan birkaç işlevsel arayüz bulunmaktadır. Java 8:

  • İkiliOperator
  • Tüketici
  • işlev
  • Satıcı
  • BirliOperator
  • Çift Fonksiyon
  • yüklem

30) Saat ve tarih için ana API sınıfları nelerdir?

Aşağıda, kullanılan saat ve tarih için ana API sınıfları listelenmiştir. Java 8:

  • Yerel zaman
  • YerelTarihSaat
  • YerelTarih

31) Lambda ifadesinin temel yapısını/sözdizimini verin.

Lambda ifadesinin temel yapısı/sözdizimi şöyledir:

(arugument - list) - > {body}

Burada,

  • Argüman – liste: İster dolu, ister boş tutabilirsiniz.
  • Ok jetonu: Gövde ifadelerini ve argümanları (liste) birbirine bağlamada faydalıdır.
  • Vücut: Lambda ifadesine yönelik ifadelerden ve ifadelerden oluşur.

32) Akışın temel özellikleri nelerdir?

Aşağıda Stream'in ana özellikleri verilmiştir:

  • Farklı tip boru
  • Kaynak
  • toplam Operaleri
  • Elementlerin Dizisi
  • Otomatik Yinelemeler

33) En yaygın Ara işlemler nelerdir?

En yaygın ara ifade türlerinden bazıları şunlardır:

  • Belirgin ()
  • Atla (uzun n)
  • Filtre (Yüklem)
  • Limit (uzun n)
  • Harita (İşlev)

34) En yaygın Terminal operasyon türleri nelerdir?

Aşağıda en yaygın terminal işlemleri türleri verilmiştir:

  • saymak
  • Azaltmak
  • min
  • Tüm Eşleşmeler
  • maksimum
  • AnyMatch
  • Sıralamak

35) Yöntem referansı nedir? Java 8?

Yöntem referansı Java Şekil 8, işlevsel arayüze gönderme yapmanın bir yoludur. Lambda ifadesinin çok daha kolay ve etkili bir şekli olarak biliniyor. Bir yönteme başvurmak için lambda ifadelerini kullandığınızda, onu yöntem referansıyla değiştirebilirsiniz.


36) Dahili ve Harici yinelemeler nasıl farklıdır?

Aşağıda dahili ve harici yineleme arasındaki farklar verilmiştir:

Dahili Yineleme Harici Yineleme
Pasif veya örtülü yineleyici olarak da bilinir. Aktif veya açık yineleyici olarak da bilinir.
Dahili olarak çeşitli nesneler üzerinde taşınır. Dışarıdan çeşitli nesneler üzerinde taşınır.
Fonksiyonel programlamada kullanılır. Nesneye yönelik programlamada kullanılır.
Çok daha az hataya neden olur. Ancak bunun için kodlama şarttır. Daha fazla hataya neden olur. Ancak kodlamaya gerek yoktur.

37) Önceki sürümlerde tür çıkarımı kullanılmış mıydı? Java?

Java tür girişimini tanıttı Java 5 ancak çok sınırlı erişime sahip. Ancak yıllar geçtikçe, yazı tipi müdahalesi olasılıkları arttı ve şu anda en iyi durumda. Java 8.


38) Bir yere yazın Java Bir Stream'in minimum ve maksimum sayısını bulan 8 program.

import java.util.Arrays;
import java.util.stream.IntStream;
public class MinMaxExample {
    public static void main(String[] args) {
        int[] numbers = {9, 3, 8, 1, 5, 7, 2, 6, 4};
        int min = IntStream.of(numbers).min().getAsInt();
        int max = IntStream.of(numbers).max().getAsInt();
        System.out.println("Minimum number: " + min);
        System.out.println("Maximum number: " + max);
    }
}

Çıktı:

Minimum number: 1
Maximum number: 9

39) StringJoiner Sınıfı aracılığıyla birden fazla String nasıl birleştirilir?

StringJoiner bir veya daha fazla String'i birleştirmeye yardımcı olur ve bu belirli bir birleştirici veya sınırlayıcı aracılığıyla yapılabilir. Örneğin, bir dizi string'i virgülle (,) ayırarak birleştirebilirsiniz.

Bir CSV dizesi oluşturmak için, Linux'ta belirli bir dizin için tam yol oluşturulabilir; bu, dizeyi eğik çizgi "/" yardımıyla birleştirerek yapılabilir.


40) Lambda ifadelerine en iyi alternatif nedir? Java 8?

Genel olarak, istenen çıktıyı elde etmeye yardımcı olan anonim yöntemler oluşturmak için lambda ifadelerinden yararlanırız. Ancak lambda ifadelerinin çalışmadığı ve yalnızca mevcut bir yöntemi kullandığı durumlar vardır.

Bu yüzden, bundan kaçınmak için, istenen çıktıyı elde etmenize yardımcı olabilecek yöntem referansını kullanabilirsiniz. Yöntem referansı: (çift iki nokta üst üste) sembolü kullanılarak gösterilir.