Last Updated on August 3, 2022 by RAJENDRAPRASAD
Non-Primitive Data Types in Java in Hindi – Hello दोस्तों rajhindime.in में आपका स्वागत है |
दोस्तों, पिछले पोस्ट – Data Types in Java in Hindi में आपने Data Types तथा Primitive Data Types के बारे में विस्तृत जानकारी प्राप्त की | आज के इस पोस्ट Non-Primitive Data Types in Java in Hindi में – आप Non-Primitive Data Types के बारे में विस्तार से जानेंगे |
जैसा की आप जानते हैं कि Java में Data type दो प्रकार के होते हैं | Primitive Data Types और Non-Primitive Data Types
Primitive Data Types वे Data Type हैं, जिनका उपयोग programmer, अपने program में variable को declare करने के दौरान करता है | यह pre-defined होते हैं | इनका उपयोग single value को store करने के लिए किया जाता है | यह एक ही type की value को store करते हैं |
उदाहरण के लिए,यहाँ int केवल single value 10 store कर रहा है | उसी तरह float भी single value 10.5 store कर रहा है | boolean भी एक समय में या तो true store कर सकता है या फिर false |
Java में कुल 8 Primitive Data Types हैं | वे सभी byte, short, int, long, float, double, boolean तथा char हैं |
आइए अब हम Non-Primitive data types के बारे में विस्तार से जानें |
String और Array को छोड़कर, सभी Non-primitive data type, programmer द्वारा create किए जाते हैं | अर्थात यह किस type की value को store करेंगे, यह program में defined होता हैं | यह primitive data type की तरह pre-defined नहीं होते |
इनका उपयोग group of value अथवा कई values को store करने के लिए किया जाता है |
उदाहरण के लिए, Array यह group of values को store कर सकता है | String यह कुछ और नहीं बल्कि group of characters है | ठीक उसी प्रकार, Class यह अलग-अलग कई values को store कर सकता है | इन सभी खूबियों के कारण इन Data types को advance Data types भी कहते हैं |
जब भी हम किसी non-primitive data type के variable को define करते हैं, तब यह उस memory location को reference करता हैं, जहाँ actual data, heap memory में store होता है |
सरल शब्दों में कहें तो, non-primitive data type किसी actual value को store नहीं करता, बल्कि उस actual value के reference को store करता है | यह reference और कुछ नहीं बल्कि उस actual value का location address है, जहाँ वह store है |
Real time Examples of Non-primitive data types in Java |
Naukri.com यह किसी भी नौकरी चाहनेवाले (candidate) को actual में job नहीं देता, बल्कि उसे job किस company में मिल सकता है, उसका reference (address और details) देता है | |
इन सब कारणों से non-primitive data type के variable को Java में referenced data type अथवा object reference variable भी कहते हैं |
object reference variable हमेशा stack memory में स्थित होता है तथा यह जिस object को reference करता है वह heap memory में store होता है | stack, heap memory में उपस्थित object के reference को store करता है |
इस तरह सभी non-primitive data types, heap memory में स्थित object को reference करते है, और आप जानते ही हैं कि, हर object किसी न किसी Class के instances होते हैं |
variable में stored reference का उपयोग करके हम, उस object में स्थित fields तथा methods को आसानी से access कर सकते हैं |
उदाहरण के लिए, java.lang.String यह Class जो Java library में defined हैं, इसका प्रयोग हम किसी भी text में हेर-फेर (manipulate) करने के लिए कर सकते हैं |
non-primitive data type को declare कैसे करे ?
String str; |
- यहाँ, String यह Class का name हैं
- “str” यह reference variable का name है,
- अभी तक हमने यहाँ कोई object create नहीं किया है |
new keyword का use करके हम किसी भी Class का object create करते हैं | अब हम String Class का object create करेंगे जिसमे “Hello World” store है और फिर उसे reference variable “str” में assign कर देंगे |
str = new String(“Hello World”); |
- यहाँ, “str” यह reference variable,
- “new” यह special keyword है, जो memory create करता है,
- String() यह Class का constructor है, जिसे object को initialize करने के लिए use किया जाता है,
- “Hello World” यह value है, जो heap memory में stored है |
object reference variable का declaration, object creation, तथा reference variable का initialization इन तीनों को single line statement में भी लिखा जा सकता है |
String str = new String(“Hello World”); |
सरल शब्दों में कहें तो, String Class का object, heap memory में है, जिसमे “Hello World” stored है और “str” के अंदर इस heap memory का address/reference stored है | “str” यह stack memory में stored है |
Object और Object Reference Variable का Memory Allocation
Non-primitive Data types के प्रकार
Java में Non-primitive Data types के कुल 4 types हैं |
1. Class 2. Interface 3. String 4. Array
इन चारों में से String और Array पहले से ही बने है अर्थात built-in इन है, अन्य दो Class और Interface programmer द्वारा बनाए जाते हैं |
1. Class: यह blueprint की तरह कार्य करता है, objects के behavior को describe करने के लिए इसमें variables तथा methods बनाए जाते हैं | यह programmer द्वारा create किया जाता है, इसलिए Class को user-defined data type भी कहते हैं |
2. Interface: इसके अंदर declared methods की body नहीं होती तथा इसके अंदर सारे variables final होते हैं | Interface और abstract Class के बारे में हम आने वाले posts में विस्तार से जानेंगे |
3. String: यह भी एक Class ही है | यह sequence of characters को represent करता है जैसे, “India”, “RajHindiMe”
4. Array: यह same types के multiple variables तो store करता है, ये variables primitive या non-primitive data type के हो सकते हैं |
Difference between primitive and non-primitive data types
Primitive Data Types | Non-Primitive Data Types |
Java में pre-defined है | | String तथा Array को छोड़कर, अन्य सभी programmer द्वारा define किए जाते हैं | |
Lowercase letter से start होता है | | Uppercase letter से start होता है | |
हमेशा कोई न कोई value जरूर होता है | | Value जरुरी नहीं है, यह null भी हो सकता है | |
एक समय पर केवल एक ही value store करता है | | एक समय पर कई values को store कर सकता है, ये Values, same type अथवा different types के भी हो सकते हैं | |
method को call नहीं कर सकते | | Operations को perform करने के लिए method को call किया जा सकता है | |
Size, data type पर depends और fixed होता है | | Size fixed नहीं होता, run time में decide होता है | |
Actual value, stack memory में stored होती है | | Stack memory केवल, heap memory में उपस्थित objects के reference को store करता है | |
Non-Primitive Data types का size fix क्यों नहीं होता ?
आइए इसे example द्वारा समझे |
Example 1:
char ch = ‘A’; |
चूँकि char का default size 2 bytes है | इसलिए यहाँ variable ch, memory में 2 bytes का space occupy कर रहा है |
String str = “Royal” |
जैसा की आप जानते है String यह collections of character होता है, अर्थात यह अलग-अलग char से मिलकर बनता है |
यहाँ variable str में कुल 5 char है, अर्थात यहाँ 2 bytes के कुल 5 char है, जिससे इसका size 5*2 अर्थात 10 bytes हो जाता है |
Programmer अपनी requirement के हिसाब से String में char की संख्या (number of char) कम अथवा ज्यादा कर सकता है |
String str2 = “RajHindiMe” |
अब यहाँ variable str2 में कुल 10 char है, जिससे इसका size 10*2 अर्थात 20 bytes हो जाता है |
Example 2:
ठीक इसी तरह,
int i = 10; |
चूँकि int का default size 4 bytes है, इसलिए यहाँ variable i, memory में 4 bytes का space occupy करेगा |
अब मान लीजिये हमें int का Array declare करना है जिसकी size 3 हो,
int a[] = new int[3]; |
यह statement, memory में 3 size का Array declare करेगा, जिसमें हम केवल int value ही store कर सकते है, चूँकि इसमें हम 3 int value store कर सकते है इसलिए इसका size 4*3 bytes अर्थात 12 bytes हो गया |
उसी प्रकार,
int a[] = new int[4]; |
लिखने पर, इसका size 16 bytes हो जायेगा |
इस तरह Non-Primitive data types में जैसे- जैसे programmer, value की संख्या कम या ज्यादा करता है, variable का size उसी प्रकार कम- ज्यादा होता रहता है अर्थात size fix नहीं होता |
आशा करता हूँ कि, अब आप समझ गए होंगे कि, Non-Primitive Data types का size fix क्यों नहीं होता ?
Conclusion – आज आपने क्या सीखा
इस post में आपने Non-Primitive Data Types तथा उसके विभिन्न types के बारे में विस्तृत जानकारी प्राप्त की | आशा है कि, आपको मेरा यह Blog Non-Primitive Data Types in Java in Hindi जरूर पसंद आया होगा |
अगर आप इस post से related कोई सवाल पूँछना चाहते हैं अथवा कोई सुझाव देना चाहते हैं तो comment करके जरूर बताएं, मैं उसका reply जरूर दूँगा |
इस post को अपना कीमती समय देने के लिए बहुत बहुत धन्यवाद् | फिर मिलेंगें |
Good kaphi achhe se samajhaya hai
Thank you! It means a lot.
Sir programs bhi aap please acche se explain karke batao
Feedback ke liye dhanyavad Gaurav, main ese aage aane wale posts me jarur implement karunga .
To be more specific, kya aap mujhe bta sakte hain ki kis program ko mujhe aur accche se explain karna chahiye ?
Informative Post
Thank you Priya !
Keep Learning