1. आदिम प्रकारों की सूची
जावा में 8 मूल आदिम प्रकार हैं। उन्हें आदिम कहा जाता है क्योंकि इस प्रकार के मान ऑब्जेक्ट नहीं होते हैं और सीधे वेरिएबल्स के अंदर संग्रहीत होते हैं।
यहाँ इन प्रकारों के बारे में कुछ संक्षिप्त जानकारी वाली तालिका दी गई है:
प्रकार | बाइट्स में आकार |
मूल्य पहुंच | डिफ़ॉल्ट मान | विवरण |
---|---|---|---|---|
byte |
1 | -128 .. 127 | 0 |
सबसे छोटा पूर्णांक प्रकार एक बाइट है |
short |
2 | -32,768 ... 32.767 | 0 |
लघु पूर्णांक, दो बाइट्स |
int |
4 | -2*10 9 .. 2*10 9 | 0 |
पूर्णांक, 4 बाइट्स |
long |
8 | -9*10 18 .. 9*10 18 | 0L |
लंबा पूर्णांक, 8 बाइट्स |
float |
4 | -10 38 .. 10 38 | 0.0f |
फ्लोटिंग-पॉइंट नंबर, 4 बाइट्स |
double |
8 | -10 308 .. 10 308 | 0.0d |
डबल-सटीक फ़्लोटिंग पॉइंट नंबर, 8 बाइट्स |
boolean |
1 | true ,false |
false |
बूलियन प्रकार (केवल true और false ) |
char |
2 | 0 .. 65.535 | '\u0000' |
वर्ण, 2 बाइट्स, सभी 0 से अधिक |
वैसे, यहाँ एक महत्वपूर्ण अति सूक्ष्म अंतर है। यदि आप एक उदाहरण चर (फ़ील्ड) या एक स्थिर वर्ग चर घोषित करते हैं और तुरंत इसके लिए कोई मान निर्दिष्ट नहीं करते हैं, तो इसे डिफ़ॉल्ट मान के साथ प्रारंभ किया जाता है । तालिका इन मानों की एक सूची प्रस्तुत करती है।
विधि में स्थानीय चर का कोई डिफ़ॉल्ट मान नहीं है। यदि आप ऐसे वेरिएबल्स को कोई मान निर्दिष्ट नहीं करते हैं, तो उन्हें अप्रारंभीकृत माना जाता है और उनका उपयोग नहीं किया जा सकता है।
लेकिन आइए आदिम प्रकारों पर लौटें और उन पर करीब से नज़र डालें।
2. पूर्णांक प्रकार
जावा में 4 पूर्णांक प्रकार हैं : byte
,, और । वे अपने आकार और उनके द्वारा संग्रहीत मूल्यों की सीमा में भिन्न होते हैं।short
int
long
int
प्रकार
सबसे अधिक इस्तेमाल किया जाने वाला int
प्रकार है। यह नाम इंट ईगर (संपूर्ण संख्या) शब्द से आया है । कोड में सभी पूर्णांक अक्षर (पूर्ण संख्याएं) हैं (यदि वे , या ints
में समाप्त नहीं होते हैं )।L
F
D
-2,147,483,648
इस प्रकार के चर मान से से तक ले सकते हैं +2,147,483,647
।
यह बहुत कुछ है और लगभग हर अवसर के लिए पर्याप्त है। लगभग हर फ़ंक्शन जो एक संख्या लौटाता है, एक देता है int
।
उदाहरण:
कोड | व्याख्या |
---|---|
|
विधि length() एक स्ट्रिंग की लंबाई लौटाती है |
|
फ़ील्ड length में सरणी की लंबाई होती है। |
short
प्रकार
प्रकार short
को इसका नाम मिलता है short int
। इसे अक्सर लघु पूर्णांक भी कहा जाता है । प्रकार के विपरीत int
, इसकी लंबाई केवल दो बाइट है और संभावित मानों की श्रेणी से से -32,768
है +32,767
।
यानी आप इसमें एक लाख नंबर स्टोर नहीं कर सकते। या 50,000 भी। यह जावा में सबसे अधिक इस्तेमाल किया जाने वाला पूर्णांक प्रकार है। इसका उपयोग करने की मुख्य प्रेरणा स्मृति को संरक्षित करना है।
मान लीजिए कि आपके पास एक ऐसी स्थिति है जहां आप पहले से जानते हैं कि आप उन मूल्यों के साथ काम करेंगे जो कभी भी 30,000 से अधिक नहीं होंगे, और ये लाखों मूल्य होंगे।
उदाहरण के लिए, मान लें कि आप एक ऐसा एप्लिकेशन लिख रहे हैं जो अल्ट्रा-हाई डेफिनिशन पिक्चर्स को प्रोसेस करता है जो 10
-बिट्स प्रति रंग का उपयोग करता है। और आपकी तस्वीर में एक लाख पिक्सेल हैं। int
यह एक ऐसा परिदृश्य है जहां उपयोग या short
मायने रखने का निर्णय ।
long
प्रकार
इस प्रकार को इसका नाम मिलता है long int
और इसे एक लंबा पूर्णांक भी कहा जाता है । प्रकार के विपरीत int
, इसमें मूल्यों की एक विशाल श्रेणी है: से से ।-9*1018
+9*1018
यह मूल पूर्णांक प्रकार क्यों नहीं है?
क्योंकि जावा 90 के दशक के मध्य में दिखाई दिया, जब अधिकांश कंप्यूटर 32-बिट थे। इसका मतलब है कि सभी प्रोसेसर 32 बिट्स वाले नंबरों के साथ काम करने के लिए ऑप्टिमाइज़ किए गए थे। प्रोसेसर 64-बिट पूर्णांकों के साथ काम कर सकते थे, लेकिन उनके साथ संचालन धीमा था।
नतीजतन, प्रोग्रामर ने यथोचित रूप से int
मानक पूर्णांक प्रकार बनाने का निर्णय लिया, और long
वास्तव में आवश्यक होने पर ही प्रकार का उपयोग किया।
byte
प्रकार
यह जावा में सबसे छोटा पूर्णांक प्रकार है, लेकिन कम से कम इस्तेमाल होने से बहुत दूर है। इसका नाम, byte
जावा में मेमोरी के सबसे छोटे एड्रेसेबल ब्लॉक के लिए भी शब्द है।
प्रकार के लिए इतने मान्य मान नहीं हैं byte
: से से -128
तक +127
। लेकिन यह इसकी ताकत नहीं है। इस byte
प्रकार का सबसे अधिक उपयोग तब किया जाता है जब आपको मेमोरी में बड़े ब्लॉब डेटा को स्टोर करने की आवश्यकता होती है। byte
इस उद्देश्य के लिए एस की एक सरणी आदर्श है।
मान लीजिए आपको कहीं एक फाइल कॉपी करने की जरूरत है।
आपको फ़ाइल की सामग्री को संसाधित करने की आवश्यकता नहीं है: आप बस मेमोरी (बफर) का एक क्षेत्र बनाना चाहते हैं, फ़ाइल की सामग्री को उसमें कॉपी करें, और फिर उस डेटा को बफर से दूसरी फ़ाइल में लिखें। इसके लिए आपको एक byte
सरणी चाहिए।
ध्यान रखें कि एक सरणी चर केवल मेमोरी के एक क्षेत्र के संदर्भ को संग्रहीत करता है। जब वेरिएबल को किसी मेथड में पास किया जाता है, तो केवल मेमोरी एड्रेस पास किया जाता है। मेमोरी के ब्लॉक को ही कॉपी नहीं किया जाता है।
byte[] buffer = new byte[1024*1024];
FileInputStream sourceFile = new FileInputStream("c:\\data.txt");
FileOutputStream destFile = new FileOutputStream("c:\\output.txt");
while (true)
{
int size = sourceFile.read(buffer); // Read data from a file into a buffer
destFile.write(buffer, 0, size); // Write data from the buffer to a file
// Stop copying if the buffer is not full
if (size < buffer.length) break;
}
sourceFile.close();
destFile.close();
3. वास्तविक प्रकार
आदिम प्रकारों में वास्तविक संख्याओं के लिए दो प्रकार शामिल हैं। हालांकि यह उस शब्द का उपयोग करने के लिए पूरी तरह सटीक नहीं है। जब कंप्यूटर वास्तविक संख्याओं को संभालते हैं, तो हम उन्हें फ़्लोटिंग-पॉइंट नंबर कहते हैं । यह नाम संख्याओं का प्रतिनिधित्व करने के लिए एक मानक से आता है, जिसमें किसी संख्या के पूर्णांक और भिन्नात्मक भाग एक अवधि (एक बिंदु, अल्पविराम नहीं) से अलग होते हैं।
संख्याओं को लिखने के लिए प्रत्येक देश के अपने मानक होते हैं (आश्चर्य!)
बहुत से लोग दशमलव विभाजक के रूप में हजारों और अल्पविरामों को अलग करने के लिए अवधियों का उपयोग करने के आदी हैं: उदाहरण के लिए, वे one million ones and 153 thousandths
लिखेंगे 1.000.000,153
। लेकिन संयुक्त राज्य अमेरिका में, जहां जावा के निर्माता रहते थे, एक अलग मानक अपनाया गया था:1000000.153
जावा के दो फ्लोटिंग-पॉइंट आदिम प्रकार हैं: double
और float
।
जैसा कि हमने पहले कहा, इन प्रकारों की एक बहुत ही विशिष्ट आंतरिक व्यवस्था होती है: वास्तव में, इन प्रकारों के प्रत्येक चर के अंदर एक संख्या नहीं, बल्कि दो होती हैं:
उदाहरण के लिए, फ़्लोटिंग-पॉइंट नंबर को 987654.321
इस रूप में दर्शाया जा सकता है । फिर स्मृति में इसे दो संख्याओं ( मंटिसा , यानी संख्या का महत्वपूर्ण हिस्सा) और ( प्रतिपादक , यानी दस की शक्ति) के रूप में दर्शाया जाएगा।0.987654321*106
987654321
6
float
प्रकार
प्रकार का नाम फ्लोट आईएनजी-पॉइंट नंबरfloat
से आता है । इस प्रकार का आकार काफी छोटा है - केवल 4 बाइट्स (32 बिट्स) - लेकिन यह मूल्यों को से स्टोर कर सकता है । मंटिसा का प्रतिनिधित्व करने के लिए 24 बिट आवंटित किए जाते हैं, और एक्सपोनेंट के लिए 8 बिट आवंटित किए जाते हैं। यह प्रकार केवल 8 महत्वपूर्ण अंकों को संग्रहित करने में सक्षम है।-3.4*1038
3.4*1038
int
यह दृष्टिकोण समान 4 बाइट्स का उपयोग करते हुए, की तुलना में बहुत बड़ी संख्याओं को संग्रहीत करना संभव बनाता है । लेकिन ऐसा करने के लिए, हम सटीकता का त्याग करते हैं। क्योंकि मेमोरी का हिस्सा मंटिसा को स्टोर करता है, ये वेरिएबल्स केवल 6-7 दशमलव स्थानों को स्टोर करते हैं जबकि बाकी को छोड़ दिया जाता है।
उदाहरण:
कोड | कीमत |
---|---|
|
123.45679 |
|
12346.0 |
|
-1.2345679 |
जैसा कि आप देख सकते हैं, इस प्रकार का मुख्य दोष महत्वपूर्ण अंकों की बहुत छोटी संख्या है, और आठवें अंक के रूप में सटीकता का नुकसान है। यही कारण है कि float
जावा प्रोग्रामर्स के बीच यह प्रकार बहुत लोकप्रिय नहीं है।
double
प्रकार
प्रकार double
मानक फ़्लोटिंग-पॉइंट प्रकार है। नाम डबल सटीक फ़्लोटिंग-पॉइंट नंबर से आता है । डिफ़ॉल्ट रूप से सभी वास्तविक शाब्दिक double
s हैं।
यह प्रकार 8 बाइट मेमोरी (64 बिट्स) लेता है और मानों को से स्टोर कर सकता है । एक महत्वपूर्ण बात यह जानना है कि 53 बिट्स मंटिसा के लिए आवंटित किए गए हैं, जबकि शेष 11 एक्सपोनेंट के लिए हैं।-1.7*10308
1.7*10308
यह 15-17 महत्वपूर्ण अंकों को संग्रहीत करने की अनुमति देता है।
उदाहरण:
कोड | कीमत |
---|---|
|
1234567890.1234567 |
|
1234567890.1234512 |
|
1234567890.1357913 |
यह सटीकता, विशेष रूप से प्रकार की तुलना में float
, निर्णायक है: वास्तविक संख्या वाले सभी कार्यों का 99% double
प्रकार का उपयोग करके किया जाता है।
11
प्रतिपादक के लिए बिट्स आवंटित किए जाते हैं, जिसका अर्थ है कि आप दस की शक्तियों -323
को से स्टोर कर सकते हैं (यह दो से +308
की शक्ति है )। प्रकार दशमलव बिंदु के बाद सैकड़ों शून्य के साथ आसानी से एक संख्या को स्टोर कर सकता है:-1024
+1023
double
कोड | कीमत |
---|---|
|
600.0 |
4. अनंत
फ़्लोटिंग-पॉइंट नंबरों की एक और दिलचस्प विशेषता है: वे एक विशेष मान को स्टोर कर सकते हैं जो अनंत को दर्शाता है । और आप सकारात्मक अनंतता और नकारात्मक अनंतता का प्रतिनिधित्व कर सकते हैं ।
उदाहरण:
कोड | टिप्पणी |
---|---|
|
|
|
|
|
|
यदि अनंत को किसी संख्या से गुणा किया जाए तो अनंत प्राप्त होता है। यदि आप अनंत में कोई संख्या जोड़ते हैं, तो आपको अनंत मिलता है। यह बहुत सुविधाजनक है।
संख्या नहीं ( NaN
)
अनंतता से जुड़े किसी भी ऑपरेशन से अनंतता प्राप्त होती है। ठीक है, अधिकांश लेकिन सभी नहीं।
फ़्लोटिंग-पॉइंट नंबर एक और विशेष मान संग्रहीत कर सकते हैं: NaN
. यह N ot a N umber (संख्या नहीं) के लिए छोटा है ।
गणित में, यदि आप अनंत को अनंत से विभाजित करते हैं, तो परिणाम अपरिभाषित होता है।
लेकिन, जावा में, यदि आप अनंत को अनंत से विभाजित करते हैं, तो परिणाम होता है NaN
।
उदाहरण:
कोड | टिप्पणी |
---|---|
|
|
|
|
|
|
NaN
पैदावार के साथ कोई भी ऑपरेशन NaN
।
5. char
प्रकार
जावा के आदिम प्रकारों में , कुछ विशेष ध्यान देने योग्य हैं: char
प्रकार। इसका नाम चार अभिनेता शब्द से आता है , और वर्णों को संग्रहीत करने के लिए ही प्रकार का उपयोग किया जाता है।
वर्ण वे हैं जिनसे तार बने होते हैं, है ना? स्ट्रिंग्स वर्णों की एक सरणी हैं।
लेकिन इससे भी दिलचस्प तथ्य यह है कि char
प्रकार भी एक संख्यात्मक प्रकार है ! यह एक दोहरे उद्देश्य का प्रकार है, इसलिए बोलना है।
हकीकत यह है कि char
प्रकार वास्तव में वर्ण नहीं है। इसके बजाय, यह यूनिकोड एन्कोडिंग से वर्ण कोड संग्रहीत करता है। प्रत्येक वर्ण एक संख्या से मेल खाता है: वर्ण का संख्यात्मक कोड।
प्रत्येक char
चर स्मृति में दो बाइट्स (प्रकार के समान short
) पर कब्जा कर लेता है। लेकिन short
प्रकार के विपरीत, char
पूर्णांक प्रकार अहस्ताक्षरित है और मूल्यों 0
को से स्टोर कर सकता है 65,535
।
प्रकार char
एक संकर प्रकार है। इसके मूल्यों को संख्याओं के रूप में (जैसे उन्हें जोड़ा और गुणा किया जा सकता है) और वर्णों के रूप में व्याख्या किया जा सकता है। ऐसा इसलिए किया गया क्योंकि यद्यपि वर्ण दृश्य प्रतिनिधित्व हैं, एक कंप्यूटर के लिए वे सभी संख्याओं से ऊपर हैं। और संख्याओं के रूप में उनके साथ कार्य करना कहीं अधिक सुविधाजनक है।
यूनिकोड
यूनिकोड एक विशेष तालिका (एन्कोडिंग) है जिसमें दुनिया के सभी वर्ण शामिल हैं। और प्रत्येक वर्ण की अपनी संख्या होती है। यह लगभग इस प्रकार दिखता है:
char
किसी वेरिएबल को वैल्यू असाइन करने के अलग-अलग तरीके हैं ।
कोड | विवरण |
---|---|
|
चर a में लैटिन अक्षर होगा A । |
|
चर a में लैटिन अक्षर होगा A । इसका कोड है 65 । |
|
चर a में लैटिन अक्षर होगा A । इसका कोड है 65 , जो 41 हेक्साडेसिमल सिस्टम में बराबर है। |
|
चर a में लैटिन अक्षर होगा A । इसका कोड है 65 , जो 41 हेक्साडेसिमल सिस्टम में बराबर है। दो अतिरिक्त शून्य कुछ भी नहीं बदलते हैं। |
|
चर a में लैटिन अक्षर होगा A । किसी वर्ण को उसके कोड द्वारा परिभाषित करने का दूसरा तरीका। |
अक्सर, लोग केवल चरित्र को उद्धरण चिह्नों में इंगित करते हैं (जैसा कि तालिका की पहली पंक्ति में है)। उस ने कहा, बाद वाला तरीका भी लोकप्रिय है। इसका फायदा यह है कि इसे स्ट्रिंग्स में इस्तेमाल किया जा सकता है।
और जैसा कि हमने कहा, char
प्रकार भी एक पूर्णांक प्रकार है, तो आप कुछ इस तरह लिख सकते हैं:
कोड | कंसोल आउटपुट |
---|---|
|
लैटिन अक्षर B स्क्रीन पर प्रदर्शित किया जाएगा। क्योंकि : A --- 65 B _66 C 67 |
char
एस के साथ काम करना
प्रत्येक char
सबसे पहले एक संख्या (अक्षर कोड) है, और फिर एक वर्ण है। यदि आप एक वर्ण कोड जानते हैं, तो आप हमेशा अपने कार्यक्रम में चरित्र प्राप्त कर सकते हैं। उदाहरण:
कोड | कंसोल आउटपुट |
---|---|
|
|
मानक कोड
यहाँ सबसे प्रसिद्ध वर्ण कोड हैं:
पात्र | कोड्स |
---|---|
0 , 1 , 2 , ...9 |
48 , 49 , 50 , ...57 |
a , b , c , ...z |
97 , 98 , 99 , ...122 |
A , B , C , ...Z |
65 , 66 , 67 , ...90 |
6. boolean
प्रकार
और अंतिम आदिम प्रकार है boolean
।
जैसा कि आप पहले से ही जानते हैं, यह केवल दो मान ले सकता है: true
और false
।
और इसके साथ, आप इस प्रकार के बारे में जानने के लिए पहले से ही सब कुछ जानते हैं।
GO TO FULL VERSION