CodeGym/Java Course/தொகுதி 3/ஜேவிஎம்மில் நினைவகம்

ஜேவிஎம்மில் நினைவகம்

கிடைக்கப்பெறுகிறது

ஜேவிஎம்மில் நினைவாற்றலைப் புரிந்துகொள்வது

உங்களுக்கு ஏற்கனவே தெரியும், JVM தனக்குள்ளேயே ஜாவா நிரல்களை இயக்குகிறது. எந்த மெய்நிகர் இயந்திரத்தைப் போலவே, இது அதன் சொந்த நினைவக அமைப்பு அமைப்பைக் கொண்டுள்ளது.

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

ஜேவிஎம்மில் நினைவாற்றலைப் புரிந்துகொள்வது

முக்கியமான! அசல் ஜாவா மாதிரி போதுமானதாக இல்லை, எனவே இது ஜாவா 1.5 இல் திருத்தப்பட்டது. இந்த பதிப்பு இன்றுவரை பயன்படுத்தப்படுகிறது (ஜாவா 14+).

நூல் அடுக்கு

JVM உள்நாட்டில் பயன்படுத்தப்படும் ஜாவா நினைவக மாதிரி நினைவகத்தை நூல் அடுக்குகளாகவும் குவியல்களாகவும் பிரிக்கிறது. ஜாவா நினைவக மாதிரியைப் பார்ப்போம், தர்க்கரீதியாக தொகுதிகளாக பிரிக்கப்பட்டுள்ளது:

நூல் அடுக்கு

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

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

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

குவியல்

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

அழைப்பு அடுக்கு மற்றும் உள்ளூர் மாறிகள் (அவை அடுக்குகளில் சேமிக்கப்படுகின்றன) அத்துடன் பொருள்கள் (அவை குவியலில் சேமிக்கப்படுகின்றன) ஆகியவற்றை விளக்கும் ஒரு வரைபடம் கீழே உள்ளது:

குவியல்

உள்ளூர் மாறி ஒரு பழமையான வகையாக இருந்தால், அது நூலின் அடுக்கில் சேமிக்கப்படும்.

ஒரு உள்ளூர் மாறி ஒரு பொருளின் குறிப்பாகவும் இருக்கலாம். இந்த வழக்கில், குறிப்பு (உள்ளூர் மாறி) நூல் அடுக்கில் சேமிக்கப்படுகிறது, ஆனால் பொருள் குவியலில் சேமிக்கப்படுகிறது.

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

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

நிலையான வகுப்பு மாறிகள் வர்க்க வரையறையுடன் குவியலில் சேமிக்கப்படுகின்றன.

பொருள்களுடன் தொடர்பு

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

பொருள்களுடன் தொடர்பு (குவியல்)

இரண்டு நூல்கள் உள்ளூர் மாறிகளின் தொகுப்பைக் கொண்டுள்ளன.உள்ளூர் மாறி 2குவியல் மீது பகிரப்பட்ட பொருளை சுட்டிக்காட்டுகிறது (பொருள் 3) ஒவ்வொரு திரிக்கும் அதன் சொந்த குறிப்புடன் உள்ளூர் மாறியின் சொந்த நகல் உள்ளது. அவற்றின் குறிப்புகள் உள்ளூர் மாறிகள் மற்றும் எனவே நூல் அடுக்குகளில் சேமிக்கப்படுகின்றன. இருப்பினும், குவியல் மீது ஒரே பொருளை இரண்டு வெவ்வேறு குறிப்புகள் சுட்டிக்காட்டுகின்றன.

பொது என்பதை கவனத்தில் கொள்ளவும்பொருள் 3இணைப்புகள் உள்ளனபொருள் 2மற்றும்பொருள் 4உறுப்பினர் மாறிகளாக (அம்புகளால் காட்டப்பட்டுள்ளது). இந்த இணைப்புகள் மூலம், இரண்டு இழைகளை அணுகலாம்பொருள் 2மற்றும்பொருள்4.

வரைபடம் ஒரு உள்ளூர் மாறியையும் காட்டுகிறது (உள்ளூர் மாறி 1இரண்டு முறையிலிருந்து ) . அதன் ஒவ்வொரு பிரதியும் இரண்டு வெவ்வேறு பொருட்களைக் குறிக்கும் வெவ்வேறு குறிப்புகளைக் கொண்டுள்ளது (பொருள் 1மற்றும்பொருள் 5) மற்றும் அதே ஒன்று அல்ல. கோட்பாட்டளவில், இரண்டு இழைகளும் இரண்டையும் அணுகலாம்பொருள் 1, அதனால்பொருள் 5இந்த இரண்டு பொருள்களையும் பற்றிய குறிப்புகள் இருந்தால். ஆனால் மேலே உள்ள வரைபடத்தில், ஒவ்வொரு திரிக்கும் இரண்டு பொருள்களில் ஒன்றை மட்டுமே குறிப்பிடுகிறது.

பொருள்களுடனான தொடர்புக்கான எடுத்துக்காட்டு

குறியீட்டில் வேலையை எவ்வாறு நிரூபிக்கலாம் என்பதைப் பார்ப்போம்:

public class MySomeRunnable implements Runnable() {

    public void run() {
        one();
    }

    public void one() {
        int localOne = 1;

        Shared localTwo = Shared.instance;

        //... do something with local variables

        two();
    }

    public void two() {
        Integer localOne = 2;

        //... do something with local variables
    }
}
public class Shared {

    // store an instance of our object in a variable

    public static final Shared instance = new Shared();

    // member variables pointing to two objects on the heap

    public Integer object2 = new Integer(22);
    public Integer object4 = new Integer(44);
}

ரன்() முறை ஒன்று() முறையை அழைக்கிறது , மேலும் ஒன்று() இரண்டை() என்று அழைக்கிறது .

ஒரு() முறை ஒரு பழமையான உள்ளூர் மாறியை அறிவிக்கிறது (உள்ளூர் ஒன்று) வகை int மற்றும் ஒரு உள்ளூர் மாறி (உள்ளூர் இரண்டு), இது ஒரு பொருளைப் பற்றிய குறிப்பு.

ஒன்() முறையை இயக்கும் ஒவ்வொரு நூலும் அதன் சொந்த நகலை உருவாக்கும்உள்ளூர் ஒன்றுமற்றும்உள்ளூர் இரண்டுஉங்கள் அடுக்கில். மாறிகள்உள்ளூர் ஒன்றுஒவ்வொரு நூலின் அடுக்கில் இருப்பதும், ஒருவருக்கொருவர் முற்றிலும் பிரிக்கப்படும். ஒரு நூல் அதன் பிரதியில் மற்றொரு நூல் என்ன மாற்றங்களைச் செய்கிறது என்பதைப் பார்க்க முடியாதுஉள்ளூர் ஒன்று.

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

எனவே இரண்டு பிரதிகள்உள்ளூர் இரண்டுஅதே பகிரப்பட்ட நிகழ்வை சுட்டிக்காட்டி முடிக்கவும் . பகிரப்பட்ட நிகழ்வும் குவியலில் சேமிக்கப்படுகிறது. இது பொருந்துகிறதுபொருள் 3மேலே உள்ள வரைபடத்தில்.

பகிரப்பட்ட வகுப்பில் இரண்டு உறுப்பினர் மாறிகள் உள்ளன என்பதை நினைவில் கொள்ளவும் . உறுப்பினர் மாறிகள் பொருளுடன் குவியலில் சேமிக்கப்படுகின்றன. இரண்டு உறுப்பினர் மாறிகள் மற்ற இரண்டு பொருட்களை சுட்டிக்காட்டுகின்றனமுழு. இந்த முழு எண் பொருள்கள் ஒத்திருக்கும்பொருள் 2மற்றும்பொருள் 4வரைபடத்தில்.

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

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

கருத்துக்கள்
  • பிரபலமானவை
  • புதியவை
  • பழையவை
ஒரு கருத்தைத் தெரிவிக்க நீங்கள் உள்நுழைந்திருக்க வேண்டும்
இந்தப் பக்கத்தில் இதுவரை எந்தக் கருத்தும் வழங்கப்படவில்லை