జావాలో మెమరీ కేటాయింపు అంటే ఏమిటి? స్టాక్ మరియు హీప్ మెమరీ



'జావాలో మెమరీ కేటాయింపు' ఆధారంగా ఈ ఆర్టికల్ మీకు స్టాక్ మరియు హీప్ డేటా స్ట్రక్చర్లతో పాటు మెమరీ కేటాయింపు గురించి వివరణాత్మక జ్ఞానం లభిస్తుంది.

మెమరీ కేటాయింపు కంప్యూటర్ ప్రోగ్రామ్‌లు మరియు సేవలను భౌతిక లేదా వర్చువల్‌తో కేటాయించే ప్రక్రియ మెమరీ స్థలం. ఈ వ్యాసంలో, లో మెమరీ కేటాయింపు గురించి తెలుసుకుందాం మరియు మేము స్టాక్ మరియు హీప్ మెమరీ గురించి చర్చిస్తాము.

స్టాక్ మెమరీ అంటే ఏమిటి?

థ్రెడ్ అమలు కోసం జావా స్టాక్ మెమరీ ఉపయోగించబడుతుంది. అవి పద్ధతి-నిర్దిష్ట విలువలను కలిగి ఉంటాయి, అవి స్వల్పకాలికమైనవి మరియు కుప్పలోని ఇతర వస్తువుల సూచనలు పద్ధతి నుండి సూచించబడతాయి.





స్టాక్ మెమరీ ఎల్లప్పుడూ లో సూచించబడుతుంది LIFO (లాస్ట్-ఇన్-ఫస్ట్-అవుట్) ఆర్డర్. ఒక పద్ధతిని ప్రారంభించినప్పుడల్లా, స్థానిక ఆదిమ విలువలను మరియు పద్ధతిలో ఇతర వస్తువులను సూచించే పద్ధతి కోసం స్టాక్ మెమరీలో కొత్త బ్లాక్ సృష్టించబడుతుంది.

పద్ధతి ముగిసిన వెంటనే, బ్లాక్ ఉపయోగించబడదు మరియు తదుపరి పద్ధతికి అందుబాటులో ఉంటుంది.



జావా కాస్ట్ డబుల్ టు పూర్ణాంకానికి

హీప్ మెమరీతో పోలిస్తే స్టాక్ మెమరీ పరిమాణం చాలా తక్కువ.

స్టాక్ మెమరీ యొక్క ముఖ్య లక్షణాలు

మేము ఇప్పటివరకు చర్చించినవి కాకుండా, కొన్ని ఇతర లక్షణాలు క్రిందివి స్టాక్ మెమరీ:

  • కొత్త పద్ధతులను వరుసగా పిలుస్తారు మరియు తిరిగి ఇవ్వడంతో ఇది పెరుగుతుంది మరియు తగ్గిపోతుంది
  • వాటిని సృష్టించిన పద్ధతి నడుస్తున్నంత కాలం మాత్రమే స్టాక్ లోపల వేరియబుల్స్ ఉంటాయి
  • ఇది స్వయంచాలకంగా పద్ధతి అమలు పూర్తయినప్పుడు కేటాయించబడింది మరియు డీలోకేట్ చేయబడింది
  • ఈ మెమరీ నిండి ఉంటే, జావా విసురుతాడు 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), పోల్చినప్పుడు స్టాక్ మెమరీ చాలా వేగంగా ఉంటుందికుప్ప మెమరీ.

పోలిక చార్ట్

పారామీటర్ స్టాక్ కుప్ప
ప్రాథమిక మెమరీ ఒక వరుస బ్లాక్‌లో కేటాయించబడిందిమెమరీని రాండమ్ ఆర్డర్‌లో కేటాయించారు
కేటాయింపు మరియు డీలోకేషన్ కంపైలర్ ద్వారా ఆటోమేటిక్ప్రోగ్రామర్ చేత మాన్యువల్
ధర తక్కువమరింత
అమలు హార్డ్సులభం
ప్రాప్యత సమయం వేగంగానెమ్మదిగా
ప్రధాన ఇష్యూ జ్ఞాపకశక్తి కొరతమెమరీ ఫ్రాగ్మెంటేషన్
తేడా యొక్క ప్రాంతం అద్భుతమైనతగినంత
వశ్యత స్థిర ధరపున izing పరిమాణం సాధ్యమే

దీనితో, మేము ఈ “జావాలో మెమరీ కేటాయింపు” ట్యుటోరియల్ ముగింపుకు వచ్చాము. కొన్ని నిజ-సమయ ఉదాహరణల ద్వారా మీరు భావన మరియు దాని అమలును అర్థం చేసుకున్నారని నేను ఆశిస్తున్నాను.

ఇప్పుడు మీరు అర్థం చేసుకున్నారుజావాలో మెమరీ కేటాయింపుఈ “జావాలో మెమరీ కేటాయింపు” వ్యాసం ద్వారా ప్రాథమిక అంశాలు చూడండి ప్రపంచవ్యాప్తంగా 250,000 కంటే ఎక్కువ సంతృప్తికరమైన అభ్యాసకుల నెట్‌వర్క్‌తో విశ్వసనీయ ఆన్‌లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత. ఎడురేకా యొక్క జావా J2EE మరియు SOA శిక్షణ మరియు ధృవీకరణ కోర్సులు జావా డెవలపర్‌గా ఉండాలనుకునే విద్యార్థులు మరియు నిపుణుల కోసం రూపొందించబడ్డాయి. ఈ కోర్సు మీకు జావా ప్రోగ్రామింగ్‌లోకి రావడానికి మరియు హైబర్నేట్ & వంటి వివిధ జావా ఫ్రేమ్‌వర్క్‌లతో పాటు కోర్ మరియు అడ్వాన్స్‌డ్ జావా కాన్సెప్ట్‌ల కోసం మీకు శిక్షణ ఇవ్వడానికి రూపొందించబడింది. వసంత .

మాకు ప్రశ్న ఉందా? ఈ “జావాలో మెమరీ కేటాయింపు” బ్లాగులోని వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు మేము వీలైనంత త్వరగా మిమ్మల్ని సంప్రదిస్తాము.