ஜாவாவில் நினைவக ஒதுக்கீடு என்றால் என்ன? அடுக்கு மற்றும் குவியல் நினைவகம்

'ஜாவாவில் நினைவக ஒதுக்கீடு' அடிப்படையிலான இந்த கட்டுரை, ஸ்டேக் மற்றும் ஹீப் தரவு கட்டமைப்புகளுடன் நினைவக ஒதுக்கீடு குறித்த விரிவான அறிவைப் பெற உதவும்.

நினைவக ஒதுக்கீடு கணினி நிரல்கள் மற்றும் சேவைகள் உடல் அல்லது மெய்நிகர் மூலம் ஒதுக்கப்படும் ஒரு செயல்முறையாகும் நினைவு இடம். இந்த கட்டுரையில், நினைவக ஒதுக்கீட்டைப் பற்றி அறிந்து கொள்வோம் மேலும் ஸ்டேக் மற்றும் ஹீப் மெமரி பற்றி விவாதிப்போம்.

ஸ்டேக் மெமரி என்றால் என்ன?

ஜாவா ஸ்டேக் நினைவகம் ஒரு நூலை இயக்க பயன்படுகிறது. அவை முறை-குறிப்பிட்ட மதிப்புகளைக் கொண்டிருக்கின்றன, அவை குறுகிய காலமாக இருக்கின்றன, மேலும் குவியலில் உள்ள பிற பொருள்களின் குறிப்புகள் முறையிலிருந்து குறிப்பிடப்படுகின்றன.



அடுக்கு நினைவகம் எப்போதும் குறிப்பிடப்படுகிறது LIFO (கடைசியாக முதல்-வெளியே) ஆர்டர். ஒரு முறை செயல்படுத்தப்படும்போதெல்லாம், உள்ளூர் பழமையான மதிப்புகளை வைத்திருப்பதற்கான முறைக்காக ஸ்டாக் நினைவகத்தில் ஒரு புதிய தொகுதி உருவாக்கப்படுகிறது மற்றும் முறைமையில் உள்ள பிற பொருள்களைக் குறிக்கிறது.

முறை முடிந்தவுடன், தொகுதி பயன்படுத்தப்படாதது மற்றும் அடுத்த முறைக்கு கிடைக்கும்.

HTML இல் உள்ள ஸ்பான் டேக் என்ன?

ஹீப் மெமரியுடன் ஒப்பிடும்போது ஸ்டேக் மெமரி அளவு மிகவும் குறைவு.

அடுக்கு நினைவகத்தின் முக்கிய அம்சங்கள்

இதுவரை நாங்கள் விவாதித்ததைத் தவிர, வேறு சில அம்சங்கள் பின்வருமாறு அடுக்கு நினைவு:

  • புதிய முறைகள் முறையே அழைக்கப்பட்டு திரும்புவதால் இது வளர்ந்து சுருங்குகிறது
  • அவற்றை உருவாக்கிய முறை இயங்கும் வரை மட்டுமே ஸ்டேக்கிற்குள் உள்ள மாறிகள் இருக்கும்
  • அதன் தானாக முறை செயல்படுத்தலை முடிக்கும்போது ஒதுக்கப்பட்ட மற்றும் ஒதுக்கப்பட்டுள்ளது
  • இந்த நினைவகம் நிரம்பியிருந்தால், ஜாவா வீசுகிறது java.lang.StackOverFlowError
  • இந்த நினைவகத்திற்கான அணுகல் வேகமாக குவியல் நினைவகத்துடன் ஒப்பிடும்போது
  • இந்த நினைவகம் நூல்-பாதுகாப்பானது ஒவ்வொரு நூலும் அதன் சொந்த அடுக்கில் இயங்குகிறது

அடுக்கு வகுப்பில் முறைகள்

  • பொருள் மிகுதி ( பொருள் உறுப்பு ): அடுக்கின் மேற்புறத்தில் ஒரு உறுப்பை தள்ளுகிறது.
  • பொருள் பாப் (): அடுக்கின் மேல் உறுப்பை அகற்றி திருப்பித் தருகிறது. ஒரு ‘காலியான ஸ்டாக் எக்ஸ்செப்ஷன்’ தூண்டுதல் அடுக்கு காலியாக இருக்கும்போது பாப் () என்று அழைத்தால் விதிவிலக்கு வீசப்படும்.
  • பொருள் பார்வை (): அடுக்கின் மேற்புறத்தில் உள்ள உறுப்பை வழங்குகிறது, ஆனால் அதை அகற்றாது.
  • பூலியன் வெற்று (): எதுவும் அடுக்கின் மேல் இல்லாவிட்டால் அது உண்மைக்குத் திரும்பும். வேறு, பொய்யைத் தருகிறது.
  • முழு தேடல் ( பொருள் உறுப்பு ): ஒரு பொருள் அடுக்கில் இருக்கிறதா என்பதை இது தீர்மானிக்கிறது. உறுப்பு காணப்பட்டால், அது அடுக்கின் மேலிருந்து உறுப்பின் நிலையை வழங்குகிறது. வேறு, அது -1 ஐ வழங்குகிறது.

ஸ்டேக் செயல்படுத்த ஜாவா குறியீடு

இறக்குமதி java.io. * இறக்குமதி java.util. * வகுப்பு சோதனை {நிலையான வெற்றிட ஸ்டாக்_புஷ் (ஸ்டேக் ஸ்டேக்) {(int i = 0 i<5 i++){ stack.push(i) } } static void stack_pop(Stack stack){ System.out.println('Pop :') for(int i = 0 i < 5 i++){ Integer y = (Integer) stack.pop() System.out.println(y) } } static void stack_peek(Stack stack){ Integer element = (Integer) stack.peek() System.out.println('Element on stack top : ' + element) } static void stack_search(Stack stack, int element){ Integer pos = (Integer) stack.search(element) if(pos == -1) System.out.println('Element not found') else System.out.println('Element is found at position ' + pos) } public static void main (String[] args){ Stack stack = new Stack() stack_push(stack) stack_pop(stack) stack_push(stack) stack_peek(stack) stack_search(stack, 2) stack_search(stack, 6) } } 

// வெளியீடு

memory-allocation-in-java

இப்போது, ​​ஹீப் ஸ்பேஸுக்குள் செல்வோம்.

ஜாவாவில் குவியல் இடம்

புரோகிராமர்களால் எழுதப்பட்ட வழிமுறைகளை செயல்படுத்தும்போது நினைவகம் ஒதுக்கப்படுகிறது. குவியல் என்ற பெயருக்கு குவியல் தரவு கட்டமைப்போடு எந்த தொடர்பும் இல்லை என்பதை நினைவில் கொள்க. இது புரோகிராமர்களுக்கு கிடைக்கக்கூடிய நினைவக இடத்தின் குவியல் என்பதால் இது குவியல் என்று அழைக்கப்படுகிறது ஒதுக்கப்பட்டுள்ளது மற்றும் ஒதுக்கீடு. ஒரு புரோகிராமர் இந்த நினைவகத்தை நன்றாகக் கையாளவில்லை என்றால், ஒரு நினைவக கசிவு முடியும்நிரலில் நடக்கும்.

ஜாவா ஹீப் மெமரியின் முக்கிய அம்சங்கள்

  • நாங்கள் இதுவரை விவாதித்ததைத் தவிர, குவியல் இடத்தின் வேறு சில அம்சங்கள் பின்வருமாறு:
  • சிக்கலான நினைவக மேலாண்மை நுட்பங்கள் வழியாக இது அணுகப்படுகிறது இளம் தலைமுறை, பழையது அல்லது பதவியில் உள்ள தலைமுறை, மற்றும் நிரந்தர தலைமுறை
  • குவியல் இடம் நிரம்பியிருந்தால், ஜாவா வீசுகிறது java.lang.OutOfMemoryError
  • இந்த நினைவகத்திற்கான அணுகல் ஸ்டாக் நினைவகத்தை விட மெதுவாக உள்ளது
  • இந்த நினைவகம், அடுக்கிற்கு மாறாக, தானாக ஒதுக்கப்படாது. அதற்கு தேவை குப்பை சேகரிப்பவர் நினைவக பயன்பாட்டின் செயல்திறனை வைத்திருக்க பயன்படுத்தப்படாத பொருட்களை விடுவிக்க
  • அடுக்கைப் போலன்றி, ஒரு குவியல் இல்லை நூல்-பாதுகாப்பானது குறியீட்டை சரியாக ஒத்திசைப்பதன் மூலம் பாதுகாக்க வேண்டும்

ஜாவா ஹீப் ஸ்பேஸ் மற்றும் ஸ்டேக் மெமரி இடையே வேறுபாடு

மேற்கண்ட விளக்கங்களின் அடிப்படையில், இடையிலான பின்வரும் வேறுபாடுகளை நாம் எளிதாக முடிவுக்கு கொண்டு வர முடியும் குவியல் மற்றும் அடுக்கு நினைவு.

  • குவியல் பயன்பாட்டின் அனைத்து பகுதிகளிலும் நினைவகம் பயன்படுத்தப்படுகிறது, அதே சமயம் ஸ்டாக் நினைவகம் ஒரு நூல் மரணதண்டனையால் மட்டுமே பயன்படுத்தப்படுகிறது.
  • ஒரு பொருள் உருவாக்கப்படும் போதெல்லாம், அது எப்போதும் குவியல் இடத்தில் சேமிக்கப்படும் மற்றும் ஸ்டேக் மெமரி அதைக் குறிக்கும். அடுக்கு நினைவகம் மட்டுமே உள்ளது உள்ளூர் பழமையான மாறிகள் மற்றும் குறிப்பு மாறிகள் குவியல் இடத்தில் உள்ள பொருட்களுக்கு.
  • குவியலில் சேமிக்கப்பட்ட பொருள்கள் உலகளவில் அணுகக்கூடியவை, அதேசமயம் ஸ்டாக் நினைவகத்தை மற்ற நூல்களால் அணுக முடியாது.
  • அடுக்கில் நினைவக மேலாண்மை a இல் செய்யப்படுகிறது LIFO குவியல் நினைவகத்தில் இது மிகவும் சிக்கலானது, ஏனெனில் இது உலகளவில் பயன்படுத்தப்படுகிறது. குவியல் நினைவகம் பிரிக்கப்பட்டுள்ளது இளம் தலைமுறை, பழைய தலைமுறை போன்றவை, ஜாவா குப்பை சேகரிப்பில் கூடுதல் விவரங்கள்.
  • அடுக்கு நினைவகம் குறுகிய காலம் அதேசமயம், குவியல் நினைவகம் தொடக்கத்திலிருந்து பயன்பாட்டு செயல்படுத்தலின் இறுதி வரை வாழ்கிறது.
  • நாம் பயன்படுத்தலாம் -எக்ஸ்எம்எக்ஸ் மற்றும் -எக்ஸ்எம்எஸ் தொடக்க அளவு மற்றும் குவியல் நினைவகத்தின் அதிகபட்ச அளவை வரையறுக்க JVM விருப்பம். நாம் பயன்படுத்தலாம் -எக்ஸ்எஸ்எஸ் ஸ்டாக் மெமரி அளவை வரையறுக்க.
  • ஸ்டேக் மெமரி நிரம்பும்போது, ​​ஜாவா இயக்க நேரம் வீசுகிறது java.lang.StackOverFlowError குவியல் நினைவகம் நிரம்பியிருந்தால், அது வீசுகிறது java.lang.OutOfMemoryError: ஜாவா ஹீப் ஸ்பேஸ்பிழை.
  • ஹீப் மெமரியுடன் ஒப்பிடும்போது ஸ்டேக் மெமரி அளவு மிகவும் குறைவு. நினைவக ஒதுக்கீட்டில் எளிமை இருப்பதால் (LIFO), ஒப்பிடும்போது ஸ்டாக் நினைவகம் மிக வேகமாக இருக்கும்குவியல் நினைவகம்.

ஒப்பீட்டு விளக்கப்படம்

PARAMETER அடுக்கு குவியல்
அடிப்படை நினைவகம் ஒரு தொடர்ச்சியான தொகுதியில் ஒதுக்கப்பட்டுள்ளதுநினைவகம் ஒரு சீரற்ற வரிசையில் ஒதுக்கப்பட்டுள்ளது
ஒதுக்கீடு மற்றும் ஒதுக்கீடு கம்பைலர் மூலம் தானியங்கிபுரோகிராமர் கையேடு
செலவு குறைவாகமேலும்
செயல்படுத்தல் கடினமானதுசுலபம்
அணுகல் நேரம் வேகமாகமெதுவாக
முக்கிய வெளியீடு நினைவக பற்றாக்குறைநினைவக துண்டு துண்டாக
வித்தியாசத்தின் இடம் அருமைபோதுமானது
வளைந்து கொடுக்கும் தன்மை நிலையான விகிதம்மறுஅளவிடுதல் சாத்தியமாகும்

இதன் மூலம், இந்த “ஜாவாவில் நினைவக ஒதுக்கீடு” டுடோரியலின் முடிவுக்கு வருகிறோம். சில நிகழ்நேர எடுத்துக்காட்டுகள் மூலம் நீங்கள் கருத்தையும் அதன் செயல்பாட்டையும் புரிந்து கொண்டீர்கள் என்று நம்புகிறேன்.

இப்போது நீங்கள் புரிந்து கொண்டீர்கள்ஜாவாவில் நினைவக ஒதுக்கீடுஇந்த “ஜாவாவில் நினைவக ஒதுக்கீடு” கட்டுரையின் மூலம் அடிப்படைகள் பாருங்கள் உலகெங்கிலும் பரவியுள்ள 250,000 க்கும் மேற்பட்ட திருப்தியான கற்றவர்களின் வலைப்பின்னலுடன் நம்பகமான ஆன்லைன் கற்றல் நிறுவனமான எடுரேகாவால். ஜுவா டெவலப்பராக விரும்பும் மாணவர்கள் மற்றும் தொழில் வல்லுநர்களுக்காக எடுரேகாவின் ஜாவா ஜே 2 இஇ மற்றும் எஸ்ஓஏ பயிற்சி மற்றும் சான்றிதழ் படிப்புகள் வடிவமைக்கப்பட்டுள்ளன. ஜாவா புரோகிராமிங்கில் ஒரு தொடக்கத்தைத் தருவதற்கும், முக்கிய மற்றும் மேம்பட்ட ஜாவா கருத்தாக்கங்களுக்கும், ஹைபர்னேட் & வசந்த .

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? இந்த “ஜாவாவில் நினைவக ஒதுக்கீடு” வலைப்பதிவின் கருத்துகள் பிரிவில் இதைக் குறிப்பிடுங்கள், விரைவில் நாங்கள் உங்களைத் தொடர்புகொள்வோம்.