ஜாவாவில் கிளாஸ்லோடருக்கு என்ன பங்கு?



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

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

இந்த கட்டுரையில் பின்வரும் தலைப்புகள் விவரிக்கப்படும்:





  1. கிளாஸ்லோடர் என்றால் என்ன?
  2. கிளாஸ்லோடரின் வகைகள்
  3. கிளாஸ்லோடரின் கோட்பாடுகள்
  4. கிளாஸ்லோடரின் முறைகள்
  5. தனிப்பயன் கிளாஸ்லோடர்

தொடங்குவோம்!

ஜாவாவில் கிளாஸ்லோடர் என்றால் என்ன?

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



இப்போது, ​​ஜாவாவில் உள்ள பல்வேறு வகையான உள்ளமைக்கப்பட்ட கிளாஸ்லோடர்களைப் புரிந்துகொள்வோம்.

ஜாவாவில் கிளாஸ்லோடரின் வகைகள்

ஜாவாவில் உள்ள பல்வேறு வகையான கிளாஸ்லோடர்கள் பின்வருமாறு:

அவை ஒவ்வொன்றையும் ஒவ்வொன்றாக விவாதிப்போம்.



நீட்டிப்பு கிளாஸ்லோடர்

பெயர் குறிப்பிடுவது போல, நீட்டிப்பு கிளாஸ்லோடர் முக்கிய ஜாவா வகுப்புகளின் நீட்டிப்புகளை ஏற்றும் ஜே.டி.கே. நீட்டிப்பு நூலகம். இது பூட்ஸ்டார்ப் கிளாஸ்லோடரின் குழந்தை மற்றும் JRE / lib / text அடைவு அல்லது java.ext.dirs கணினி சொத்தில் குறிப்பிடப்பட்டுள்ள வேறு எந்த கோப்பகத்திலிருந்தும் நீட்டிப்புகளை ஏற்றுகிறது.

பயன்பாடு அல்லது கணினி கிளாஸ்லோடர்

பயன்பாடு அல்லது கணினி கிளாஸ்லோடர் நீட்டிப்பு வகுப்பு ஏற்றியின் குழந்தை. இந்த வகை கிளாஸ்லோடர் -cp கட்டளை-வரி விருப்பத்தில் காணப்படும் அனைத்து பயன்பாட்டு நிலை வகுப்புகளையும் ஏற்றுகிறது அல்லது CLASSPATH சூழல் மாறியை எண்ணுகிறது.

ஜாவாவில் ஒரு சக்திக்கு எதையாவது உயர்த்துவது எப்படி

பூட்ஸ்டார்ப் கிளாஸ்லோடர்

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

குறிப்பு: பூட்ஸ்டார்பின் முன்னுரிமை நீட்டிப்பை விட அதிகமாக உள்ளது, மேலும் நீட்டிப்பு கிளாஸ்லோடருக்கு வழங்கப்படும் முன்னுரிமை பயன்பாட்டு கிளாஸ்லோடரை விட அதிகமாக உள்ளது. கீழே உள்ள படத்தைப் பார்க்கவும்:

கிளாஸ்லோடரின் வகைகள் - ஜாவாவில் கிளாஸ்லோடர் - எடுரேகா

இந்த கட்டுரையில் அடுத்து, கிளாஸ்லோடர் செயல்படும் கொள்கைகளைப் புரிந்துகொள்வோம்.

லினக்ஸ் நிர்வாகி பாத்திரங்கள் மற்றும் பொறுப்புகள்

ஜாவாவில் கிளாஸ்லோடரின் கோட்பாடுகள்

ஜாவா கிளாஸ்லோடர் செயல்படும் விதிகளின் தொகுப்பு பின்வரும் மூன்று கொள்கைகள்:

அவை ஒவ்வொன்றையும் புரிந்துகொள்வோம்.

தனித்துவ சொத்து

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

பிரதிநிதித்துவ மாதிரி

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

கிளாஸ்லோடர் செயல்படும் செயல்பாடுகளின் தொகுப்பு பின்வருமாறு:

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

கீழே உள்ள படத்தைப் பார்க்கவும்.

தெரிவுநிலை கொள்கை

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

எடுத்துக்காட்டாக, எங்களுக்கு இரண்டு வகுப்புகள் இருந்தால்: A & B, வகுப்பு A ஐ பயன்பாட்டு வகுப்பு ஏற்றி ஏற்றுவதாகவும், வகுப்பு B நீட்டிப்புகள் வகுப்பு ஏற்றி ஏற்றப்படும் என்றும் கருதுங்கள். இங்கே, ஏ மற்றும் பி வகுப்புகள் பயன்பாட்டு கிளாஸ்லோடரால் ஏற்றப்பட்ட அனைத்து வகுப்புகளுக்கும் தெரியும், ஆனால் வகுப்பு பி நீட்டிப்பு கிளாஸ்லோடரால் ஏற்றப்பட்ட வகுப்புகளுக்கு மட்டுமே தெரியும்.

மேலும், பூட்ஸ்டார்ப் கிளாஸ்லோடரைப் பயன்படுத்தி இந்த வகுப்புகளை ஏற்ற முயற்சித்தால், நீங்கள் பார்ப்பீர்கள் java.lang.ClassNotFoundException . விதிவிலக்கு.

சரி, இப்போது கிளாஸ்லோடர்களின் வகைகள் மற்றும் அதன் பின்னால் உள்ள கொள்கைகளை நீங்கள் அறிந்திருக்கிறீர்கள், சில முக்கியமான முறைகளைப் பார்ப்போம்இருந்து java.lang.ClassLoader வர்க்கம்.

ஜாவாவில் கிளாஸ்லோடரின் முறைகள்

சில அத்தியாவசியமானவை கிளாஸ்லோடரின் பின்வருமாறு:

loadClass (சரம் பெயர், பூலியன் தீர்க்க)

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

அறிவிப்பு:

பொது வகுப்பு சுமை கிளாஸ் (சரம் பெயர், பூலியன் தீர்க்க) ClassNotFoundException rows ஐ வீசுகிறது

defineClass ()

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

அறிவிப்பு:

பாதுகாக்கப்பட்ட இறுதி வகுப்பு வரையறை வகுப்பு (சரம் பெயர், பைட் [] பி, இன்ட் ஆஃப், இன்ட் லென்) கிளாஸ்ஃபார்மேட் எர்ரரை வீசுகிறது

findClass (சரம் பெயர்)

குறிப்பிட்ட வகுப்பைக் கண்டுபிடிக்க findClass முறை பயன்படுத்தப்படுகிறது. எனவே, இது ஒரு முழு தகுதி வாய்ந்த பெயருடன் ஒரு அளவுருவாக வகுப்பைக் காண்கிறது, ஆனால் வகுப்பை ஏற்றாது. பெற்றோர் கிளாஸ்லோடர் கோரிய வகுப்பைக் கண்டுபிடிக்க முடியாவிட்டால், லோட் கிளாஸ் () முறை இந்த முறையைப் பயன்படுத்துகிறது. மேலும், கிளாஸ்லோடரின் எந்த பெற்றோரும் வகுப்பைக் கண்டுபிடிக்கவில்லை என்றால் இயல்புநிலை செயல்படுத்தல் a ClassNotFoundException.

அறிவிப்பு:

பாதுகாக்கப்பட்ட வகுப்பு findClass (சரம் பெயர்) ClassNotFoundException ஐ வீசுகிறது

Class.forName (சரம் பெயர், பூலியன் துவக்கம், கிளாஸ்லோடர் ஏற்றி)

வகுப்பை ஏற்ற மற்றும் துவக்க இந்த முறை பயன்படுத்தப்படுகிறது. இது கிளாஸ்லோடர்களில் ஏதேனும் ஒன்றைத் தேர்வுசெய்து, கிளாஸ்லோடர் அளவுரு NULL ஆக இருந்தால், தானாகவே பூட்ஸ்டார்ப் கிளாஸ்லோடர் பயன்படுத்தப்படுகிறது.

அறிவிப்பு:

பொது நிலையான வகுப்பு forName (சரம் பெயர், பூலியன் துவக்கம், கிளாஸ்லோடர் ஏற்றி) ClassNotFoundException ஐ வீசுகிறது

getParent ()

GetParent முறை பெற்றோர் கிளாஸ்லோடரை பிரதிநிதிக்கு திருப்பி அனுப்ப பயன்படுகிறது.

அறிவிப்பு:

பொது இறுதி கிளாஸ்லோடர் getParent ()

getResource ()

பெயர் குறிப்பிடுவது போல, getResource () முறை கொடுக்கப்பட்ட பெயருடன் ஒரு ஆதாரத்தைக் கண்டுபிடிக்க முயற்சித்தது. இது ஆரம்பத்தில் கோரிக்கையை பெற்றோர் கிளாஸ்லோடருக்கு ஆதாரத்திற்காக வழங்கும். பெற்றோர் பூஜ்யமாக இருந்தால், ஜே.வி.எம்மில் கட்டப்பட்ட கிளாஸ்லோடரின் பாதை தேடப்படுகிறது. இப்போது, ​​இது தோல்வியுற்றால், வளத்தைக் கண்டுபிடிப்பதற்கான முறை findResource (சரம்) ஐ அழைக்கும், அங்கு வளத்தின் பெயர் ஒரு உள்ளீடாக குறிப்பிடப்படுகிறது, இது முழுமையான அல்லது உறவினர் வகுப்பறையாக இருக்கலாம். பின்னர், வளத்தைப் படிக்க ஒரு URL பொருளைத் தருகிறது அல்லது வளத்தைத் திரும்பப் பெற போதுமான சலுகைகள் இல்லையென்றால் அல்லது காணப்படவில்லை எனில் பூஜ்ய மதிப்பைத் தருகிறது.

அறிவிப்பு:

பொது URL getResource (சரம் பெயர்)

அடுத்து, ஜாவாவில் கிளாஸ்லோடர் குறித்த இந்த கட்டுரையில், தனிப்பயன் கிளாஸ்லோடரைப் புரிந்துகொள்வோம்.

ஜாவாவில் தனிப்பயன் கிளாஸ்லோடர்

கோப்பு முறைமையில் கோப்புகள் ஏற்கனவே உள்ள பெரும்பாலான நிகழ்வுகளை உள்ளமைக்கப்பட்ட கிளாஸ்லோடர்கள் கவனித்துக்கொள்வார்கள், ஆனால் உள்ளூர் வன்வட்டிலிருந்து வகுப்புகளை ஏற்ற விரும்பினால், நீங்கள் தனிப்பயன் கிளாஸ்லோடர்களைப் பயன்படுத்த வேண்டும்.

தனிப்பயன் கிளாஸ்லோடரை உருவாக்கவும்

தனிப்பயன் கிளாஸ்லோடரை உருவாக்க, நீங்கள் நீட்டிக்க வேண்டும் கிளாஸ்லோடர் வர்க்கம் மற்றும் மேலெழுதும் findClass () முறை:

எடுத்துக்காட்டு: இயல்புநிலை கிளாஸ்லோடரை நீட்டிக்கும் மற்றும் குறிப்பிட்ட கோப்பிலிருந்து ஒரு பைட் வரிசையை ஏற்றும் தனிப்பயன் கிளாஸ்லோடரை உருவாக்குவோம். கீழே உள்ள குறியீட்டைப் பார்க்கவும்.

தொகுப்பு பதிப்பு (மாதிரி பெயர்) திரும்ப வரையறுத்தல் வகுப்பு (மாதிரி பெயர், பி, 0, பி.நீளம்)} தனியார் பைட் [] தனிப்பயன்லோட் கிளாஸ்ஃப்ரோம்ஃபைல் (சரம் டெமோஃபைல் பெயர்) {உள்ளீட்டு ஸ்ட்ரீம் இன்ஸ்ட்ரீம் = கெட் கிளாஸ் (). getClassLoader (). getResourceAsStream (demofilename.replace ('. பிரிப்பான்சார்) + '. கிளாஸ்') பைட் [] இடையக பைட்அர்ரேஆட்புட்ஸ்ட்ரீம் பிஸ்ட்ரீம் = புதிய பைட்அர்ரேஆட்புட்ஸ்ட்ரீம் () எண்ணாக அடுத்த மதிப்பு = 0 முயற்சிக்கவும் {((அடுத்த மதிப்பு = இன்ஸ்ட்ரீம்.ரெட் ())! = -1) {பிஸ்ட்ரீம்.ரைட் (அடுத்த மதிப்பு)}} பிடிக்கவும் (IOException e) {e.printStackTrace ()} buffer = bStream.toByteArray () திரும்ப இடையகம்}}

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

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

python __init__ முறை

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