Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा 9 में StackWalker API क्या है?

StackWalker API किसी भी मेथड के भीतर कार्यों को निष्पादित करने के लिए आसान फ़िल्टरिंग और लेज़ी एक्सेस की अनुमति देता है। यह जावा 9 में स्टैक ट्रेस जानकारी प्राप्त करने के लिए एक कुशल API है।

StackWalker API में तीन महत्वपूर्ण नई क्लास हैं: StackWalker, StackWalker.StackFrame और StackWalker.Option।

  • StackWalker - यह StackWalker API में मुख्य क्लास है। हम StackWalker.forEach() मेथड का उपयोग करके स्टैक फ्रेम को ट्रैवर्स करते हैं और StackWalker.getCallerClass() मेथड को कॉल करके कॉलर क्लास को कुशल तरीके से प्राप्त करते हैं। हम StackWalker.walk() मेथड का उपयोग करके स्टैक ट्रेस के माध्यम से चलते हैं और स्टैक फ्रेम की स्ट्रीम पर एक फंक्शन लागू करते हैं।
  • StackWalker.StackFrame - यह StackWalker का एक स्टेटिक नेस्टेड क्लास है और StackWalker द्वारा लौटाए गए मेथड इनवोकेशन को दर्शाता है। इसमें दिए गए स्टैक फ्रेम जानकारी तक पहुंचने के लिए मेथड हैं जैसे getDeclaringClass(), getLineNumber() आदि।
  • StackWalker.Option - यह StackWalker का एक स्टेटिक नेस्टेड क्लास है और स्टैक वॉकर के लिए विकल्प प्रदान करता है जब हम StackWalker.getInstance() के माध्यम से एक इंस्टेंस बनाते हैं तो स्टैक फ्रेम जानकारी को कॉन्फ़िगर करने के लिए।

उदाहरण

import java.util.List;
import java.util.stream.Collectors;

public class StackWalkingTest {
    public static void main(String args[]) {
        final List stack = StackWalker.getInstance()
            .walk(s -> s.collect(Collectors.toList()));
        for(StackWalker.StackFrame sf : stack) {
            System.out.println(sf.getClassName() + "::" + sf.getMethodName() + ":" + sf.getLineNumber());
        }
    }
}

आउटपुट

StackWalkingTest::main:6
  1. - जावा में स्टैक और हीप मेमोरी के बीच अंतर

    JVM मेमोरी स्पेस को दो भागों में विभाजित करता है: स्टैक और हीप। स्टैक स्पेस मुख्य रूप से मेथड एक्जीक्यूशन के क्रम और लोकल वेरिएबल्स को स्टोर करने के लिए उपयोग किया जाता है। स्टैक हमेशा ब्लॉक्स को LIFO (लास्ट इन फर्स्ट आउट) ऑर्डर में स्टोर करता है, जबकि हीप मेमोरी डायनामिक एलोकेशन का उपयोग करके मेमो

  1. - Java में javax.json API का उपयोग करके JSON को सुंदर प्रिंट कैसे करें?

    javax.json पैकेज JSON को संसाधित करने के लिए एक ऑब्जेक्ट मॉडल API प्रदान करता है। ऑब्जेक्ट मॉडल API एक उच्च-स्तरीय API है जो JSON ऑब्जेक्ट और सरणी संरचनाओं के लिए अपरिवर्तनीय ऑब्जेक्ट मॉडल प्रदान करता है। इन JSON संरचनाओं को JsonObject और JsonArray इंटरफेस का उपयोग करके ऑब्जेक्ट मॉडल के रूप में दर्श

  1. - जावा में Stack का उपयोग करके Queue कैसे लागू करें?

    Queue क्लास Collection इंटरफेस को एक्सटेंड करती है और फर्स्ट-इन-फर्स्ट-आउट (FIFO) का उपयोग करके इन्सर्ट और रिमूव ऑपरेशन्स का समर्थन करती है। Stack Vector क्लास का एक सबक्लास है और यह ऑब्जेक्ट्स के लास्ट-इन-फर्स्ट-आउट (LIFO) स्टैक को दर्शाता है। स्टैक के शीर्ष पर जोड़ा गया अंतिम एलिमेंट (In) स्टैक स