CodeGym /Java Blog /சீரற்ற /மாட்டி கொண்டேன்? ஜாவா கற்றுக்கொள்வதில் மிகவும் கடினமான ப...
John Squirrels
நிலை 41
San Francisco

மாட்டி கொண்டேன்? ஜாவா கற்றுக்கொள்வதில் மிகவும் கடினமான பகுதிகள் மற்றும் அவற்றை எவ்வாறு சமாளிப்பது

சீரற்ற குழுவில் வெளியிடப்பட்டது
உங்களுக்குத் தெரிந்தபடி, ஜாவாவுடன் நிரலாக்க மொழிகளைக் கற்க ஆரம்பநிலையாளர்களுக்கு குறியீட்டு முறையைப் பரிந்துரைக்கிறோம், மேலும் ஜாவாவைக் கற்கும் செயல்முறையை மிகவும் ஆயத்தமில்லாத மாணவர்களுக்கும் ஜீரணிக்கக்கூடியதாக மாற்றுவதற்கான அனைத்தையும் CodeGym கொண்டுள்ளது. ஆனால் கேமிஃபிகேஷன் கூறுகள், எளிதான கதை மற்றும் வேடிக்கையான கதாபாத்திரங்கள் இந்த செயல்முறையை எளிதாக்க உதவுகின்றன, ஜாவாவின் அடிப்படைகளை முழுமையாகக் கற்றுக்கொள்வது, பெரும்பாலான புதிய கற்பவர்களுக்கு சவால்கள் இல்லாமல் போகும். மாட்டி கொண்டேன்?  ஜாவா கற்றுக்கொள்வதில் மிகவும் கடினமான பகுதிகள் மற்றும் அவற்றை எவ்வாறு சமாளிப்பது - 1இன்று நாம் ஜாவா நிரலாக்க அடிப்படைகளில் உள்ள சில கடினமான பகுதிகளைப் பற்றிப் பார்க்கப் போகிறோம், பலர் ஏன் அவற்றைக் கடினமாகக் காண்கிறார்கள், அதைப் பற்றி நீங்கள் ஏதாவது செய்ய வேண்டுமா என்பதைப் புரிந்துகொள்ள முயற்சிக்கிறோம்.

1. ஜெனரிக்ஸ்

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

உதவிக்குறிப்புகள் மற்றும் பரிந்துரைகள்

அனுபவம் வாய்ந்த புரோகிராமர் மற்றும் பல்கலைக்கழகப் பேராசிரியரான ரவி ரெட்டியின் ஜாவாவில் ஜெனரிக்ஸ் பற்றிய ஒரு கருத்து இங்கே உள்ளது : “சி++ டெம்ப்ளேட்கள் செய்யாத ஒன்றை ஜாவா ஜெனரிக்ஸ் செய்கிறது - வகை பாதுகாப்பை செயல்படுத்துகிறது. C++ டெம்ப்ளேட்களை செயல்படுத்துவது ஒரு எளிய முன்-செயலி தந்திரம் மற்றும் வகை பாதுகாப்பை உறுதி செய்யாது. ஜாவாவில் உள்ள ஜெனரிக்ஸ் சி++ டெம்ப்ளேட்கள் போன்றவை ஆனால் கூடுதல் வகை பாதுகாப்புடன் இருக்கும். மற்றும் IMHO, வகை பாதுகாப்பு என்பது எந்தவொரு நல்ல வளர்ச்சி சூழலுக்கும் இன்றியமையாத அம்சமாகும். மற்றும் ஆம்! அளவுருக்கள் மற்றும் வகைகளுக்கு இடையில் நமது மன மாற்றங்கள் காரணமாக அவை குழப்பமடையக்கூடும். ஆனால் அவற்றை மாஸ்டர் செய்ய நேரத்தை செலவிடுவது முயற்சிக்கு மதிப்புள்ளது என்று நான் நம்புகிறேன். ஏனென்றால், இடைமுகங்கள் மற்றும் ஜெனரிக்ஸைப் புரிந்துகொண்டவுடன் ஜாவாவில் நான் "சிந்தனை" செய்தேன்."

2. மல்டித்ரெடிங்

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

உதவிக்குறிப்புகள் மற்றும் பரிந்துரைகள்

இதோ ஒரு நல்ல பரிந்துரைS.Lott இன் மல்டித்ரெடிங்கை எவ்வாறு கையாள்வது என்பது பற்றி, ஒரு மென்பொருள் வடிவமைப்பாளரும், StackExchange இன் செயலில் உள்ள பயனருமான, பிரபலமான கேள்வி பதில் இணையதளம்: “மல்டி த்ரெடிங் எளிமையானது. மல்டி-த்ரெடிங்கிற்கான பயன்பாட்டைக் குறியிடுவது மிகவும் எளிதானது. ஒரு எளிய தந்திரம் உள்ளது, இது நன்கு வடிவமைக்கப்பட்ட செய்தி வரிசையைப் பயன்படுத்துவதாகும் (உங்கள் சொந்தமாக உருட்ட வேண்டாம்) த்ரெட்களுக்கு இடையில் தரவை அனுப்ப. கடினமான பகுதியானது, பகிரப்பட்ட பொருளை ஏதோவொரு வகையில் மாயாஜாலமாகப் புதுப்பிப்பதற்கு பல இழைகளை வைத்திருக்க முயற்சிக்கிறது. தற்போதுள்ள இன நிலைமைகளுக்கு மக்கள் கவனம் செலுத்தாததால், அது பிழைக்கு ஆளாகிறது. பலர் செய்தி வரிசைகளைப் பயன்படுத்துவதில்லை மற்றும் பகிரப்பட்ட பொருட்களைப் புதுப்பித்து, தங்களுக்குத் தாங்களே சிக்கல்களை உருவாக்கிக் கொள்ள முயற்சிக்கின்றனர். பல வரிசைகளில் தரவை அனுப்பும்போது நன்றாக வேலை செய்யும் அல்காரிதத்தை வடிவமைப்பது கடினம். அது கடினம்.

3. கிளாஸ்பாத் சிக்கல்கள்

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

உதவிக்குறிப்புகள் மற்றும் பரிந்துரைகள்

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

4. பாலிமார்பிசம் மற்றும் அதை சரியாகப் பயன்படுத்துதல்

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

உதவிக்குறிப்புகள் மற்றும் பரிந்துரைகள்

பாலிமார்பிஸத்தைக் கற்றுக்கொள்வதைத் தவிர வேறு வழியில்லை. கோபன்ஹேகன் பல்கலைக்கழகத்தில் நிரலாக்கத்தை கற்பிக்கும் டோர்பென் மோகன்சென் எவ்வாறு விளக்குகிறார்இந்த கருத்து: "எளிய ஓவர்லோடிங்: + என்பது முழு எண் கூட்டல், மிதக்கும் புள்ளி கூட்டல் மற்றும் (சில மொழிகளில்) சரம் இணைப்பு ஆகிய இரண்டையும் குறிக்கும். துணை வகை பாலிமார்பிசம்: B என்பது A இன் துணை வகையாக இருந்தால் (மரபுரிமையாக) A, வகை A இன் மதிப்பை எதிர்பார்க்கும் சூழலில் B வகையின் எந்த மதிப்பையும் பயன்படுத்தலாம். அளவுரு பாலிமார்பிசம்: ஒரு வகை வகை அளவுருக்கள் மூலம் அளவுருவாக இருக்கலாம், அதாவது நீங்கள் வெவ்வேறு சூழல்கள் வெவ்வேறு வகை வாதங்களை வழங்க முடியும், எனவே நீங்கள் அளவுரு வகைகளை வெவ்வேறு கான்கிரீட் வகைகளுக்கு உடனடியாக வழங்குகிறீர்கள். இது "டெம்ப்ளேட்கள்" அல்லது "ஜெனரிக்ஸ்" என்றும் அழைக்கப்படுகிறது, மேலும் இது OO மொழிகளில் பொதுவாக கோண அடைப்புக்குறிகளைப் பயன்படுத்தி (T<A> போன்றவை) குறிப்பிடப்படுகிறது. இடைமுகம் பாலிமார்பிசம். இது அடிப்படையில் ஒரு குறிப்பிட்ட இடைமுகத்தை செயல்படுத்தும் துணை வகை பாலிமார்பிஸம் அல்லது ஒரு குறிப்பிட்ட இடைமுகத்தை செயல்படுத்தும் அளவுருக்களை தட்டச்சு செய்ய அளவுரு பாலிமார்பிஸத்தை நீங்கள் கட்டுப்படுத்தும் ஒரு பொறிமுறையாகும்."

5. பிரதிபலிப்பு

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

உதவிக்குறிப்புகள் மற்றும் பரிந்துரைகள்

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

6. உள்ளீடு/வெளியீடு ஸ்ட்ரீம்கள்

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

உதவிக்குறிப்புகள் மற்றும் பரிந்துரைகள்

"Java பல I/O ஸ்ட்ரீம் வகுப்புகளை முக்கியமாக இரண்டு பங்களிக்கும் காரணிகளால் கொண்டுள்ளது. முதலில் மரபு. சில வகுப்புகள் வரலாற்றுக் காரணங்களுக்காக இன்னும் உள்ளன, மேலும் அவை தீங்கு விளைவிப்பதாகக் கருதப்படாததால் அவை நிராகரிக்கப்படவில்லை. இரண்டாவது, நெகிழ்வுத்தன்மை. வெவ்வேறு பயன்பாடுகளுக்கு வெவ்வேறு தேவைகள் உள்ளன, எனவே உங்கள் தேவைகளைப் பொறுத்து பல விருப்பங்கள் உள்ளன. பயனுள்ள சுருக்கங்கள் நீங்கள் அதைப் படிக்கும்போது தெளிவைக் கொண்டுவருகின்றன, மேலும் சில கோடுகளின் மூலம் நீங்கள் நிறைய செய்ய முடியும், ” என்கிறார் ஸ்வீடனைச் சேர்ந்த ஜாவா நிபுணர் ஜோனாஸ் மெலின். ஜாவாவின் எந்த அம்சங்களைப் புரிந்துகொள்வது மிகவும் கடினமாக இருந்தது அல்லது சிறிது நேரம் சிக்கிக்கொண்டது? கருத்துகளில் உங்கள் அனுபவங்களைப் பகிர்ந்து கொள்ளுங்கள்.
கருத்துக்கள்
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION