design patterns java
इस ट्यूटोरियल में हम जावा में डिज़ाइन पैटर्न पर चर्चा करेंगे। हम उदाहरण और फायदे के साथ सिंगलटन, फैक्टरी और बिल्डर पैटर्न का अध्ययन करेंगे:
जब हम एक विशिष्ट समस्या को हल करते हैं, तो हम इसे और अधिक कुशलता से हल कर सकते हैं यदि हमारे पास पहले से परिभाषित कुछ सर्वोत्तम अभ्यास हैं। यह वास्तव में हमें इन सर्वोत्तम प्रथाओं का पालन करने और अधिक विश्वसनीय समाधान विकसित करने में मदद करेगा।
ये सर्वोत्तम प्रथाएं कि विकसित करने के लिए इस्तेमाल किया जा सकता है अच्छी तरह से साबित समाधान समस्याओं को हल करने के लिए 'कहा जाता है डिजाइन पैटर्न्स ”। विशिष्ट कार्यों को हल करने के लिए अनुभवी ओओपी सॉफ़्टवेयर डेवलपर्स डिज़ाइन पैटर्न का उपयोग करते हैं।
=> यहाँ जावा शुरुआती गाइड पर एक नज़र रखना
आप क्या सीखेंगे:
- जावा में डिज़ाइन पैटर्न
- जावा में सिंगलटन पैटर्न
- जावा में फैक्टरी पैटर्न
- जावा में बिल्डर पैटर्न
- निष्कर्ष
जावा में डिज़ाइन पैटर्न
डिजाइन पैटर्न पहली बार क्रिस्टोफर अलेक्जेंडर द्वारा 1977 में आविष्कार किया गया था। लेकिन बाद में चार डेवलपर्स अर्थात् Erich गामा, रिचर्ड हेल्म, जॉन वलिसिड्स और राल्फ जॉनसन ने एक पुस्तक लिखी, जिसका शीर्षक था ' गैंग ऑफ़ फोर-डिज़ाइन पैटर्न, पुन: प्रयोज्य वस्तु-उन्मुख सॉफ़्टवेयर के तत्व “वर्ष 1995 में।
तब से सभी डिजाइन पैटर्न के रूप में जाना जाने लगा “ गैंग ऑफ फोर डिजाइन पैटर्न ”।
3 साल के अनुभव के लिए सेलेनियम साक्षात्कार प्रश्न
डिज़ाइन पैटर्न किसी भी प्रोग्रामिंग भाषाओं से स्वतंत्र होते हैं क्योंकि वे सामान्य ऑब्जेक्ट-ओरिएंटेड डिज़ाइन समस्याओं को हल करने के लिए उपयोग किए जाते हैं और केवल एक विशिष्ट प्रोग्रामिंग भाषा तक सीमित नहीं होते हैं। तो मूल रूप से यह एक विचार है और कार्यान्वयन नहीं है।
इस प्रकार डिजाइन पैटर्न का उपयोग करके हम ऐसे प्रोग्राम विकसित कर सकते हैं जो अधिक कुशल, लचीले, रखरखाव योग्य और पुन: प्रयोज्य हैं।
डिज़ाइन पैटर्न के लाभ
हमारे अनुप्रयोगों में डिज़ाइन पैटर्न का उपयोग करने के कुछ लाभ नीचे सूचीबद्ध हैं:
- डिजाइन पैटर्न पुन: प्रयोज्य हैं और कई परियोजनाओं द्वारा उपयोग किए जा सकते हैं।
- हम डिज़ाइन पैटर्न का उपयोग करके सिस्टम आर्किटेक्चर को परिभाषित कर सकते हैं।
- डिज़ाइन पैटर्न एप्लिकेशन डिज़ाइन के लिए पारदर्शिता प्रदान करते हैं।
- डिज़ाइन पैटर्न पहले से ही अच्छी तरह से परीक्षण किए गए और सिद्ध किए गए हैं ताकि हम उन्हें बिना किसी चिंता के उपयोग कर सकें।
- डिज़ाइन पैटर्न हमें बेहतर सिस्टम बनाने और सिस्टम आर्किटेक्चर पर स्पष्टता प्रदान करने की अनुमति देता है।
जब डिजाइन पैटर्न का उपयोग करने के लिए
तो हमें डिज़ाइन पैटर्न का उपयोग कब करना चाहिए?
हम आमतौर पर एसडीएलसी (सॉफ्टवेयर डेवलपमेंट लाइफ साइकिल) के प्रारंभिक विश्लेषण और आवश्यकता चरण के दौरान एक डिज़ाइन पैटर्न का उपयोग करते हैं। एसडीएलसी के विश्लेषण और आवश्यकता चरण के दौरान उपयोग किए जाने पर, यह इस चरण को अधिक जानकारी प्रदान करता है। जावा आंतरिक रूप से डिजाइन पैटर्न का समर्थन करता है।
जावा में डिज़ाइन पैटर्न निम्नानुसार वर्गीकृत किए गए हैं:
जहां तक इस ट्यूटोरियल का संबंध है, हम केवल रचनात्मक डिजाइन पैटर्न में रुचि रखते हैं।
रचनात्मक डिजाइन पैटर्न को निम्नानुसार वर्गीकृत किया गया है:
इस ट्यूटोरियल में, हम निम्नलिखित डिज़ाइन पैटर्न पर चर्चा करेंगे:
- सिंगलटन डिजाइन पैटर्न
- फैक्टरी डिजाइन पैटर्न
- बिल्डर डिजाइन पैटर्न
जावा में सिंगलटन डिजाइन पैटर्न के साथ शुरू करते हैं।
अनुशंसित पढ़ना = >> फ्लास्क आधारित ऐप्स के लिए डिज़ाइन पैटर्न
जावा में सिंगलटन पैटर्न
एक सिंगलटन पैटर्न जावा में एक प्रकार का रचनात्मक पैटर्न है। सिंगलटन पैटर्न एक डिज़ाइन पैटर्न है जिसमें जावा वर्चुअल मशीन में एक वर्ग का केवल एक उदाहरण मौजूद है। एक एकल वर्ग (सिंगलटन पैटर्न को लागू करना) को कक्षा का उदाहरण प्राप्त करने के लिए एक वैश्विक पहुंच बिंदु प्रदान करना है।
दूसरे शब्दों में, एक एकल पैटर्न एक वर्ग की तात्कालिकता को प्रतिबंधित करता है। अनुप्रयोगों के लिए लकड़हारा के कार्यान्वयन में सिंगलटन पैटर्न का उपयोग किया जाता है। इसका उपयोग थ्रेड पूल कार्यान्वयन या कैश में भी किया जाता है।
जावा कक्षाएं, java.awt.Desktop तथा java.lang.runtime एक सिंगलटन पैटर्न का भी उपयोग करें।
लाभ
- चूंकि एकल वर्ग के केवल एक उदाहरण का उपयोग किया जाता है, इसलिए हम मेमोरी को सहेजते हैं।
- इसके अलावा, पुन: प्रयोज्य सुनिश्चित करता है क्योंकि एक ही सिंगलटन ऑब्जेक्ट का बार-बार उपयोग किया जाता है।
अब सिंगलटन पैटर्न को लागू करने की ओर कदम बढ़ाते हैं।
सिंगलटन पैटर्न का कार्यान्वयन
जैसा कि पहले ही उल्लेख किया गया है, एक सिंगलटन डिज़ाइन पैटर्न केवल एक उदाहरण के साथ कक्षा को प्रतिबंधित करता है और इस उदाहरण को वैश्विक स्तर पर पहुंच प्रदान की जाती है। यह सभी वर्ग थे जो एक ही वस्तु को बार-बार संदर्भित करते हैं।
निम्नलिखित यूएमएल आरेख सिंग्लटन पैटर्न की व्याख्या करता है।
जैसा कि ऊपर यूएमएल आरेख से पता चलता है, एक एकल वर्ग को एक एकल उदाहरण परिभाषित किया गया है और हम इसे getInstance () विधि द्वारा एक्सेस करते हैं। तो एक सिंगलटन फैक्ट्री जो वस्तुओं को बनाने के लिए ज़िम्मेदार है, एक ही वस्तु (जो कि कक्षा में है) को बार-बार लौटाने के लिए getInstance विधि का उपयोग करती है।
तो हम एक कार्यक्रम में सिंगलटन पैटर्न कैसे लागू करते हैं?
हम एक एकल वर्ग बनाते हैं और इसके निर्माता को 'निजी' के रूप में रखते हैं, ताकि वर्ग को त्वरित नहीं किया जा सके। फिर हम इस एकल वर्ग का एक निजी उदाहरण कक्षा के अंदर बनाते हैं। फिर हमारे पास एक विशेष सार्वजनिक तरीका getInstance () है जो बाहरी दुनिया के लिए एक सिंगलटन ऑब्जेक्ट लौटाता है।
ऊपर बताए अनुसार इस एकल वर्ग के इस कार्यान्वयन को नीचे जावा कार्यक्रम में दिखाया गया है।
class SingletonObject { //create an object of SingletonObject private static SingletonObject instance = new SingletonObject(); //private constructor so that we cannot instantiate the class private SingletonObject(){} //returns the only available object public static SingletonObject getInstance(){ return instance; } public void printMessage(){ System.out.println('Hello from Singleton object!!!'); } } public class Main { public static void main(String() args) { //illegal statement because constructor is private //Compile Time Error: The constructor SingletonObject() is not visible //SingletonObject object = new SingletonObject(); //call getInstance to retrieve the object available from the class SingletonObject object = SingletonObject.getInstance(); //show the message object.printMessage(); } }
आउटपुट:
अब अगर हम मुख्य विधि की जांच करते हैं, तो ध्यान दें कि यदि हम एक नए ऑपरेटर का उपयोग करके सिंगलटन क्लास का ऑब्जेक्ट बनाने का प्रयास करते हैं, तो संकलक एक संकलन त्रुटि देगा (मुख्य विधि में टिप्पणी कोड देखें)। हम getInstance () पद्धति का उपयोग करके सिंगलटन क्लास का ऑब्जेक्ट प्राप्त करते हैं और फिर हम इसे एक्सेस करने के तरीकों के रूप में सामान्य रूप से उपयोग कर सकते हैं।
जावा में फैक्टरी पैटर्न
फैक्ट्री पैटर्न को जावा में 'फैक्ट्री मेथड पैटर्न' या 'वर्चुअल कंस्ट्रक्टर' भी कहा जाता है। इस पैटर्न में, हम एक इंटरफ़ेस या अमूर्त वर्ग बनाते हैं जिसमें विधि घोषणाएं होती हैं, और फिर इस इंटरफ़ेस को लागू करने वाले ठोस वर्ग या उपवर्ग वर्ग को उत्पन्न करने के लिए जिम्मेदार होते हैं।
लाभ
- फ़ैक्टरी पैटर्न एक प्रकार का रचनात्मक पैटर्न है और जावा में सबसे अधिक इस्तेमाल किया जाने वाला पैटर्न है।
- एक फ़ैक्टरी पैटर्न का उपयोग करके हम यह सुनिश्चित करते हैं कि वास्तविक निर्माण तर्क बाहरी दुनिया के संपर्क में नहीं है।
इसलिए यदि किसी कारखाने के पैटर्न को लागू करने वाले वर्ग के पास ब्याज की दर की गणना करने की विधि है, तो ठोस वर्ग इस वर्ग को लागू करेंगे और ब्याज की दर की गणना करने के लिए विधि को भी लागू करेंगे।
फिर एक और वर्ग होगा जो एक कारखाना वर्ग है जो इन ठोस वर्ग के उदाहरणों तक पहुंच बनाएगा ताकि हमें इस बात की जानकारी न हो कि ब्याज की दर की गणना करने का तर्क कैसे लागू किया जाता है। हम केवल विधि कहते हैं और आउटपुट प्राप्त करते हैं।
तो जब हम वास्तव में फैक्टरी विधि पैटर्न का उपयोग कर सकते हैं?
जब माता-पिता वर्ग अपने उपवर्गों को उदाहरणों के निर्माण को सौंपने का निर्णय लेते हैं, तो हम एक कारखाने के पैटर्न के लिए जा सकते हैं (यह ऊपर बताया गया है)। हम कारखाने की विधि का उपयोग तब भी कर सकते हैं जब वर्ग को यह नहीं पता होता है कि उपवर्ग क्या बनाने हैं।
अब फैक्ट्री मेथड पैटर्न के कार्यान्वयन को देखते हैं।
फैक्टरी पैटर्न का कार्यान्वयन
एक उदाहरण के रूप में एक सामान्य आकार के इंटरफ़ेस को लागू करते हैं। हम इस इंटरफ़ेस से विभिन्न कंक्रीट कक्षाओं को प्राप्त कर सकते हैं जैसे कि सर्कल, आयत आदि, फिर हमारे पास एक आकृतिगत वर्ग होगा जो कंक्रीट क्लास ऑब्जेक्ट तक पहुंच जाएगा। इस पैटर्न के लिए UML नीचे दिखाया गया है।
जैसा कि पहले ही समझाया गया है कि यह कारखाना पैटर्न के लिए यूएमएल आरेख है। अब हम फ़ैक्टरी पैटर्न को प्रदर्शित करते हुए एक जावा प्रोग्राम लागू करेंगे।
//Geometric_shape interface interface Geometric_shape { void draw_shape(); } //Geometric shape classes implementing Geometric_shape interface class Rectangle implements Geometric_shape { @Override public void draw_shape() { System.out.println('Rectangle class::draw_shape() method.'); } } class Square implements Geometric_shape { @Override public void draw_shape() { System.out.println('Square class::draw_shape() method.'); } } class Circle implements Geometric_shape { @Override public void draw_shape() { System.out.println('Circle class::draw_shape() method.'); } } //Factory class for Geometric_shape class ShapeFactory { //shapeObject method gets particular shapeType (circle, Square or Rectangle) public Geometric_shape shapeObject(String shapeType){ if(shapeType == null){ return null; } //retrieve Circle object if(shapeType.equalsIgnoreCase('Circle')){ return new Circle(); //retrieve Rectangle object } else if(shapeType.equalsIgnoreCase('Rectangle')){ return new Rectangle(); ////retrieve Square object } else if(shapeType.equalsIgnoreCase('Square')){ return new Square(); } return null; } } public class Main { public static void main(String() args) { //Create a ShapeFactory object to get different geometric shapes ShapeFactory shapeFactory = new ShapeFactory(); //circle Geometric_shape shape_Circle = shapeFactory.shapeObject('CIRCLE'); //draw method of Circle shape_Circle.draw_shape(); //Rectangle Geometric_shape shape_Rectangle = shapeFactory.shapeObject('RECTANGLE'); //draw method of Rectangle shape_Rectangle.draw_shape(); //Square Geometric_shape shape_Square = shapeFactory.shapeObject('SQUARE'); //draw method of square shape_Square.draw_shape(); } }
आउटपुट:
जावा में बिल्डर पैटर्न
बिल्डर पैटर्न में, हम छोटी और सरल वस्तुओं का उपयोग करके एक जटिल वस्तु का निर्माण करने के लिए चरण-दर-चरण दृष्टिकोण का उपयोग करते हैं।
इसलिए जब भी हम एक ऐसी वस्तु का सामना करते हैं जो एक कदम में नहीं बनाई जा सकती है, तो हम एक बिल्डर पैटर्न के लिए जाते हैं।
लाभ
- बिल्डर पैटर्न का उपयोग करके, हम किसी ऑब्जेक्ट के निर्माण और प्रतिनिधित्व को अलग कर सकते हैं।
- हम वस्तु के आंतरिक प्रतिनिधित्व को भी बदल सकते हैं।
- हम बिल्डर पैटर्न का उपयोग करके संपूर्ण वितरण प्रणाली की तरह जटिल डिजाइन का निर्माण कर सकते हैं।
एक बिल्डर पैटर्न का एक व्यावहारिक उदाहरण फूड ऑर्डरिंग सिस्टम है जिसमें ऑर्डर किए गए खाद्य पदार्थों को इकट्ठा करने के जटिल चरण शामिल हैं, फिर पैकेजिंग, बिलिंग, बिल्डिंग ऑर्डर और फिर इसे शिपिंग करते हैं।
इस ट्यूटोरियल में, हम बिल्डर पैटर्न का उपयोग करके टैबलेट ऑर्डरिंग सिस्टम का एक उदाहरण लागू करेंगे।
बिल्डर पैटर्न का कार्यान्वयन
बिल्डर पैटर्न के लिए सामान्य यूएमएल आरेख नीचे दिया गया है।
उपरोक्त आरेख बिल्डर पैटर्न UML आरेख को दर्शाता है। जैसा कि ऊपर चित्र में दिखाया गया है, हमारे पास बिल्डर पैटर्न में चार घटक हैं।
- उत्पाद: यह निर्मित की जाने वाली जटिल वस्तु का प्रतिनिधित्व करता है।
- बिल्डर सार वर्ग: एक जटिल वर्ग जिसमें एक जटिल वस्तु बनाने के लिए आवश्यक सभी कार्यक्षमता के प्रोटोटाइप हैं।
- कंकालीय वर्ग: यह एक ठोस वर्ग है जो बिल्डर वर्ग से विरासत में मिलता है और एक विशेष जटिल वस्तु बनाता है। हमारे पास जितने भी ठोस वर्ग की जरूरत है, हम कर सकते हैं।
- निदेशक वर्ग: यह वर्ग अंतिम उत्पाद उत्पन्न करने वाले एल्गोरिदम को नियंत्रित करता है।
निम्नलिखित प्रोग्रामिंग उदाहरण एक टैबलेट ऑर्डर बिल्डिंग सिस्टम का उपयोग करके एक बिल्डर पैटर्न का प्रदर्शन दिखाता है।
import java.util.ArrayList; import java.util.List; //Packing interface for tablets interface Packing { public String pack(); public int price(); } //Tablet class - abstract abstract class Tablet implements Packing{ public abstract String pack(); } //company - extends Tablet abstract class Company extends Tablet{ public abstract int price(); } //Lenovo tablet class Lenovo extends Company{ @Override public int price(){ return 541; } @Override public String pack(){ return 'Lenovo Yoga'; } } //Micromax tablet class MicroMax extends Company { @Override public int price(){ return 338; } @Override public String pack(){ return 'MicroMax'; } } //Tablet type class TabType { private List items=new ArrayList(); //add items public void addItem(Packing packs) { items.add(packs); } //retrieve cost public void getCost(){ for (Packing packs : items) { packs.price(); } } //show all items public void showItems(){ for (Packing packing : items){ System.out.print('Tablet name : '+packing.pack()); System.out.println(', Price(in U.S.Dollars) : '+packing.price()); } } } //builder class for tablets order class TabBuilder { public TabType buildLenovoTab(){ TabType lenovo =new TabType(); lenovo.addItem(new Lenovo()); return lenovo; } public TabType buildMicroMaxTab(){ TabType mmx=new TabType(); mmx.addItem(new MicroMax()); return mmx; } } public class Main{ public static void main(String args()){ //build the tablets order and display the order TabBuilder tabBuilder=new TabBuilder(); TabType tabtype1=tabBuilder.buildLenovoTab(); tabtype1.showItems(); TabType tabtype2=tabBuilder.buildMicroMaxTab(); tabtype2.showItems(); } }
आउटपुट:
उपरोक्त उदाहरण में, हमने दो टैबलेट ब्रांडों यानी लेनोवो और माइक्रोमैक्स के लिए पूर्ण टैबलेट ऑर्डरिंग सिस्टम बनाया है। ये कंक्रीटब्यूलर वर्ग हैं जो अमूर्त वर्ग की कंपनी से विरासत में मिले हैं। फिर हमारे पास एक TabBuilder वर्ग है जो दोनों टैबलेट कक्षाओं के लिए ऑर्डर बनाता है।
बार बार पूछे जाने वाले प्रश्न
Q # 1) जावा में डिज़ाइन पैटर्न क्या हैं? जावा में डिजाइन पैटर्न के प्रकार क्या हैं?
जावा कॉपी 2d सरणी को दूसरे सरणी में
उत्तर: डिजाइन पैटर्न सर्वोत्तम अभ्यास हैं जिनका उपयोग अच्छी तरह से परीक्षण किए गए समाधान विकसित करने के लिए किया जा सकता है।
जावा में तीन प्रकार के डिज़ाइन पैटर्न हैं:
- रचनात्मक डिजाइन पैटर्न: फैक्टरी पैटर्न, एब्सट्रैक्ट फैक्ट्री पैटर्न, सिंगलटन पैटर्न, बिल्डर पैटर्न और प्रोटोटाइप पैटर्न क्रिएशनल डिज़ाइन पैटर्न के उदाहरण हैं। ये मुख्य रूप से वस्तुओं के निर्माण से जुड़े हैं।
- संरचनात्मक डिजाइन पैटर्न: उनका उपयोग ज्यादातर वर्ग संरचना बनाने के लिए किया जाता है। एडाप्टर, ब्रिज और कम्पोज़िट पैटर्न लोकप्रिय संरचनात्मक डिज़ाइन पैटर्न हैं।
- व्यवहार डिजाइन पैटर्न: ये आसानी से कार्यान्वयन को बढ़ाने के लिए लचीलेपन के साथ वस्तुओं के बीच बेहतर संपर्क प्रदान करते हैं। पर्यवेक्षक पैटर्न, रणनीति पैटर्न, आदि व्यवहार पैटर्न के कुछ उदाहरण हैं।
क्यू # 2) डिजाइन पैटर्न का उपयोग क्यों किया जाता है?
उत्तर: डिज़ाइन पैटर्न हमें एक सिद्ध और परीक्षित समाधान मॉडल प्रदान करते हैं जिसका उपयोग हम जटिल समस्याओं को हल करने के लिए कर सकते हैं। डिजाइन पैटर्न हमें ढीले युग्मन के साथ चिपकने वाला मॉड्यूल बनाने की अनुमति देते हैं। डिजाइन पैटर्न भी डिजाइनरों के बीच बातचीत को अधिक कुशल और प्रभावी बनाते हैं।
Q # 3) पैटर्न के उदाहरण क्या हैं?
उत्तर: प्राकृतिक पैटर्न के उदाहरण प्रकृति में पाए जाने वाले नियमित रूप से दिखाई देते हैं। प्राकृतिक पैटर्न जैसे समरूपता, पेड़, लहरें, फोम, धारियां, दरारें आदि, प्राकृतिक पैटर्न के कुछ उदाहरण हैं।
Q # 4) क्या MVC एक डिज़ाइन पैटर्न है?
उत्तर: हाँ, यह एक तरह का डिज़ाइन पैटर्न है, जिसके उपयोग से हम डेटा मॉडल, प्रस्तुति, या लेयर और कंट्रोलर से युक्त एप्लिकेशन बना सकते हैं। हम इसे एक वास्तुशिल्प पैटर्न के रूप में वर्गीकृत कर सकते हैं।
निष्कर्ष
यह जावा में डिज़ाइन पैटर्न पर हमारी चर्चा को पूरा करता है। हालांकि जावा तीन प्रकार के डिज़ाइन पैटर्न का समर्थन करता है। रचनात्मक, संरचनात्मक और व्यवहारिक पैटर्न, हम रचनात्मक डिजाइन पैटर्न में अधिक रुचि रखते हैं।
इस ट्यूटोरियल के दायरे के अनुसार, हमने क्रिएशनल डिज़ाइन पैटर्न के तीन उदाहरणों पर चर्चा की है, जैसे सिंगलटन पैटर्न, फ़ैक्टरी पैटर्न और बिल्डर पैटर्न।
सिंगलटन पैटर्न सबसे सरल डिज़ाइन पैटर्न है और फ़ैक्टरी पद्धति को एक सामान्य डिज़ाइन पैटर्न माना जाता है जिसका व्यापक रूप से उपयोग किया जाता है। बिल्डर पैटर्न का उपयोग जटिल वस्तुओं के निर्माण के लिए किया जाता है और इसका उपयोग ज्यादातर जटिल अनुप्रयोगों को विकसित करने में किया जाता है।
=> यहाँ बिल्कुल सही जावा प्रशिक्षण गाइड देखें।
अनुशंसित पाठ
- स्ट्रिंग स्ट्रिंग बफर और स्ट्रिंग बिल्डर ट्यूटोरियल के साथ जावा स्ट्रिंग
- जावा परिनियोजन: जावा जार फाइल का निर्माण और निष्पादन
- जावा बेसिक्स: जावा सिंटैक्स, जावा क्लास और कोर जावा कॉन्सेप्ट
- जावा वर्चुअल मशीन: जावा एप्लीकेशन चलाने में JVM कैसे मदद करता है
- जावा ट्यूटोरियल फॉर बिगिनर्स: 100+ हैंड्स-ऑन जावा वीडियो ट्यूटोरियल
- जावा इंटेगर एंड जावा बिगइन्टेगर क्लास विद एग्जाम्पल्स
- जावा कंपोनेंट्स: जावा प्लेटफॉर्म, जेडीके, जेआरई, और जावा वर्चुअल मशीन
- महत्वपूर्ण जावा कीवर्ड सूची - जावा में आरक्षित शब्द