35 + Java 8 คำถามและคำตอบสัมภาษณ์ (2025)

ไม่ว่าจะเป็นนักเทคโนโลยีหรือมืออาชีพ การสัมภาษณ์มักจะทำให้อะดรีนาลีนคลายเครียดอยู่เสมอ อย่างไรก็ตาม เพื่อให้โดดเด่นจากคนอื่นๆ สิ่งสำคัญคือต้องขัดเกลาทักษะและเดิมพันความสามารถของคุณ นอกจากนี้ยังมีการตอบคำถามที่พบบ่อยอีกด้วย Java คำถามและคำตอบในการสัมภาษณ์ 8 ข้อสามารถช่วยคุณได้

ดังนั้น เจาะลึกลงไปในคำถามสัมภาษณ์ Java 8 เหล่านี้สำหรับผู้มีประสบการณ์และผู้เริ่มต้นเพื่อเอาชนะการสัมภาษณ์ที่กำลังจะมาถึงของคุณ

Java 8 คำถามสัมภาษณ์สำหรับนักศึกษาใหม่และประสบการณ์

1) Java 8 อยู่ในกระบวนทัศน์การเขียนโปรแกรมใด

Java 8 ตกอยู่ในรูปแบบการเขียนโปรแกรมต่อไปนี้:

  • ภาษาโปรแกรมเชิงอ็อบเจ็กต์หรือคลาส
  • ภาษาโปรแกรมเชิงฟังก์ชัน
  • ภาษาการเขียนโปรแกรมขั้นตอนที่ระบุ
  • ภาษาโปรแกรมเชิงตรรกะ

2) เหตุใดจึงควรใช้คลาสเสริม?

คลาสทางเลือกคือคลาสคอนเทนเนอร์ที่เพิ่งเปิดตัวซึ่งมีประโยชน์ในการสาธิตค่าทางเลือกที่มีอยู่หรือไม่มีอยู่ ข้อได้เปรียบที่สำคัญคือการหลีกเลี่ยงการตรวจสอบค่าว่างและโมฆะ และอำนวยความสะดวกให้กับวิธีการที่มีประโยชน์ในการตรวจสอบการมีอยู่ของค่าสำหรับตัวแปรเฉพาะ


Java 8 คำถามสัมภาษณ์

3) ตั้งชื่อคุณลักษณะล่าสุดบางประการที่นำมาใช้ Java 8.

ด้านล่างนี้เป็นคุณสมบัติล่าสุดที่นำมาใช้ Java 8:

  • นิพจน์แลมบ์ดา: มันเป็น Java ฟังก์ชั่นที่คุณสามารถแชร์หรืออ้างถึงเป็นวัตถุได้
  • การรบกวนวิธีการ: จะใช้ฟังก์ชันเป็นเกณฑ์ในการนำวิธีการไปใช้
  • การรบกวนการทำงาน: การรบกวนการทำงานทุกครั้งมีความเกี่ยวข้องกับวิธีนามธรรมวิธีเดียวซึ่งเรียกว่าวิธีการทำงาน
  • วิธีการเริ่มต้น: มันมีประโยชน์ในการนำวิธีการต่างๆ ไปใช้ในส่วนต่อประสานที่ช่วยให้เกิดศักยภาพ 'วิวัฒนาการส่วนต่อประสาน'
  • วันที่ เวลา API: เป็นเวอร์ชันปรับปรุงของ java time APIs ที่ได้รับแรงบันดาลใจมาเพื่อจัดการกับข้อเสียของเวอร์ชันล่าสุด
  • สตรีม API เรียกว่าเลเยอร์นามธรรม ซึ่งช่วยในการส่งข้อมูลการประมวลผล
  • ตัวเลือก: คลาส wrapper มีประโยชน์ในการตรวจสอบค่า Null และประมวลผลข้อมูลเพิ่มเติม
  • Javaสคริปต์และเครื่องยนต์ Nashorn: เป็นเวอร์ชันปรับปรุงของ JavaScript Engine ซึ่งมีประโยชน์ในการเปิดใช้งานฟังก์ชันการทำงานใน Javaแทนที่แรด

4) ระบุข้อดีของการใช้ java 8

นี่คือประโยชน์บางประการของการใช้ Java 8:

  • ช่วยในการสร้างแอปพลิเคชันได้เร็วและง่ายขึ้นมาก
  • มันให้สภาพแวดล้อมที่เสถียรมากสำหรับนักพัฒนา
  • รหัสที่กระชับ นำมาใช้ซ้ำได้ และเข้าใจง่าย
  • การสนับสนุนที่ได้รับการปรับปรุงและมีประสิทธิภาพ
  • ง่ายต่อการพอร์ตข้ามระบบปฏิบัติการต่างๆ
  • รหัสสำเร็จรูปขั้นต่ำ

5) คอลเลกชันคืออะไร และแตกต่างจากสตรีมอย่างไร

คอลเลกชันคือฐานข้อมูลในหน่วยความจำที่บันทึกค่าทั้งหมดตามโครงสร้างข้อมูลปัจจุบัน ดังนั้น ก่อนที่จะเพิ่ม คุณต้องเพิ่มลงในคอลเลกชัน สิ่งสำคัญคือต้องคำนวณแต่ละรายการ ในขณะที่สตรีมเป็นโครงสร้างข้อมูลที่ตายตัวซึ่งเราสามารถคำนวณองค์ประกอบต่างๆ ได้ตามความต้องการของเรา


6) นิพจน์แลมบาดาคืออะไร?

นิพจน์ Lambada เป็นฟังก์ชันประเภทหนึ่งที่ไม่มีชื่อ และบางครั้งเรียกว่าฟังก์ชันที่ไม่ระบุชื่อ เนื่องจากไม่มีข้อมูลประเภทของตัวเอง คุณสามารถใช้ได้ตามความต้องการ และมีประโยชน์มากในการทำซ้ำ กรอง และแยกข้อมูลใดๆ ออกจากคอลเลกชัน

ตัวอย่าง:

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);
    }
}

Output:

Charlie

7) กำหนดการวางท่อสตรีม

การจัดกลุ่มการดำเนินการแบบสตรีมเป็นวิธีการจัดกลุ่มการดำเนินการที่แตกต่างกันทั้งหมด คุณสามารถทำได้โดยจัดกลุ่มการดำเนินการแบบสตรีมออกเป็นสองส่วน ได้แก่ การดำเนินการขั้นกลางและขั้นตอนสุดท้าย

เมื่อใดก็ตามที่มีการดำเนินการขั้นกลาง การดำเนินการดังกล่าวจะเด้งกลับอินสแตนซ์ไปยังไปป์ไลน์สตรีม ดังนั้น ผู้ใช้ทุกคนสามารถตั้งค่าการดำเนินการขั้นกลางจำนวนไม่สมเหตุสมผลเพื่อปรับปรุงข้อมูลและสร้างไปป์ไลน์การประมวลผลในที่สุด

ยิ่งไปกว่านั้น การจะยุติท่อส่งน้ำได้นั้น จำเป็นต้องมีการดำเนินการที่ปลายทางเมื่อสิ้นสุดกระบวนการ


8) ภาคแสดงและผู้บริโภคคืออะไร Java 8?

เพรดิเคตเป็นอินเทอร์เฟซการทำงานที่โดยทั่วไปรับอาร์กิวเมนต์และดึงค่าบูลีน คุณสามารถใช้มันเพื่อใช้ตัวกรองสำหรับคอลเลกชันของวัตถุ

ในทางกลับกัน ผู้บริโภคจะเรียกว่าอินเทอร์เฟซการทำงานในตัวที่พบใน Javaแพ็คเกจ .util.function คุณสามารถใช้มันเพื่อบริโภควัตถุใดๆ ก็ได้ และมันจะรับค่าอินพุตแต่ไม่ได้ให้อะไรเลย


9) เหตุใดจึงใช้วิธี peek () Java 8?

เมธอด peek() ช่วยสนับสนุนการดีบัก โดยที่เราต้องการสังเกตองค์ประกอบต่างๆ เนื่องจากมีแนวโน้มที่จะไหลจากจุดเฉพาะในไปป์ไลน์ เป็นการแสดงถึงการสังเกตของเราว่าแต่ละองค์ประกอบผ่านไปอย่างไร

ไวยากรณ์: public Object peek()


10) อะไรทำให้คุณเป็นผู้สมัครในอุดมคติสำหรับ Java บทบาทของนักพัฒนา?

ต่อไปนี้เป็นคุณสมบัติสำคัญบางประการที่สามารถทำให้คุณเป็นผู้สมัครในอุดมคติสำหรับ Java บทบาทของนักพัฒนา:

  • คุณควรมีความสามารถในการเขียนโค้ดที่ชัดเจน เข้าใจง่าย และมีประสิทธิภาพ
  • ความเข้าใจอย่างลึกซึ้งถึงรูปแบบและแนวคิดของ “OOP หรือการเขียนโปรแกรมเชิงวัตถุ".
  • ความรู้ที่ดีเกี่ยวกับรูปแบบสถาปัตยกรรมและการออกแบบต่างๆ
  • ทำความคุ้นเคยกับ Java รูปแบบการทำงานพร้อมกัน
  • ประสบการณ์และความรู้ในการทำงานกับ Web Application Framework ต่างๆ เช่น Spark และเล่น.
  • ความรู้พื้นฐานเกี่ยวกับ Java Virtual Machine หรือ JVM ข้อเสีย วิธีแก้ไข ฯลฯ
  • ประสบการณ์ที่ดีในการใช้ฐานข้อมูลแบบฝังและภายนอก

11) อธิบาย 'อินเทอร์เฟซการทำงาน'

อินเทอร์เฟซที่มีบทคัดย่อเพียงอันเดียวเรียกว่าอินเทอร์เฟซการทำงาน มีชื่อเรียกอีกอย่างว่า Single Abstract Method หรือ SAM อย่างไรก็ตาม คำอธิบายประกอบ @FunctionalInterface เป็นทางเลือกและสามารถใช้ได้แม้ว่าจะไม่ได้อยู่ที่นั่นก็ตาม มันจะขยายไปยังอินเทอร์เฟซอื่นหากไม่มีนามธรรม


12) เหตุใดจึงต้องมีวิธีการแบบคงที่ Java 8?

การอ้างอิงวิธีการแบบคงที่เรียกว่ายูทิลิตี้หรือวิธีการช่วยเหลือซึ่งเชื่อมโยงกับอินเทอร์เฟซ นอกจากนี้ยังเป็นคลาสที่ไม่เชื่อมโยงกับวัตถุใดๆ

ต่อไปนี้เป็นเหตุผลในการใช้วิธีการแบบคงที่ Java:

  • มีประโยชน์สำหรับการบำรุงรักษาและขยาย API
  • เกี่ยวข้องกับการแบ่งปันความรับผิดชอบที่ชัดเจนและกระชับ และคุณไม่จำเป็นต้องมีคลาสยูทิลิตี้หนึ่งคลาสเพื่อให้มีคอลเลกชันยูทิลิตี้
  • มีประโยชน์สำหรับการรักษาอินเทอร์เฟซทั้งหมดไว้ในอินเทอร์เฟซทั่วไป แทนที่จะเป็นอินเทอร์เฟซเฉพาะ

13) Nashorn มีข้อดีอย่างไร?

Nashorn มีความทันสมัยและใหม่ที่สุด Javaต้นฉบับ เครื่องยนต์ประมวลผลที่นำมาใช้ใน Java 8. ก่อนหน้านี้มีพื้นฐานมาจาก Mozilla Rhino ช่วยให้ปฏิบัติตาม ECMA ได้ดียิ่งขึ้น Javaสคริปต์ มันเร็วกว่าเวอร์ชันก่อนๆ


14) Collection API และ Stream API แตกต่างกันอย่างไร

ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่าง Collection API และ Stream API

API ของคอลเลกชัน สตรีม API
Collection API ถูกใช้ครั้งแรกใน Java 1.2 Stream API เปิดตัวครั้งแรกใน Java SE8.
คุณสามารถใช้มันเพื่อเก็บข้อมูลได้ไม่จำกัด คุณสามารถใช้มันเพื่อคำนวณข้อมูลได้ไม่จำกัด
Collection API อนุญาตให้คุณใช้ Iterator และ Spilterator เพื่อวนซ้ำข้อมูล Stream API อนุญาตให้คุณใช้ Iterator และ Spilterator เพื่อวนซ้ำข้อมูล
Collection API เข้าถึงได้ง่าย API ในสตรีม ไม่มีวิธีโดยตรงในการเข้าถึงองค์ประกอบเฉพาะ
นอกจากนี้ยังให้ความสะดวกในการประมวลผลตามความต้องการของคุณ Stream API สามารถประมวลผลได้เพียงครั้งเดียว

15) อธิบาย PermGenSpace และ MetaSpace

PermGen หรือ Permanent Generation Space เป็นพื้นที่ฮีปประเภทพิเศษที่ใช้สำหรับติดตามข้อมูลเมตาที่เก็บไว้ซึ่งขณะนี้ถูกลบออกไปแล้ว Java 8.

ด้วยเวอร์ชันใหม่นี้ การจัดเก็บข้อมูลเมตาจะทำในหน่วยความจำที่คล้ายกันที่เรียกว่า "MetaSpace" มันไม่สามารถโอนได้ Java หน่วยความจำฮีปและเป็นเวอร์ชันปรับปรุงของ PermGen ในด้านการปรับแต่งอัตโนมัติ การรวบรวมขยะ ฯลฯ


16) Functional Interface ถูกสร้างขึ้นมาอย่างไร Java 8?

คุณสามารถใช้นิพจน์แลมบ์ดาเพื่อใช้วิธีการเชิงนามธรรมของอินเทอร์เฟซการทำงานได้ Java 8. ด้านล่างนี้เป็นตัวอย่างการเข้ารหัสที่เหมือนกัน:

ตัวอย่าง

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

Output:

Hello, world!

17) อะไรคือความแตกต่างและความคล้ายคลึงระหว่าง Function และ Predicate in Java 8?

นี่คือความแตกต่างระหว่าง Function และ Predicate in Java 8:

  • ฟังก์ชันมีประโยชน์ในการแปลง ในขณะที่ภาคแสดงสามารถใช้เพื่อทดสอบเงื่อนไขใดก็ได้
  • ฟังก์ชันสามารถรับอาร์กิวเมนต์และให้ผลลัพธ์ ในขณะที่เพรดิเคตสามารถรับอาร์กิวเมนต์ได้ แต่จะให้เฉพาะค่าบูลีนเท่านั้น
  • ฟังก์ชั่นแสดงโดย และภาคแสดงจะแสดงด้วยเท่านั้น โดยที่ T คือประเภทของฟังก์ชัน และ R คือผลลัพธ์

ด้านล่างนี้คือความคล้ายคลึงกันระหว่างฟังก์ชันและภาคแสดง:

  • ทั้งฟังก์ชันและภาคแสดงเป็นส่วนต่อประสานการทำงาน
  • ทั้งฟังก์ชันและเพรดิเคตเป็นฟังก์ชันอาร์กิวเมนต์เดี่ยว

18) อธิบายความแตกต่างระหว่างข้าม(ยาว) และจำกัด(ยาว) โดยใช้ตัวอย่าง

การข้าม (ยาว) เป็นการดำเนินการกลางที่ดึงองค์ประกอบที่เหลือหลังจากกำจัดองค์ประกอบ n เริ่มต้นของสตรีมที่ระบุ

ตัวอย่าง:

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);
    }
}

Output:

Charlie
Dave
Eve

ขีดจำกัด (ยาว) ดึงกระแสขององค์ประกอบที่มีขนาดเฉพาะ

ตัวอย่าง:

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);
    }
}

Output:

AliceBob
Charlie

19) สถานการณ์ใดเหมาะสมที่สุดสำหรับการใช้ stream API Java 8?

คุณสามารถใช้สตรีม API ได้ Java 8. ต้องมีการดำเนินการดังต่อไปนี้:

  • คุณสามารถดำเนินการประมวลผลแบบขนานได้
  • สำหรับการดำเนินการแบบขี้เกียจ
  • เพื่อดำเนินการฐานข้อมูล
  • ใช้สำหรับการวนซ้ำภายใน
  • สำหรับการเขียนโปรแกรมเชิงฟังก์ชัน
  • ใช้งานเพื่อใช้งานการดำเนินการทางท่อได้

20) การอนุมานประเภทมีหน้าที่อะไร?

การอนุมานประเภทช่วยคอมไพลเลอร์ในการระบุหรือจดจำประเภทของอาร์กิวเมนต์โดยเพียงแค่มีภาพรวมของการประกาศที่เกี่ยวข้องและการเรียกใช้เมธอด


21) วิธีใดเป็นวิธีที่ง่ายที่สุดในการระบุและกำจัดองค์ประกอบที่ซ้ำกันออกจากรายการ Java 8?

วิธีที่ง่ายที่สุดในการระบุและลบองค์ประกอบที่ซ้ำกันคือการใช้การดำเนินการสตรีมและดำเนินการรวบรวม ตามด้วยการใช้เมธอด Collections.toSet()


22) แนวทางสำหรับ Functional Interface มีอะไรบ้าง?

ด้านล่างนี้เป็นแนวทางสำหรับอินเทอร์เฟซการทำงานซึ่งเป็นหนึ่งในคำถามที่ถูกถามมากที่สุด Java 8 คำถามเกี่ยวกับการเขียนโปรแกรม:

  • ควรมีวิธีนามธรรมเพียงวิธีเดียวเท่านั้น
  • คุณสามารถมีวิธีการเริ่มต้นได้มากเท่ากับวิธีการที่ไม่ใช่นามธรรม และการนำไปใช้งานจะได้รับก่อนหน้านี้ด้วยวิธีเดียวกัน
  • วิธีการนามธรรมซึ่งเป็นองค์ประกอบหลักของวิธีการสาธารณะจาก Java.lang เป็นที่รู้จักในอินเทอร์เฟซที่ใช้งานได้ วัตถุยังถือเป็นอินเทอร์เฟซที่มีประโยชน์

หมายเหตุ คำอธิบายนี้คือแต่ละคลาสการใช้งานสำหรับอินเทอร์เฟซนี้สามารถมีการใช้งานสำหรับวิธีนามธรรมนี้ที่กำหนดโดยคลาสการใช้งานเองหรือนำมาจากซูเปอร์คลาส


23) แยกความแตกต่างระหว่าง splitterator และ Iterator

ความแตกต่างบางประการระหว่างตัวแยกและตัววนซ้ำ:

ตัวแบ่งแยก ตัววนซ้ำ
ได้รับการแนะนำใน Java 1.2. ได้รับการแนะนำใน Java 1.8.
โดยจะวนซ้ำองค์ประกอบทั้งหมดแยกกันเท่านั้น มันขวางองค์ประกอบทั้งหมดแยกจากกันและเป็นกลุ่ม
มันทำหน้าที่เป็นตัววนซ้ำสำหรับคอลเลกชัน API ทั้งหมด มันทำหน้าที่เป็นตัววนซ้ำสำหรับทั้งสตรีมและ API การรวบรวม
จะไม่รองรับการเขียนโปรแกรมแบบขนาน รองรับการเขียนโปรแกรมแบบขนาน

24) คุณจะเรียกวิธีการเริ่มต้นของอินเทอร์เฟซในคลาสได้อย่างไร?

คำสำคัญเริ่มต้นซึ่งแสดงอยู่ที่จุดเริ่มต้นของลายเซ็นวิธีการ ใช้เพื่อกำหนดการประกาศวิธีการในอินเทอร์เฟซเป็นวิธีเริ่มต้น คุณสามารถข้ามตัวแก้ไขสาธารณะได้ เนื่องจากการประกาศวิธีการทุกรายการในอินเทอร์เฟซ รวมถึงวิธีการเริ่มต้น จะถูกเผยแพร่โดยอัตโนมัติ


25) กำหนดวิธีการเริ่มต้น คุณสามารถใช้มันได้เมื่อใด?

วิธีการเริ่มต้นมีอยู่ในอินเทอร์เฟซ และรวมถึงการนำไปใช้งานด้วย วิธีการนี้มีประโยชน์ในการเพิ่มฟังก์ชันการทำงานใหม่ให้กับอินเทอร์เฟซที่กำหนด ในขณะเดียวกันก็รักษาความเข้ากันได้แบบย้อนหลังพร้อมกับคลาสที่มีการใช้งานอยู่แล้วในอินเทอร์เฟซ


26) กระแสข้อมูลถูกสร้างขึ้นมาอย่างไร Javaและเป็นหนึ่งในคำถามสัมภาษณ์เกี่ยวกับ Java 8 Stream ที่ถูกถามมากที่สุดหรือไม่

สตรีมใน Java อธิบายลำดับของวัตถุจากแหล่งเฉพาะ เช่น คอลเลกชัน ที่จะรองรับการดำเนินการรวม คุณสามารถใช้คอลเลกชันนี้เพื่อรวบรวม กรอง พิมพ์ และเปลี่ยนโครงสร้างข้อมูลหนึ่งไปเป็นอีกโครงสร้างหนึ่ง

นี่คือตัวอย่างวิธีสร้างสตรีม 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);
    }
}

Output:

Alice
Bob
Charlie
Dave
Eve

27) การดำเนินการสตรีม Map และ FlatMap คืออะไร

Map และ FlatMap ถือเป็นการดำเนินการสตรีมและสตรีมกลางที่ยอมรับฟังก์ชัน นอกจากนี้ยังช่วยในการนำฟังก์ชันที่กำหนดไปใช้กับองค์ประกอบที่เหลืออีกด้วย


28) ทำไมเราต้องปรับเปลี่ยน Java ภาษาโปรแกรมบ่อย?

เราต้องปรับเปลี่ยน Java ภาษาโปรแกรมบ่อยครั้งเนื่องจากเหตุผลด้านล่าง:


29) กล่าวถึงอินเทอร์เฟซการทำงานบางอย่างที่ใช้ Java 8.

ด้านล่างนี้คืออินเทอร์เฟซการทำงานบางส่วนที่ใช้ Java 8:

  • เลขฐานสองOperaTor
  • สินค้าอุปโภคบริโภค
  • ฟังก์ชัน
  • ผู้ผลิต
  • ยูนารีOperaTor
  • ไบฟังก์ชัน
  • ภาคแสดง

30) คลาส API หลักสำหรับเวลาและวันที่คืออะไร?

รายการด้านล่างคือคลาส API หลักสำหรับเวลาและวันที่ที่ใช้ Java 8:

  • เวลาท้องถิ่น
  • LocalDateTime
  • วันที่ท้องถิ่น

31) ให้โครงสร้างพื้นฐาน/ไวยากรณ์ของนิพจน์แลมบ์ดา

โครงสร้างพื้นฐาน/ไวยากรณ์ของนิพจน์ Lambda คือ:

(arugument - list) - > {body}

ที่นี่

  • อาร์กิวเมนต์ – รายการ: คุณจะเติมหรือเว้นว่างก็ได้
  • โทเค็นลูกศร: มันมีประโยชน์ในการเชื่อมโยงนิพจน์เนื้อหาและข้อโต้แย้ง - รายการ
  • ร่างกาย: ประกอบด้วยข้อความสั่งและสำนวนสำหรับนิพจน์แลมบ์ดา

32) ลักษณะสำคัญของ Stream คืออะไร?

ด้านล่างนี้เป็นคุณสมบัติหลักของสตรีม:

  • ท่อ
  • แหล่ง
  • สรุป Operations
  • ลำดับขององค์ประกอบ
  • การวนซ้ำอัตโนมัติ

33) การดำเนินการระดับกลางที่พบมากที่สุดคืออะไร

นิพจน์ระดับกลางบางประเภทที่พบบ่อยที่สุด ได้แก่:

  • แตกต่าง ()
  • ข้าม (ยาว n)
  • ตัวกรอง (ภาคแสดง)
  • ขีดจำกัด (ยาว n)
  • แผนที่ (ฟังก์ชัน)

34) ประเภทการทำงานของเทอร์มินัลที่พบมากที่สุดคืออะไร

ด้านล่างนี้เป็นประเภทการทำงานของเทอร์มินัลที่พบบ่อยที่สุด:

  • นับ
  • ลด
  • นาที
  • แมตช์ทั้งหมด
  • แม็กซ์
  • แมตช์ใดก็ได้
  • ถึงอาเรย์

35) การอ้างอิงวิธีการคืออะไร Java 8?

การอ้างอิงวิธีการใน Java 8 เป็นวิธีอ้างอิงถึงอินเทอร์เฟซการทำงาน เป็นที่รู้จักว่าเป็นนิพจน์แลมบ์ดารูปแบบที่ง่ายและมีประสิทธิภาพมากกว่ามาก เมื่อคุณใช้นิพจน์แลมบ์ดาเพื่ออ้างอิงวิธีการ คุณสามารถแทนที่ด้วยการอ้างอิงวิธีการได้


36) การวนซ้ำภายในและภายนอกแตกต่างกันอย่างไร

ด้านล่างนี้คือความแตกต่างระหว่างการทำซ้ำภายในและภายนอก:

การวนซ้ำภายใน การวนซ้ำภายนอก
เรียกอีกอย่างว่าตัววนซ้ำแบบพาสซีฟหรือโดยนัย เรียกอีกอย่างว่าตัววนซ้ำที่ใช้งานอยู่หรือชัดเจน
มันถูกบรรทุกไว้ภายในกับวัตถุต่างๆ มันถูกพาไปภายนอกกับวัตถุต่างๆ
มันถูกใช้ในการเขียนโปรแกรมเชิงฟังก์ชัน ใช้ในการเขียนโปรแกรมเชิงวัตถุ
มันทำให้เกิดข้อผิดพลาดน้อยมาก อย่างไรก็ตาม การเขียนโค้ดเป็นสิ่งจำเป็นสำหรับมัน มันทำให้เกิดข้อผิดพลาดมากขึ้น อย่างไรก็ตาม ไม่จำเป็นต้องเขียนโค้ด

37) มีการอนุมานประเภทในเวอร์ชันก่อนหน้าหรือไม่ Java?

Java แนะนำการรบกวนประเภทใน Java 5 แต่เข้าถึงได้จำกัดมาก แต่ในช่วงหลายปีที่ผ่านมา ความเป็นไปได้ของการรบกวนประเภทได้เพิ่มขึ้น และสิ่งที่ดีที่สุดก็คือ Java 8.


38) เขียนก Java 8 โปรแกรมที่สามารถหาจำนวนต่ำสุดและสูงสุดของ Stream ได้

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);
    }
}

Output:

Minimum number: 1
Maximum number: 9

39) เราจะรวมหลาย Strings ผ่าน StringJoiner Class ได้อย่างไร

StringJoiner ช่วยในการรวมสตริงหนึ่งรายการหรือมากกว่านั้น และสามารถทำได้โดยใช้ตัวรวมหรือตัวแบ่งเฉพาะ ตัวอย่างเช่น สามารถรวมสตริงจำนวนหนึ่งโดยคั่นด้วยเครื่องหมายจุลภาค (,)

สำหรับการสร้างสตริง CSV เราสามารถสร้างเส้นทางแบบเต็มสำหรับไดเร็กทอรีเฉพาะใน Linux ซึ่งสามารถทำได้โดยการเข้าร่วม String โดยใช้เครื่องหมายทับ “/”


40) ทางเลือกที่ดีที่สุดสำหรับนิพจน์แลมบ์ดาคืออะไร Java 8?

โดยทั่วไป เราใช้นิพจน์แลมบ์ดาเพื่อสร้างวิธีการที่ไม่ระบุชื่อที่ช่วยให้ได้ผลลัพธ์ที่ต้องการ อย่างไรก็ตาม มีบางกรณีที่นิพจน์ lambda ไม่ทำงานและใช้วิธีการที่มีอยู่เท่านั้น

ดังนั้นเพื่อหลีกเลี่ยงปัญหานี้ คุณสามารถใช้การอ้างอิงเมธอดที่ช่วยให้ได้ผลลัพธ์ตามต้องการ การอ้างอิงเมธอดจะแสดงโดยใช้สัญลักษณ์: (เครื่องหมายโคลอนคู่)