ब्रूस एकेल दर्शन जावा 5 संस्करण पीडीएफ। विकीबूक जावा दर्शन। ब्रूस Eckel द्वारा जावा के दर्शन के बारे में

सबसे अधिक संभावना है कि मुझे यह मानने में गलती नहीं होगी कि जावा सीखने वालों में से अधिकांश ने ब्रूस एकेल की प्रसिद्ध पुस्तक की मदद से ऐसा करना शुरू किया: "जावा में सोच"के रूप में रूसी संस्करण में जाना जाता है "जावा दर्शन"... दुर्भाग्य से, इलेक्ट्रॉनिक रूप में (रूसी में), जावा 1.1 संस्करण के आधार पर, सबसे व्यापक रूप से इस पुस्तक का दूसरा संस्करण है, जिसने लंबे समय से इसकी प्रासंगिकता खो दी है। जावा (और विशेष रूप से जावा एसई 5) के अगले संस्करणों में दिखाई देने वाले नवाचार काफी महत्वपूर्ण थे, जिसके कारण इसके चौथे संस्करण में पुस्तक का गंभीर संशोधन हुआ (जिसका अनुवाद रूसी में प्रकाशित हुआ)। हालांकि, एक आसान-से-पढ़ने में (और सबसे महत्वपूर्ण बात, त्वरित खोज के लिए) इलेक्ट्रॉनिक प्रारूप, इस संस्करण का रूसी संस्करण मौजूद नहीं था। इसलिए मैंने इस अंतर को भरने का फैसला किया और इस लोकप्रिय पुस्तक का एक पूर्ण संस्करण "विकिबूक" प्रारूप में तैयार किया। मेरा मानना \u200b\u200bहै कि यह जानकारी न केवल भाषा सीखने वालों के लिए, बल्कि उन सभी के लिए भी उपयोगी होगी जो जावा में काम करने वाले उत्कृष्ट उदाहरणों की विशाल संख्या के कारण हैं जो इस भाषा में प्रोग्रामिंग के लगभग सभी पहलुओं को दर्शाते हैं। खासकर जब यह जावा सुविधाओं का उपयोग करने के लिए शायद ही कभी आता है।

विकिबुक्स "जावा दर्शन" यहां पोस्ट किया गया:

"स्प्रिंग इन एक्शन"

श्रृंखला से पुस्तकें "..... एक्शन में" (आमतौर पर पीडीएफ प्रारूप में और आमतौर पर अंग्रेजी में) कुछ हलकों में योग्य रूप से लोकप्रिय हैं :) उनमें से कैपेसिटिव टैल्मड हैं, जैसे कि "JSTL इन एक्शन" (अंग्रेजी के मध्यम ज्ञान के साथ पढ़ना आसान है, लेकिन विषय पर एक अच्छी संदर्भ पुस्तक की भूमिका के लिए उपयुक्त है), और अधिक मामूली शिल्प, जैसे कि "स्ट्रट्स इन एक्शन" ("सब कुछ सोना नहीं है ...")। पुस्तक "स्प्रिंग इन एक्शन" इस सूची में, फिर भी, "हेवीवेट" की श्रेणी से, और शब्द के हर अर्थ में। "धाराप्रवाह अंग्रेजी" जाने बिना इसे पढ़ना शायद आसान नहीं है। और मामला प्रस्तुत सामग्री की जटिलता में नहीं है (यह जटिल नहीं है), लेकिन इस तथ्य में कि यह निकला - अत्यधिक "अंग्रेजी-कलात्मक", या कुछ और .... गीतात्मक पचाने, कैचफ्रैड्स, वर्डप्ले और अन्य चीजों से भरा हुआ ब्ला ब्ला ब्ला, भाषा लेखक जल्दी से इस हैंडबुक (मूल भाषा में) को एक थकाऊ प्रक्रिया पढ़ते हैं। लेकिन दूसरी तरफ, यह आपको उस शब्द को जानने देता है "आकर्षित"(आमतौर पर - "ड्रा") का उपयोग "से निकालने" के अर्थ में किया जा सकता है (lit. - "पुल, ड्रैग")। परिणामस्वरूप (पुस्तक में अपनाई गई प्रस्तुति की सामान्य शैली को ध्यान में रखते हुए) सटीक अर्थ जैसे वाक्यांश: "... स्प्रिंग ने इस डेटा को आकर्षित किया ..." , यह एक ही समय में होता है - आसान और अत्यंत आवश्यक नहीं। इसलिए, जिन चैप्टर का मैंने अनुवाद नहीं किया है, उनके पाठकों को खुद ही यह तय करना होगा कि लेखक ऐसे मामलों में क्या चाहते थे: किसी फाइल के निर्माण (रिकॉर्डिंग) के बारे में काव्यात्मक रूप से व्यक्त करना, या उसे पढ़ने के बारे में बताना।

यह पुस्तक मेरे द्वारा पीडीएफ से विकाइबूक में व्यक्तिगत उपयोग के लिए एक संदर्भ के रूप में परिवर्तित की गई थी। इसलिए, अनुवाद कुल नहीं है, लेकिन केवल स्थानों में - जिसके लिए पर्याप्त उत्साह था। बाकी अध्यायों को बस एक त्वरित तरीके से रखा गया था। यह प्रकाशित हुआ है, फॉर्म में सब कुछ - "जैसा है", और रूसी पाठ की गुणवत्ता को दोष नहीं दिया जाना चाहिए ... मैं एक पेशेवर अनुवादक नहीं हूं, और मेरे पास एक साहित्यिक संपादक नहीं था। शायद मैं किसी को इस तथ्य से निराश करूंगा कि मैंने पुस्तक के कुछ अंशों और अध्यायों का अनुवाद नहीं किया (और उन्हें अनुवाद करने की योजना भी नहीं है), लेकिन मुझे इसे भविष्य की पीढ़ियों के लिए आरक्षित रखना चाहिए था

विकिबुक्स "वसंत की क्रिया " यहां पोस्ट किया गया:

प्रोग्रामिंग सबसे अधिक मांग वाली आईटी सेवाओं में से एक है। बहुत से लोग इस कठिन उद्योग के बारे में जानने और इस दिशा में काम करने लगे। यदि पाठक को हमेशा प्रोग्रामिंग में रुचि रही है, लेकिन उसे नहीं पता था कि कहां से शुरू करना है, तो "द फिलॉसफी ऑफ जावा" पुस्तक इस मामले में एक उत्कृष्ट शुरुआती सहायता होगी। लेखक ब्रूस एकेल कंप्यूटर प्रौद्योगिकी में एक सच्चे पेशेवर हैं और, एक समझने योग्य प्रस्तुति की मदद से, प्रोग्राम कोड के साथ काम करने के बुनियादी सिद्धांतों को जल्दी से समझाते हैं।

जावा भाषा को दुनिया भर में सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से एक माना जाता है। यह इसके उच्च लचीलेपन और खेल, सॉफ्टवेयर आदि से संबंधित लगभग किसी भी क्षेत्र में इसके आवेदन की संभावना के कारण है। शुरुआती किताबों के लिए जावा दर्शनशास्त्र आपको मूल बातें, साथ ही प्रमुख अवधारणाओं को मास्टर करने में मदद करेगा, जो आपको गहरी और उत्कृष्ट आधार बनाने की अनुमति देता है। प्रोग्रामिंग के विज्ञान का सही अध्ययन। ब्रूस एकेल ने सैकड़ों उदाहरणों का हवाला देते हुए और अपनी पुस्तक के दौरान सभी प्रमुख बिंदुओं को अच्छी तरह से स्पष्ट करते हुए, वास्तव में जबरदस्त काम किया है। इस गाइड की मदद से, जो भी उपयोगकर्ता जावा भाषा सीखना चाहता है, वह एक उत्कृष्ट ज्ञानकोष का निर्माण करने में सक्षम होगा और पहले से ही इस पर निर्भर होकर एक गहन अध्ययन शुरू कर सकता है।

लेखक सभी शुरुआती और ऐसे लोगों को अपनी पुस्तक पढ़ने की सलाह देता है जिन्होंने अभी तक जावा भाषा में सबसे सरल प्रोग्रामिंग करना शुरू किया है। जावा की मूल बातें सीखने के लिए जावा दर्शन एक त्वरित और गुणवत्तापूर्ण मार्गदर्शिका है। पुस्तक सभी छोटी चीजों के साथ-साथ सूक्ष्मताओं पर ध्यान देती है, इंटरफ़ेस और बुनियादी सेटिंग्स के साथ शुरू होती है, और जटिल संयोजनों और तकनीकों के साथ समाप्त होती है जो लेखक के टिप्पणियों के साथ आदेशों और समझने योग्य कोड का उपयोग करके वास्तविक उदाहरण पर दिखाई जाती हैं।

ब्रूस एकेल आपको कार्य, व्यवसाय और अन्य क्षेत्रों के लिए जावा का उपयोग करने के मुख्य उद्देश्य और दर्शन पर ध्यान केंद्रित करने में मदद करेगा। लेखक समस्याओं के कई उदाहरण भी दिखाता है, उनकी घटना के कारणों और कार्यक्रम कोड में समस्याओं के निवारण के मुख्य तरीकों के बारे में बात करता है। प्रोग्रामिंग के क्षेत्र में काम करने वाले पेशेवरों ने "फिलॉसफी ऑफ जावा" पुस्तक की बहुत सराहना की, क्योंकि यह एक शैक्षिक पाठ्यपुस्तक है जो आपको जावा भाषा को बेहतर ढंग से सीखने में मदद करेगी। यद्यपि यह विशिष्ट साहित्य है, लेकिन समान दिशा में अन्य पुस्तकों की तुलना में इसे पढ़ना बहुत आसान है।

हमारी साहित्यिक साइट पर आप विभिन्न उपकरणों - एपब, एफबी 2, टीएक्सटी, आरटीएफ के लिए उपयुक्त प्रारूपों में ब्रूस एकेल द्वारा "द फिलॉसफी ऑफ जावा" पुस्तक डाउनलोड कर सकते हैं। क्या आपको किताबें पढ़ना और हमेशा नई रिलीज़ पर नज़र रखना पसंद है? हमारे पास विभिन्न शैलियों की पुस्तकों का एक बड़ा चयन है: क्लासिक्स, आधुनिक विज्ञान कथा, मनोविज्ञान पर साहित्य और बच्चों के प्रकाशन। इसके अलावा, हम नौसिखिया लेखकों और उन सभी लोगों के लिए दिलचस्प और जानकारीपूर्ण लेख पेश करते हैं जो सीखना चाहते हैं कि कैसे सुंदर तरीके से लिखना है। हमारे प्रत्येक आगंतुक अपने लिए कुछ उपयोगी और रोमांचक पा सकेंगे।

अध्याय 11. वस्तु संग्रह

प्रशन
1. संग्रह इंटरफ़ेस क्या है?

उत्तर

संग्रह इंटरफ़ेस रूट इंटरफ़ेस है जो सभी अनुक्रमिक कंटेनरों की सामान्य कार्यक्षमता का वर्णन करता है (पृष्ठ 301)।


2. क्या कंटेनरों का उपयोग आदिमों को संग्रहीत करने के लिए किया जा सकता है?

उत्तर

प्रिमिटिव कंटेनर तत्वों के रूप में कार्य नहीं कर सकते हैं। केवल वस्तुओं का संदर्भ कंटेनर में रखा जा सकता है। हालाँकि, ऑटोबॉक्सिंग तंत्र स्वचालित रूप से आदिम को एक ऑब्जेक्ट प्रकार में परिवर्तित करता है। इसलिए, प्रोग्रामर उपरोक्त सीमा के बारे में "भूल" कर सकता है।
(MrD के साथ साझा)


3. ArrayList कंटेनर में आइटम जोड़ने की कौन सी विधि पसंद की जाती है:
Arrays.asList या Collections.addAll और क्यों?

उत्तर

संग्रह .addAll को उसके बेहतर प्रदर्शन (पृष्ठ 282) के कारण पसंद किया जाता है।


4. ArrayList के साथ काम करते समय उपलब्ध कई तरीकों को सूचीबद्ध करें।

उत्तर

"युक्त (ऑब्जेक्ट ओ)" - सरणी में एक तत्व की उपस्थिति के लिए जांचें।
"इंडेक्सऑफ (ऑब्जेक्ट ओ)" - तत्व का सूचकांक प्राप्त करें।
"सब्लिस्ट (इंडेक्स 1, इंडेक्स 2)" - कुछ तत्वों को एक नए कंटेनर में कॉपी करें।
"ContainsAll (ऑब्जेक्ट ओ)" - कंटेनर में तत्वों की उपस्थिति के लिए जांच करें।


5. प्रकार (क्यू) रिटर्न के कंटेनर के लिए हटाने () विधि क्या कहलाती है?

उत्तर

Queue.remove () विधि न केवल कतार के प्रमुख को हटाती है, बल्कि इसके स्ट्रिंग मान को भी लौटाती है।


6. ArrayList की तुलना में LinkedList के साथ काम करने पर कौन से ऑपरेशन तेज़ होते हैं?

उत्तर

किसी सूची के मध्य से आइटम सम्मिलित करना और हटाना लिंक्डलिस्ट (पृष्ठ 291) के साथ तेज़ है।


7. लिंक्डलिस्ट के साथ आप किस प्रकार के कंटेनरों को लागू कर सकते हैं?

उत्तर

ढेर, कतार, छल।


8. सेट कंटेनर परिवार सूची कंटेनर परिवार से कैसे अलग है? (संपादन के लिए MrD का धन्यवाद)

उत्तर

सेट कंटेनर परिवार में, डेटा केवल एक उदाहरण में संग्रहीत किया जा सकता है (पृष्ठ 294)


9. क्या इसमें पहले से मौजूद सेट में एक तत्व जोड़ने की कोशिश करते समय एक अपवाद को फेंक दिया जाएगा?

उत्तर

कोई अपवाद नहीं होगा।


10. कैसे प्राथमिकता कंटेनर कतार से अलग है?

उत्तर

एक प्राथमिकताओं में आइटम को विशिष्ट नियमों के अनुसार क्रमबद्ध किया जा सकता है।


11. प्रायोरिट्यू पर लागू होने पर तुलनित्र का उपयोग किस लिए किया जाता है?

उत्तर

तुलनित्र आपको प्राथमिकता आइटम के लिए छँटाई के नियमों को निर्दिष्ट करने की अनुमति देता है।


12. उपसर्ग "ट्री" और "हैश", "लिंक्डहैश" का क्या मतलब है, उदाहरण के लिए, कंटेनर प्रकार सेट (ट्रीसेट, हैशसेट, लिंक्डहैश) के लिए

उत्तर

"ट्री" उपसर्ग का अर्थ है कि कंटेनर के तत्व सॉर्ट किए गए क्रम में संग्रहीत हैं
(उदाहरण के लिए, वर्णानुक्रम या आरोही) "हैश" उपसर्ग का मतलब है कि नमूना को गति देने के लिए कंटेनर हैशिंग को लागू करता है। "लिंक्डहैश" उपसर्ग का अर्थ है कि कंटेनर सम्मिलन के क्रम में वस्तुओं को संग्रहीत करता है और तेजी से पहुंच प्रदान करता है (पृष्ठ 30)।


13. "मैप" कंटेनर Iterable इंटरफ़ेस का समर्थन करता है?

14. क्या फोरच सिंटैक्स "मैप" कंटेनर के लिए काम करता है?

उत्तर

"मैप" प्रकार के कंटेनर के लिए, फ़ॉरेस्ट सिंटैक्स काम नहीं करता है क्योंकि यह चलने योग्य इंटरफ़ेस का समर्थन नहीं करता है


15. एक कंटेनर के तत्वों तक पहुंचने के लिए एक पुनरावृत्ति का उपयोग करने का मुख्य लाभ क्या है?

उत्तर

विभिन्न प्रकार के कंटेनरों के लिए एक पुनरावृत्त का उपयोग किया जा सकता है (पृष्ठ 290)।


16. नियमित रूप से पुनरावृत्ति करने वालों को लिस्टआईटर क्या नई सुविधाएँ प्रदान करता है?

उत्तर

ListIterator केवल कंटेनर के शुरू से अंत तक तत्वों तक अनुक्रमिक पहुंच प्रदान करता है, लेकिन इसके विपरीत (पृष्ठ 290)।

अभ्यास

11. 1. एक फ्रूट क्लास बनाएँ। क्लास में एक इंट वेट फील्ड, एक कंस्ट्रक्टर होता है जो इस फील्ड को इनिशियलाइज़ करता है, और एक प्रिंट वाइट () मेथड जो वेट वैल्यू को प्रिंट करता है।
मुख्य विधि में, सूची कंटेनर में कुछ फलों की वस्तुओं को जोड़ें। निम्नलिखित तरीकों से प्रत्येक ऑब्जेक्ट पर कॉल प्रिंट वाइट ():
ए) प्राप्त () विधि का उपयोग कर;
बी) एक पुनरावृत्ति का उपयोग करना।

उत्तर

// Fruit.java सार्वजनिक वर्ग फल (निजी int वजन \u003d 0; सार्वजनिक फल (int वजन) (this.weight \u003d भार;) सार्वजनिक शून्य printWeight () (System.out.println ("वजन है:" + वजन); )) // Apply.java इंपोर्ट java.util। *; सार्वजनिक वर्ग लागू करें (सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args) (सूची) फल \u003d Arrays.asList (नए फल (10), नए फल (20)); // एक System.out.println ("कार्य a:"); (फ्रूट f: फ्रूट्स) (f.printWeight ();) // b System.out.println ("टास्क b:)"; इटरेटर it \u003d fruit.iterator (); जबकि (it.hasNext ()) (it.next ()। PrintWeight ();));

11.2। फलों के वर्ग को एक मानचित्र कंटेनर में 11.1 से रखें। मान के रूप में स्वामी का नाम कुंजी के रूप में निर्दिष्ट किया जाना चाहिए, और फलों के प्रकार की एक वस्तु। प्रत्येक फलों की वस्तु पर एक प्रमुख पुनरावृत्ति को लागू करें और पाया वस्तु पर printWeight () विधि को कॉल करें: foreach का उपयोग करना; एक पुनरावृत्ति का उपयोग करना।

उत्तर

कॉम्पैक्ट पुनरावृत्ति समाधान के लिए संगरोध के लिए धन्यवाद।
वर्ग फल - कार्य 11.2 देखें

आयात java.util। *; आयात java.util.Map.Entry; सार्वजनिक वर्ग लागू करें (सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग) (// हैशपूम का उपयोग करें, क्योंकि छँटाई की आवश्यकता नहीं है फल \u003d नया हाशप (); फल.पुट ("बॉब", नया फल (10)); fruit.put ("मैरी", नया फल (20)); // foreach के साथ iteach System.out.println ("foreach" के साथ); के लिए (स्ट्रिंग कुंजी: fruit.keySet ()) (fruit.get (key) .printWeight ();) // iterate का उपयोग करके एक iterator System.out.println ("इट्रेटर के साथ"); इटरेटर \u003e it \u003d fruit.entrySet ()। पुनरावृत्त (); जबकि (it.hasNext ()) (it.next ()। getValue ()। PrintWeight ();));

11.3। प्रायोरिक्यू के लिए कम्पैरिलेटर का उपयोग करके, सुनिश्चित करें कि स्ट्रिंग चर आकार द्वारा क्रमबद्ध हैं।

उत्तर

नोट: उदाहरण इंटरनेट से लिया गया है।
// StringComparator.java आयात java.util.Comparator; सार्वजनिक वर्ग StringComparator तुलना करनेवाला लागू करता है (@ ओवरराइड सार्वजनिक int की तुलना करें (स्ट्रिंग s1, स्ट्रिंग s2) (यदि (s1.length)< s2.length()) { return -1; } if(s1.length() > s2.length ()) (वापसी 1;) वापसी 0; )) // प्रायोरिटी क्यू.जुवा इम्पोर्ट java.util.Comparator; आयात java.util.PriorityQueue; सार्वजनिक वर्ग प्रायोरिटी क्यू (सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग्स) (तुलनित्र) तुलनित्र \u003d नया StringComparator (); प्राथमिकता कतार कतार \u003d नया प्राथमिकता (10, तुलनित्र); queue.add ("abcde"); queue.add ("abc"); queue.add ("abcdefghi"); queue.add ("a"); // कतार में आइटमों को लम्बाई के क्रम में व्यवस्थित नहीं किया जाता है String System.out.println ("हटाने से पहले:"); System.out.println (कतार); // लेकिन आइटम कतार से हटा दिए जाते हैं लंबाई में स्ट्रिंग क्रम में System.out.println (); System.out.println ("ऑर्डर हटाने पर नज़र डालें:"); जबकि (कतार। आकार ()! \u003d 0) (System.out.println (queue.remove ());)))

मूल पुस्तक से अभ्यास का अनुवाद:
11.4। एक int gerbilNumber फ़ील्ड के साथ एक नया Gerbil वर्ग बनाएं। फ़ील्ड को एक निर्माता के साथ आरंभीकृत होने दें। एक हॉप () विधि भी बनाएं जो "गार्बिल की संख्या को रोकती है जो प्रिंट करती है:" और गेरबिलनम्बर चर का मूल्य। ArrayList कंटेनर में Gerbil ऑब्जेक्ट रखें। इन वस्तुओं में से प्रत्येक पर हॉप () पद्धति को कॉल करते हुए, सूची के माध्यम से पुनरावृति करने के लिए एक () विधि को लागू करें।

11.5। "C" चर के लिए सेट विधि का उपयोग करने के लिए SimpleCollection.java को संशोधित करें। इनरक्लासेस / सीक्वेंस.जवा को संशोधित करें ताकि वहां किसी भी संख्या में तत्वों को जोड़ा जा सके।

11.6। एक जेनरेटर वर्ग लिखें जो आपके पसंदीदा फिल्म पात्रों (स्ट्रिंग ऑब्जेक्ट्स) के नामों को सूचीबद्ध करता है। इस सूची के प्रत्येक ऑब्जेक्ट को अगली () विधि के माध्यम से लौटाया जाए। जब आप बनाई गई सूची के अंत तक पहुँचते हैं, तो आपको सूची की शुरुआत में वापस जाने की आवश्यकता होती है।
ArrayList, LinkedList, HashSet, LinkedHashSet, TreeSet जैसे कंटेनरों को आबाद करने के लिए जेनरेटर क्लास का उपयोग करें। एक सामान्य विधि लिखें जो प्रत्येक ऐरे की सामग्री को प्रिंट करती है।

11.7। पालतू जानवरों के बजाय Integers का उपयोग करने के लिए ListFeatures.java को संशोधित करें। इस संशोधन के परिणामस्वरूप प्रदर्शन के अंतर को स्पष्ट करें।

11.8। ListFeatures.java के लिए व्यायाम 11.7 दोहराएं, लेकिन पेट्स को स्ट्रिंग्स के साथ बदलें।

11.9। एक वर्ग बनाएँ जो किसी अन्य वर्ग की वस्तुओं का एक प्रारंभिक सरणी उत्पन्न करता है। इस सरणी के साथ एक सूची कंटेनर भरें। सूची के लिए उप-सूची () का उपयोग करके एक और कंटेनर बनाएं। फिर उन वस्तुओं को हटा दें जिन्हें आपने उपनलिस्ट () के साथ कंटेनर से प्राप्त किया था, जिनसे आपने उन्हें प्राप्त किया था।

11.10। विभिन्न कंटेनरों और उनके तरीकों (स्वयं द्वारा आविष्कार) का उपयोग करने में एक चंचल अभ्यास
मान लीजिए कि हमारे पास खर्चों की एक सूची है, जिसमें शुरू में 3 तत्व शामिल हैं: "भोजन", "दवा", "मनोरंजन"। आपको इन तत्वों को सूची कंटेनर में लिखने की आवश्यकता है, और उनका क्रम नहीं बदलना चाहिए।

1) हमें अचानक एहसास हुआ कि हम सूची में ऋण चुकाने की लागत जोड़ना भूल गए। आपको सीधे रिकॉर्ड के अनुक्रमित का उपयोग किए बिना "भोजन" और "दवा" के बीच "करों" रिकॉर्ड रखने की आवश्यकता है।
2) पत्नी प्रविष्टियों के साथ खर्च की एक अलग सूची में लाया: "कोट", "रेस्तरां"। ऐसा करने के लिए कुछ नहीं है: सूची के अंत में खर्च जोड़ें (ताकि खुद को चापलूसी न करें)।
3) हालांकि, सास हमारे लिए कुछ और आइटम लाए: "थियेटर", "घर की सजावट" और "दवा"। शायद आपके पास पहले से ही इनमें से कुछ बिंदु थे। बस मामले में, पहले कंटेनर की सामग्री को सेट प्रकार के नए कंटेनर में कॉपी करें और फिर, बिना किसी हिचकिचाहट के, इन वस्तुओं को सूची के अंत में जोड़ें।
4) बिना किसी हिचकिचाहट के, हमने खर्च के नक्शे की एक सहयोगी गतिशील सूची बनाई , जहां इंटेगर प्रत्येक लागत आइटम के लिए नियोजित लागत है (स्वयं राशि चुनें)।
5) हम सभी खर्चों की राशि को 30% तक बढ़ाने के लिए नाटकीय रूप से समृद्ध हो गए। आपके लिए ऐसा करने के लिए एक विधि लिखें।
6) बंद करो! हमारे साथ पर्याप्त "घर \u200b\u200bकी सजावट!" और, शायद, कोट पर बहुत अधिक खर्च किया जाता है। इन आइटमों को एक नई सूची में जोड़ें और इसे विधि में पास करें, जो इस शीट को पढ़ते हुए, मैप कंटेनर में संबंधित लागत वाली वस्तुओं को ढूंढ लेगा और उन्हें कम कर देगा ... 80%!
7) आइए सास के लिए कुछ खर्चों को पूरा करें। इसके अलावा, चलो उसे आश्चर्यचकित करते हैं! आइए दो यादृच्छिक संख्याएं उत्पन्न करें जो शुरुआती और समाप्त होने वाले सूचकांकों को निर्धारित करेंगे, जिनके बीच सभी खर्च एक अलग सूची में दर्ज किए जाएंगे (जो बाद में सास द्वारा फिसल जाएंगे)। आइए इससे संबंधित व्यय वस्तुओं को हटाकर मानचित्र को अपडेट करना न भूलें।
8) आइए एक विधि लिखें जो यह निर्धारित करेगा कि सबसे छोटी राशि किस पर खर्च की जाती है, इन खर्चों का नाम प्रिंट करें और गर्व से इस आइटम को सूची से हटा दें।
9) हालाँकि, अतिरिक्त उपभोग्य वस्तुओं को हमारे ऊपर ढेर कर दिया गया था: "भोजन" और "रेस्तरां", एक और सरणी के रूप में सजाया गया! आइए देखें कि क्या ये आइटम हमारी सूची में हैं? और अगर कम से कम एक खर्च है, तो किसी भी मामले में हम उन्हें नहीं जोड़ेंगे! यदि इसमें से कोई भी नहीं है, तो (कुछ भी नहीं होना है), हम इन दोनों वस्तुओं को एक साथ जोड़ते हैं (मैं कितना भूखा हूँ!)।
10) हम पागल हैं! आइए मानचित्र सूची से हमारे शेष खर्चों के सभी इंटेगर रकमों को पढ़ते हैं, उन्हें "कुछ" कंटेनर में लिखते हैं जो उन्हें आरोही क्रम में हमारे लिए सॉर्ट करेंगे, फिर उन्हें एक क्रोध में मिलाएं और उन्हें रिवर्स ऑर्डर में हटा दें, इसके लिए विशेष रूप से विशेष ट्रांसमीटर का उपयोग करके।

जावा फिलॉस्फी ब्रूस एकेल

(नहीं)

शीर्षक: जावा दर्शन

ब्रूस Eckel द्वारा जावा के दर्शन के बारे में

ब्रूस एकेल एक उत्कृष्ट प्रोग्रामर हैं, जो प्रोग्रामिंग भाषा पर कई पुस्तकों के लेखक हैं। उनका काम जल्दी से लोकप्रिय हो गया क्योंकि उन्होंने सरल भाषा में जटिल अवधारणाओं को उजागर किया। उन्होंने खरोंच से प्रोग्रामिंग सीखने और इस क्षेत्र में सफल होने में कई मदद की है। लेखक को एक से अधिक बार अपने काम के लिए पुरस्कार मिले हैं। उनकी पुस्तकें हमेशा आलोचकों द्वारा गर्मजोशी से प्राप्त की गई हैं, और जो लोग अधिक गहराई से विभिन्न प्रोग्रामिंग भाषा सीखना चाहते थे, वे अपने नए काम के लिए तत्पर थे। लेखक की सबसे प्रसिद्ध पुस्तक "जावा दर्शन" है। यह भारी संख्या में बिक गया और कई बार पुनर्मुद्रित हुआ। अब भी, एक दशक से भी अधिक समय के बाद, यह कार्य पेशेवर प्रोग्रामर बनने के इच्छुक किसी भी व्यक्ति के लिए अवश्य पढ़ें।

अपनी पुस्तक "जावा दर्शन" में लेखक ने इस प्रोग्रामिंग भाषा के रहस्यों का खुलासा किया है। वह उसे जिंदा चीज़ के रूप में देखने की सलाह देता है। वह कुशलता से उदाहरण देता है जो साबित करता है कि प्रोग्रामिंग भाषा विकसित हो रही है, इसके लिए विभिन्न परिवर्धन किए जाते हैं। इसका उपयोग किसी भी प्रक्रिया का वर्णन करने के लिए किया जा सकता है।

अधिकांश नौसिखिए प्रोग्रामर जावा लॉजिक को नहीं समझ सकते हैं। लेखक पाठकों को समझदारी से समझाने की कोशिश करता है कि यह क्या है। एक बार जब वे इसे समझ जाते हैं, तो ऐसे प्रोग्राम लिखना शुरू करना बहुत आसान हो जाएगा जो दुर्घटनाग्रस्त नहीं करेंगे और विशेषज्ञों को भ्रमित नहीं करेंगे। लेखक के अनुभव के लिए धन्यवाद, स्वतंत्र रूप से त्रुटियों को पहचानना और ठीक करना आसान होगा जो अक्सर प्रोग्रामर द्वारा किए जाते हैं। जावा प्रोग्रामिंग भाषा का गहन अध्ययन और समझ उन दृष्टिकोणों को खोलेगी जो पहले असंभव लगते थे।

द फिलॉसफी ऑफ जावा में ब्रूस एकेल ने कठिन बातों को सरल शब्दों में समझाने की कोशिश की। पाठकों को शब्दों में उलझने से रोकने के लिए, वह उन्हें प्रकृति, रोजमर्रा की स्थितियों से जोड़ता है। इस प्रकार, उपयोगी जानकारी तेजी से याद की जाती है और एक व्यक्ति के साथ हमेशा के लिए रहती है। जब मुश्किल हालात पैदा होते हैं, तो वह किताब से कहानी याद करता है और उसका इस्तेमाल करता है।

"जावा फिलॉसफी" पुस्तक में ब्रूस एकेल ने अपने सभी अनुभव को व्यक्त करने की कोशिश की, इसलिए उन्होंने सब कुछ अलमारियों पर रख दिया। पाठक केवल इसे अवशोषित कर सकते हैं और अपने दैनिक कार्य में इसका उपयोग कर सकते हैं। पुस्तक के लिए धन्यवाद, आप अधिकांश सामान्य गलतियों से बचने और एक उत्कृष्ट प्रोग्रामर बनने में सक्षम होंगे। लेखक के काम ने कई लोगों को यह समझने में मदद की है कि जावा कैसे काम करता है, महान कार्यक्रम लिखता है, और सॉफ्टवेयर में सुधार करता है।

पुस्तकों के बारे में हमारी वेबसाइट पर, आप पंजीकरण के बिना मुफ्त में साइट डाउनलोड कर सकते हैं या एपबुक, iPhone, Android और जलाने के लिए epub, fb2, txt, rtf, पीडीएफ प्रारूपों में ब्रूस एकेल द्वारा ऑनलाइन पुस्तक "द फिलॉसफी ऑफ जावा" पढ़ सकते हैं। पुस्तक आपको पढ़ने से बहुत सुखद क्षण और वास्तविक आनंद देगी। आप हमारे साथी से पूर्ण संस्करण खरीद सकते हैं। इसके अलावा, यहां आपको साहित्यिक दुनिया की ताजा खबरें मिलेंगी, अपने पसंदीदा लेखकों की जीवनी का पता लगाना होगा। नौसिखिए लेखकों के लिए, उपयोगी टिप्स और ट्रिक्स के साथ एक अलग सेक्शन है, दिलचस्प लेख, जिसके लिए आप स्वयं साहित्यिक कौशल में अपना हाथ आजमा सकते हैं।


डिफ़ॉल्ट दस्तावेज़ को बदलने के लिए, "blank.fb2" फ़ाइल को मैन्युअल रूप से संपादित करें।

प्राक्कथन १३

जावा SE5 और SE6 14

आभार १४

अध्याय 1. वस्तुओं का परिचय 17

अमूर्तता का विकास १ 18

ऑब्जेक्ट में इंटरफ़ेस 20 है

ऑब्जेक्ट 22 सेवाएं प्रदान करता है

छिपा हुआ बोध २३

पुन: उपयोग 24

वंशानुक्रम २५

विनिमेय वस्तुओं और बहुरूपता 29

एकल रूट पदानुक्रम 33

कंटेनर 33

पैरामीटर प्रकार 35

निर्माण, वस्तुओं का उपयोग और उनका जीवनकाल 36

अपवाद हैंडलिंग: त्रुटियों से निपटने 38

समानांतर निष्पादन 38

जावा और इंटरनेट 39

अध्याय 2. सब कुछ एक वस्तु है 48

सभी वस्तुओं को स्पष्ट रूप से 49 बनाया जाना चाहिए

ऑब्जेक्ट्स को कभी भी डिलीट नहीं करना है 53

नए डेटा प्रकार बनाना 54

तरीके, तर्क, और वापसी मान 56

जावा प्रोग्राम 58 लिखना

स्टेटिक 60 कीवर्ड

हमारा पहला जावा प्रोग्राम 61

टिप्पणियाँ और इनलाइन प्रलेखन 64

प्रोग्रामिंग की शैली 70

अध्याय 3. संचालक 71

सरल प्रिंट कमांड 71

जावा ऑपरेटर्स 72

साहित्य 82२

जावा का आकार अनुपलब्ध है () 92

सारांश १००

अध्याय 4. नियंत्रण संरचनाएं 101

Foreach वाक्यविन्यास 105

ब्रेक और 108 जारी रखें

खराब टीम को मिला 109

सारांश 115

अध्याय 5. प्रारंभिक और समापन 116

कंस्ट्रक्टर इनिशियलाइजेशन 116 की गारंटी देता है

विधि ओवरलोडिंग 118

क्लीनअप: फाइनल और गारबेज कलेक्शन 130

कक्षा सदस्यों की प्रारंभिक 137

कंस्ट्रक्टर इनिशियलाइज़ेशन 140

प्रारंभिक आरम्भ 146

सारांश 151

अध्याय 6. अभिगम नियंत्रण 152

लाइब्रेरी यूनिट 153 के रूप में पैकेज

जावा एक्सेस स्पेशलिस्ट्स 159

इंटरफ़ेस और कार्यान्वयन 163

कक्षा १६४ में प्रवेश

सारांश 167

अध्याय 7. पुन: उपयोग करने वाली कक्षाएं 169

रचना वाक्य रचना 170

इनहेरिटेंस सिंटेक्स 172

प्रत्यायोजन 176

संयोजन रचना और विरासत १it

रचना बनाम वंशानुक्रम 184

ऊपर की ओर रूपांतरण 186

अंतिम 188 कीवर्ड

सारांश 197

अध्याय 8. बहुरूपता 198

शीर्ष रूपांतरण पर वापस जाएं। ... ... \u003e 199

सुविधाएँ 201

कंस्ट्रक्टर और पॉलिमॉर्फिज़्म 208

वापसी का प्रकार Covariance 216

वंशानुक्रम 217 के साथ विकसित करना

सारांश 220

अध्याय 9. इंटरफेसेस 221

एब्सट्रैक्ट क्लासेस और मेथड्स 221

इंटरफेस 224

कार्यान्वयन 227 से इंटरफ़ेस को काट देना

233 के माध्यम से एक इंटरफ़ेस का विस्तार

अनुकूलन 236 के साधन के रूप में

नेस्टेड इंटरफेस 239

इंटरफेस और फैक्ट्रियां 242

सारांश 244

अध्याय 10. भीतरी कक्षा 245

इनर क्लास 245 बनाना

बाहरी वर्ग 246 के साथ संचार

कंस्ट्रक्शन.थिस और .new 248

इनर क्लास और अपस्ट्रीम रूपांतरण 249

• इनर क्लास २५३

भीतर की कक्षाएं: क्यों? 261

इनर क्लास 272 से प्रवेश

क्या आंतरिक वर्ग को ओवरराइड करना संभव है? 272

स्थानीय आंतरिक वर्ग 274

सारांश 276

अध्याय 11. वस्तुओं का संग्रह 277

पैरामीटर और टाइप किए गए कंटेनर 277

मूल अवधारणा 280

तत्वों के समूह को जोड़ना 281

Iterators 288

294 सेट करें

कतार 298

प्रायोरिटी क्यू 299

संग्रह और Iterator 301

विधि-एडाप्टर मुहावरा 306

सारांश 309

अध्याय 12. त्रुटि से निपटने और अपवाद 310

प्रमुख अपवाद 310

पकड़ने वाले अपवाद 312

अपनी खुद की अपवाद 314 बनाना

अपवाद विनिर्देशों 319

पकड़ना मनमानी अपवाद 320

जावा मानक अपवाद 328

अंत में 330 के साथ समापन

334 रिटर्न के साथ अंत में उपयोग करना

अपवाद 336 का उपयोग करने पर सीमाएं

कंस्ट्रक्टर 339

अपवादों की पहचान 343

वैकल्पिक समाधान 344

सारांश 351

अध्याय 13. टाइप सूचना 352

डायनेमिक प्रकार की आवश्यकता (आरटीटीआई) 352

कारखानों का पंजीकरण 372

परावर्तन: गतिशील कक्षा सूचना 376

गतिशील बिचौलिया 380

अनिर्धारित वस्तुओं 384

इंटरफेस और टाइप सूचना 390

सीवी 394

अध्याय 14. परिमापण 397

आसान पैरामीटर 398

पैरामीटर 404 इंटरफेस

व्यास 407

बिल्डिंग कॉम्प्लेक्स मॉडल 419

प्रतिबंध 437

मेटाचक्र्टर 440

सीवी 452

अध्याय 15. 454 पर अंकुश

454 ऐरे की विशेषताएं

ऑब्जेक्ट 456 के रूप में सरणी

एक सरणी 458 लौटाते हुए

बहुआयामी एरर 460

मेष और परिमापण 463

टेस्ट डाटा 465 बनाना

जेनरेटर 470 का उपयोग करके एरे बनाना

474 हेल्पर टूलकिट एरेस

फिर से शुरू करें 482

अध्याय 16. जावा 483 I / O सिस्टम

फाइल 484 क्लास

इनपुट और आउटपुट 489

विशेषताएँ और इंटरफेस जोड़ना 491

द रीडर एंड राइटर क्लास 494

RandomAccessFile: स्वयं 497 द्वारा

आई / ओ स्ट्रीम 498 का \u200b\u200bविशिष्ट उपयोग

फाइल रीडर्स और राइटर्स 505

मानक I / O 507

नया I / O (nio) 510

डेटा संपीड़न 531

536 वस्तुओं को क्रमबद्ध करना

वरीयताएँ 553

सीवी 555

अध्याय 17. समानांतर निष्पादन 557

धागा वर्ग 559

कलाकार 561

संसाधन साझाकरण 578

थ्रेड्स 598 के बीच सहभागिता

इंटरलॉक 602

नया पुस्तकालय घटक 607

काउंटडाउनचैट 607

साइक्लिक बैरियर 609

प्रायोरब्लॉकिंग क्यू 66

सेमफोरस 619

मॉडलिंग 624

CV 629

सूचकांक 631

वस्तुओं का परिचय

हम प्रकृति को विच्छेदित करते हैं, इसे अवधारणाओं में बदलते हैं और उन्हें उसी तरह अर्थ देते हैं जैसे हम कई तरीकों से करते हैं, क्योंकि हम सभी एक समझौते के पक्षधर हैं जो कि भाषण से बंधे समाज में मान्य है और जो भाषा की संरचना में तय होता है ... हम नहीं कर सकते। इस समझौते द्वारा स्थापित संगठन और डेटा वर्गीकरण से सहमत होकर, सभी पर संवाद करें।

बेंजामिन ली वर्फ़ (1897-1941)

हम मशीन पर कंप्यूटर क्रांति का बकाया है। इसलिए, हमारी प्रोग्रामिंग भाषाएं इस मशीन के करीब होने की कोशिश करती हैं।

लेकिन एक ही समय में, कंप्यूटर इतने सारे तंत्र नहीं हैं जितना कि विचारों को बढ़ाने के साधन ("मन के लिए साइकिल", जैसा कि स्टीव जोब कहना पसंद करते हैं), और आत्म-अभिव्यक्ति का एक और साधन। नतीजतन, प्रोग्रामिंग टूल मशीनों के प्रति कम झुकाव और हमारे दिमाग की ओर, साथ ही साथ मानव आकांक्षाओं की अभिव्यक्ति के अन्य रूपों जैसे साहित्य, पेंटिंग, मूर्तिकला, एनीमेशन, और सिनेमा की ओर जाते हैं। ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (ओओपी) कंप्यूटर को आत्म-अभिव्यक्ति के लिए एक वाहन बनाने का हिस्सा है।

यह अध्याय आपको OOP की मूल बातें से परिचित कराएगा, जिसमें कार्यक्रम के विकास के बुनियादी तरीकों का अवलोकन शामिल है। यह, और सामान्य रूप से पुस्तक का तात्पर्य है कि आपके पास प्रक्रियात्मक भाषा में प्रोग्रामिंग का अनुभव है, जरूरी नहीं कि सी। यदि यह आपको लगता है कि इस पुस्तक को पढ़ने से पहले आपको सी के प्रोग्रामिंग और सिंटैक्स में पर्याप्त ज्ञान नहीं है, तो सी मल्टीमीडिया मल्टीमीडिया संगोष्ठी में थिंकिंग का उपयोग करें। जिसे साइट से डाउनलोड किया जा सकता है