1. मेमरी कशी आयोजित केली जाते
प्रत्येक संगणकाला अंतर्गत मेमरी असते . हे काय आहे? त्यात कोणते गुणधर्म आहेत? आणि, सर्वात महत्त्वाचे म्हणजे, त्याचा आपल्याला कसा फायदा होतो?
कार्यान्वित होण्यापूर्वी प्रत्येक प्रोग्राम ( जावामध्ये लिहिलेल्या प्रोग्रामसह ) मुख्य मेमरीमध्ये लोड केला जातो. मुख्य मेमरीमध्ये प्रोग्राम कोड (जे प्रोसेसरद्वारे कार्यान्वित केले जाते) तसेच प्रोग्राम डेटा (म्हणजे प्रोग्राम स्वतः मेमरीमध्ये ठेवणारा डेटा) समाविष्ट करतो.
स्मृती म्हणजे काय आणि ती कशी असते?
एक्सेल स्प्रेडशीटमध्ये पेशी असतात . प्रत्येक सेलचे स्वतःचे अद्वितीय अभिज्ञापक ( A1
, A2
, ... B1
, B2
) असतो. जर तुम्हाला सेलचा आयडेंटिफायर माहित असेल , तर तुम्ही नेहमी त्यात काही मूल्य लिहू शकता किंवा जे काही मूल्य तेथे साठवले आहे ते मिळवू शकता. संगणक मेमरी अगदी सारख्याच प्रकारे आयोजित केली जाते.
प्रोग्राम चालू असताना प्रोग्राम आणि प्रोग्राम डेटा मेमरीमध्ये संग्रहित केला जातो. सर्व संगणक मेमरी लहान पेशींनी बनलेली असते ज्याला बाइट म्हणतात . प्रत्येक सेलमध्ये एक अद्वितीय अभिज्ञापक किंवा संख्या असते, त्याच्याशी संबंधित: 0
, 1
, 2
, 3
, ...; (क्रमांक शून्यापासून सुरू होते). जर आपल्याला सेलचा नंबर माहित असेल तर आपण त्यात डेटा सेव्ह करू शकतो. किंवा त्यातून डेटा मिळवा. काही सेल प्रोग्रामचा कोड साठवतात, म्हणजे प्रोसेसरसाठी कमांडचा संच. इतर प्रोग्रामद्वारे वापरलेला डेटा संग्रहित करतात. सेलच्या नंबरला सेल अॅड्रेस देखील म्हणतात .
प्रोसेसरला मेमरीमध्ये लोड केलेल्या कमांड्स कसे कार्यान्वित करायचे हे माहित आहे. जवळजवळ सर्व प्रोसेसर कमांड्स काही सेलमधून डेटा घेणे , त्यांच्यासह काहीतरी करणे , नंतर निकाल इतर सेलमध्ये पाठवणे अशा काही गोष्टी आहेत .
जटिल आणि उपयुक्त कमांड्स मिळविण्यासाठी आम्ही शेकडो सोप्या कमांड्स एकत्र करतो.
जेव्हा कोडमध्ये व्हेरिएबल घोषित केले जाते, तेव्हा आधीपासून वापरल्या जात नसलेल्या मेमरीचा एक भाग त्यासाठी वाटप केला जातो. हे सहसा काही बाइट्स असते. व्हेरिएबल घोषित करण्यासाठी प्रोग्राम त्यामध्ये कोणत्या प्रकारची माहिती संग्रहित करेल: संख्या, मजकूर किंवा इतर डेटा सूचित करणे आवश्यक आहे. शेवटी, जर तुम्हाला माहितीचा प्रकार माहित नसेल तर, व्हेरिएबलसाठी किती मोठ्या मेमरी ब्लॉकची आवश्यकता आहे हे स्पष्ट नाही.
संगणक युगाच्या पहाटे, प्रोग्राम्स थेट मेमरी पत्त्यांसह कार्य करतात, परंतु नंतर, प्रोग्रामरच्या सोयीसाठी, पेशींना नावे दिली जाऊ लागली. प्रोग्रामरच्या सोयीसाठी एक अद्वितीय व्हेरिएबल नाव सर्वांत महत्त्वाचे आहे, कारण प्रोग्राम साधा मेमरी पत्ते अगदी व्यवस्थित हाताळतो.
2. मेमरीमधील चल
एकूण, Java मध्ये पूर्णांक संचयित करण्यासाठी 4 डेटा प्रकार आहेत. हे आहेत byte
, short
, int
आणि long
.
प्रकार | बाइट्स मध्ये आकार | प्रकाराच्या नावाचे मूळ |
---|---|---|
byte |
1 |
बिटमध्ये गोंधळ होऊ नये म्हणून बाइट हे चाव्याचे मुद्दाम रिस्पेलिंग आहे |
short |
2 |
लहान पूर्णांक साठी लहान |
int |
4 |
पूर्णांक साठी लहान |
long |
8 |
दीर्घ पूर्णांकासाठी लहान |
याव्यतिरिक्त, Java मध्ये वास्तविक संख्यांसाठी 2 प्रकार आहेत: फ्लोट आणि दुहेरी:
प्रकार | बाइट्स मध्ये आकार | प्रकाराच्या नावाचे मूळ |
---|---|---|
float |
4 |
फ्लोटिंग पॉइंट नंबरसाठी लहान |
double |
8 |
डबल फ्लोट साठी लहान |
प्रत्येक वेळी जेव्हा प्रोग्राम एक्झिक्युशन व्हेरिएबल तयार करण्यासाठी कमांडवर पोहोचते तेव्हा त्यासाठी मेमरीचा एक छोटा ब्लॉक वाटप केला जातो (आकार व्हेरिएबलच्या प्रकारावर अवलंबून असतो).
Java प्रोग्राम्सना मेमरीमध्ये थेट प्रवेश करण्याची परवानगी नाही. मेमरीसह कोणतेही आणि सर्व कार्य फक्त Java व्हर्च्युअल मशीनद्वारे होते.
3. String
मेमरीमधील प्रकार
हा String
प्रकार मोठ्या प्रमाणात डेटा संचयित करू शकतो, ज्याचा अर्थ असा आहे की तो केवळ डेटा प्रकार नाही तर संपूर्ण श्रेणी आहे.
ऑब्जेक्ट String
मेमरीच्या वाटप केलेल्या ब्लॉकमध्ये ठेवला जातो जो मेमरीच्या दुसर्या ब्लॉकचा पत्ता संग्रहित करतो ज्यामध्ये मजकूर संग्रहित केला जातो.
व्हेरिएबल बाइट्स int
a
व्यापते 4
आणि मूल्य संग्रहित करते 1
.
व्हेरिएबल बाइट्स int
b
व्यापते 4
आणि मूल्य संग्रहित करते 10,555
. आम्ही हजार विभाजक म्हणून स्वल्पविराम वापरतो. आणि आपण दशांश विभाजक म्हणून कालावधी वापरतो.
व्हेरिएबल बाइट्स double
d
व्यापते 8
आणि मूल्य संग्रहित करते 13.001
.
व्हेरिएबल बाइट्स String
str
व्यापते 4
आणि मूल्य संचयित करते G13
, जो मजकूर असलेल्या मेमरी ब्लॉकच्या पहिल्या सेलचा पत्ता आहे.
चा मजकूर String
object
मेमरीच्या वेगळ्या ब्लॉकमध्ये संग्रहित केला जातो. त्याच्या पहिल्या सेलचा पत्ता व्हेरिएबलमध्ये संग्रहित केला जातो str
.
4. प्रोग्रामिंगमध्ये क्रमांकन शून्याने का सुरू होते
लोकांना सहसा आश्चर्य वाटते की प्रोग्रामर जवळजवळ नेहमीच शून्य पासून मोजणे का सुरू करतात. बरं, वस्तुस्थिती अशी आहे की अशा अनेक परिस्थिती आहेत जेव्हा शून्यातून मोजणे अधिक सोयीचे असते (अर्थात, अशाही परिस्थिती असतात जेव्हा वरून मोजणे अधिक सोयीचे असते 1
).
सर्वात सोपा उदाहरण म्हणजे मेमरी अॅड्रेसिंग. जर तुमच्या व्हेरिएबलला 4
मेमरीचे बाइट्स वाटप केले गेले असतील आणि तुम्हाला माहित असेल की तो X
पहिल्या बाइटचा पत्ता आहे, तर प्रत्येक बाइटचे पत्ते कोणते आहेत? , , , . तितके सोपे, आमच्याकडे बाइट्सचा एक गट आहे ज्यात निर्देशांकांसह प्रवेश केला जाऊ शकतो , , .X+0
X+1
X+2
X+3
0
1
2
3
जेव्हा आपण डेटा ब्लॉकमधील सापेक्ष पत्त्याचा विचार करतो, तेव्हा शून्यातून अनुक्रमणिका करणे अर्थपूर्ण आहे. शून्यातून मोजण्याचे हे मुख्य कारण आहे .
GO TO FULL VERSION