Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📘 Lesson  ·  Lesson 43

Java 8 Features

Java 8 ने क्या जोड़ा

Java 8 (2014 में release) Java के इतिहास के सबसे बड़े updates में से एक था। इसने Java में functional programming लाया, जिससे code छोटा, साफ़ और पढ़ने में आसान बनता है। Java 8 से पहले साधारण काम के लिए भी बहुत lines और anonymous classes चाहिए होती थीं; Java 8 के बाद वही काम एक line में हो जाता है।

जो पाँच features ज़रूर आने चाहिए: lambda expressions, functional interfaces, Stream API, default methods, और Optional। हर एक को उदाहरण के साथ देखते हैं।

1. Lambda Expressions

Lambda expression एक छोटा, anonymous function है — code का एक टुकड़ा जिसे आप value की तरह pass कर सकते हैं। इससे भारी-भरकम anonymous classes की ज़रूरत खत्म हो जाती है। Syntax: (parameters) -> { body }।

Java
// पुराना तरीका (Java 8 से पहले)
Runnable r1 = new Runnable() {
    public void run() { System.out.println("Hello"); }
};

// Java 8 lambda — एक line
Runnable r2 = () -> System.out.println("Hello");
r2.run();
▶ Output
Hello

2. Functional Interfaces

Functional interface वह interface है जिसमें ठीक एक abstract method हो। Lambdas सिर्फ़ functional interfaces के साथ काम करते हैं। Java इन्हें @FunctionalInterface से mark करता है। आम built-in: Runnable, Comparator, Predicate, Function।

Java
// Predicate एक value लेकर true/false देता है
import java.util.function.Predicate;

Predicate<Integer> isEven = n -> n % 2 == 0;
System.out.println(isEven.test(10));  // true
System.out.println(isEven.test(7));   // false
▶ Output
true
false

3. Stream API

Stream API से आप collection (जैसे list) को operations की pipeline की तरह process करते हैं — filter, map, sort, collect — बिना loop लिखे। Streams lazy और readable होती हैं।

Java
import java.util.*;
import java.util.stream.*;

List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5, 6);

// even numbers रखो, double करो, list में collect करो
List<Integer> result = nums.stream()
        .filter(n -> n % 2 == 0)
        .map(n -> n * 2)
        .collect(Collectors.toList());

System.out.println(result);
▶ Output
[4, 8, 12]

4. Default Methods

Java 8 से पहले interfaces में method body नहीं हो सकती थी। Default methods default keyword से interface को तैयार implementation देने देती हैं। इससे Java पुराने interfaces में नई methods बिना existing code तोड़े जोड़ सका।

Java
interface Greet {
    default void hello() {
        System.out.println("Hello from default method");
    }
}
class Demo implements Greet {}

// Demo को hello() मुफ़्त मिल जाता है
new Demo().hello();
▶ Output
Hello from default method

5. Optional

Optional एक container है जिसमें value हो भी सकती है और नहीं भी। यह आपको "no value" वाली स्थिति संभालने पर मजबूर करके NullPointerException से बचाता है।

Java
import java.util.Optional;

Optional<String> name = Optional.ofNullable(null);
System.out.println(name.orElse("Guest"));  // safe default
▶ Output
Guest

सारांश Table

FeatureकामKeyword / Class
Lambdaछोटा anonymous function->
Functional Interfaceएक abstract method वाली interface@FunctionalInterface
Stream APICollections को pipeline में process.stream()
Default MethodInterface में method bodydefault
OptionalNull pointer errors से बचावOptional
💡 क्यों ज़रूरी है

Lambdas + streams मिलकर लंबे for loops को एक readable line में बदल देते हैं। यह अब modern Java का standard तरीका है और interview का बहुत common topic है।

⚠️ आम गलती

एक stream सिर्फ़ एक बार इस्तेमाल हो सकती है। collect() जैसे terminal operation के बाद उसी stream को दोबारा use नहीं कर सकते — source से नई stream बनाएं।

सारांश

  • Java 8 (2014) ने Java में functional programming जोड़ा।
  • Lambda = -> से बना छोटा anonymous function।
  • Functional interface = एक abstract method; lambdas को enable करता है।
  • Stream API collections को pipeline में process करती है (filter, map, collect)।
  • Default methods interfaces में body जोड़ती हैं; Optional null errors से बचाता है।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Java 8 की मुख्य features क्या हैं?
Java 8 की मुख्य features हैं: lambda expressions, functional interfaces, Stream API, interfaces में default methods, और Optional class.
Java में lambda expression क्या है?
Lambda expression एक छोटा anonymous function है जो arrow syntax (parameters) -> body से लिखा जाता है।
Stream और Collection में क्या अंतर है?
Collection data store करती है, जबकि Stream data process करती है और सिर्फ़ एक बार use हो सकती है।
← Back to Java Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicLambda Expressions आपकी प्रगति: 43 / 61 (70%) · Lesson 44 / 61 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें