CodeGym /جاوا بلاگ /Random-SD /ڦاسي پيو؟ جاوا سکڻ جا تمام مشڪل حصا ۽ انهن کي ڪيئن قابو ڪ...
John Squirrels
سطح
San Francisco

ڦاسي پيو؟ جاوا سکڻ جا تمام مشڪل حصا ۽ انهن کي ڪيئن قابو ڪجي

گروپ ۾ شايع ٿيل
جئين توهان ڄاڻو ٿا، اسان سفارش ڪريون ٿا ڪوڊنگ شروعات ڪندڙن کي جاوا سان پروگرامنگ ٻوليون سکڻ شروع ڪرڻ لاءِ، ۽ CodeGym وٽ سڀ ڪجهه آهي ته جيئن جاوا سکڻ جي عمل کي هضم ڪرڻ جي قابل بڻائي سگهجي جيتوڻيڪ سڀ کان وڌيڪ تيار نه ٿيل شاگردن لاءِ. پر جيتري قدر گيميشن عناصر، آسان ھلندڙ ڪھاڻي ۽ مزاحيه ڪردار ھن عمل کي آسان ڪرڻ ۾ مدد ڪن ٿا، جاوا جي بنيادي ڳالھين کي مڪمل طور تي سکڻ تمام ٿورڙو ئي نون سکندڙن جي اڪثريت لاءِ چئلينجن کان سواءِ وڃي ٿو. ڦاسي پيو؟  جاوا سکڻ جا تمام ڏکيا حصا ۽ انهن کي ڪيئن قابو ڪجي - 1اڄ اسان جاوا پروگرامنگ جي بنيادي اصولن جي ڪجهه سخت ترين علائقن تي نظر وجهڻ وارا آهيون، اهو سمجهڻ جي ڪوشش ڪري رهيا آهيون ته ڪيترن ئي ماڻهن کي اهي ڏکيا ڇو ٿا لڳن ۽ جيڪڏهن توهان وٽ ان بابت ڪجهه ڪرڻ آهي.

1. عام

جاوا ۾ Generics اھي قسم آھن جن وٽ ھڪڙو پيٽرولر آھي. جڏهن هڪ عام قسم ٺاهي، توهان وضاحت ڪريو نه رڳو هڪ قسم، پر ڊيٽا جو قسم پڻ جيڪو اهو ڪم ڪندو. عام طور تي جاوا سکندڙن پاران جاوا جي سڀ کان ڏکيا حصن مان هڪ طور ذڪر ڪيو ويو آهي انهن کي سمجهڻ لاءِ. "منهنجو بنيادي مسئلو اڃا تائين جنريڪس سان معاملو آهي. اهو تمام گهڻو آسان آهي جڏهن توهان وٽ پيروي ڪرڻ لاءِ طريقا آهن پيرا ميٽرز سان، پر جڏهن توهان کي پنهنجو پاڻ لکڻو آهي ته مونجهارو ٿئي ٿو، ”هڪ گمنام جاوا سکندڙ چيو.

تجويزون ۽ سفارشون

هتي جاوا ۾ جنريڪس بابت راءِ آهي روي ريڊي، هڪ تجربيڪار پروگرامر ۽ يونيورسٽي جي پروفيسر کان: “جاوا جنريڪس هڪ ڪم ڪن ٿا جيڪو C++ ٽيمپليٽس نه ٿا ڪن — لاڳو قسم جي حفاظت. C++ ٽيمپليٽس جو نفاذ هڪ سادي پري پروسيسر چال آهي ۽ قسم جي حفاظت کي يقيني نه بڻائي. جاوا ۾ جنريڪس سي ++ ٽيمپليٽ وانگر آهن پر اضافي قسم جي حفاظت سان. ۽ IMHO، قسم جي حفاظت ڪنهن به سٺي ترقي واري ماحول جي هڪ لازمي خصوصيت آهي. ۽ ها! اهي پريشان ٿي سگهن ٿا ڇاڪاڻ ته اسان جي ذهني تبديلين جي وچ ۾ پيٽرولر ۽ قسمن جي وچ ۾. پر مان سمجهان ٿو ته انهن کي ماسٽر ڪرڻ لاء وقت گذارڻ جي ڪوشش جي لائق آهي. ڇاڪاڻ ته مون پاڻ کي جاوا ۾ ”سوچڻ“ گهڻو بهتر محسوس ڪيو جڏهن مون انٽرفيس ۽ جنريڪس کي سمجهي ورتو هو.

2. ملٽي ٿريڊنگ

جاوا ۾ ملٽي ٿريڊنگ ٻن يا وڌيڪ ٿريڊن کي گڏ ڪرڻ جو عمل آهي ايپليڪيشن ذريعي سي پي يو جو وڌ کان وڌ استعمال حاصل ڪرڻ لاءِ. ملٽي ٿريڊنگ تمام اهم ڪم حل ڪري ٿي ۽ اسان جي پروگرامن کي تيز ڪري سگھي ٿي. گهڻو ڪري ڪيترائي ڀيرا تيز. پر اهو سمجهيو وڃي ٿو انهن عنوانن مان هڪ آهي جتي جاوا جا ڪيترائي نوان سکيا وٺندڙن تي بيٺا آهن. سڀ ڇاڪاڻ ته multithreading پڻ مسئلا پيدا ڪري سگھن ٿا انهن کي حل ڪرڻ بدران. اتي ٻه خاص مسئلا آھن جيڪي ملٽي ٿريڊنگ ڪري سگھن ٿيون: تعطل ۽ نسل جون حالتون. Deadlock هڪ اهڙي صورتحال آهي جتي ڪيترائي موضوع هڪ ٻئي وٽ رکيل وسيلن جي انتظار ۾ آهن، ۽ انهن مان ڪو به جاري نه ٿو رهي سگهي. هڪ نسل جي حالت هڪ گھڻائي واري نظام يا ايپليڪيشن ۾ هڪ ڊزائن جي غلطي آهي، جتي سسٽم يا ايپليڪيشن جو آپريشن ان حڪم تي منحصر آهي جنهن ۾ ڪوڊ جا حصا جاري ڪيا ويا آهن.

تجويزون ۽ سفارشون

هتي هڪ سٺي سفارش آهي ته ڪيئن ملائي ٿريڊنگ سان ڊيل ڪجي S.Lott کان، هڪ سافٽ ويئر آرڪيٽيڪٽ ۽ StackExchange جو فعال استعمال ڪندڙ، هڪ مشهور سوال ۽ جواب ويب سائيٽ: “ملٽي ٿريڊنگ سادو آهي. ملٽي ٿريڊنگ لاءِ ايپليڪيشن ڪوڊنگ تمام، تمام آسان آهي. اتي ھڪڙو سادو چال آھي، ۽ اھو آھي ھڪڙي چڱي طرح ٺاھيل پيغام جي قطار کي استعمال ڪرڻ (پنھنجو پاڻ کي رول نه ڪريو) ڊيٽا کي موضوعن جي وچ ۾ منتقل ڪرڻ لاء. مشڪل حصو ڪوشش ڪري رهيو آهي ته ڪيترن ئي موضوعن کي جادوءَ سان ڪنهن شيئر ڪيل شئي کي اپڊيٽ ڪيو وڃي. اھو اھو آھي جڏھن اھو غلطي جو شڪار ٿي وڃي ٿو ڇاڪاڻ ته ماڻھو نسل جي حالتن تي ڌيان نه ڏيندا آھن جيڪي موجود آھن. ڪيترائي ماڻهو پيغام جي قطارن کي استعمال نٿا ڪن ۽ حصيداري ڪيل شين کي اپڊيٽ ڪرڻ جي ڪوشش ڪن ٿا ۽ پاڻ لاءِ مسئلا پيدا ڪن ٿا. ڇا ڏکيو ٿي پوي ٿو هڪ الگورٿم ڊزائين ڪرڻ جيڪو سٺو ڪم ڪري ٿو جڏهن ڊيٽا ڪيترن ئي قطارن ۾ گذري ٿو. اهو ڏکيو آهي. پر هم آهنگ ٿريڊز جي ميڪانڪس (شيئر ڪيل قطارن ذريعي) آسان آهي.

3. Classpath مسئلا

ڪلاس پاٿ جي غلطين کي پڻ سمجهيو ويندو آهي سڀ کان وڌيڪ شڪايت ٿيل مسئلن مان هڪ جاوا ڊولپرز انهن جي روزاني ڪم ۾ منهن ڏئي رهيا آهن. "ڪلاس پاٿ جا مسئلا ڊيبگ ڪرڻ لاءِ وقت سازي ٿي سگهن ٿا ۽ بدترين ممڪن وقتن ۽ هنڌن تي ٿيڻ جا رجحان هوندا آهن: رليز ٿيڻ کان اڳ، ۽ اڪثر ماحول ۾ جتي ڊولپمينٽ ٽيم جي طرفان رسائي نه هوندي آهي. اهي IDE سطح تي پڻ ٿي سگهن ٿا ۽ پيداوار جي گھٽتائي جو هڪ ذريعو بڻجي سگهن ٿا، ” واسڪو فيريرا، هڪ تجربيڪار جاوا/جاوا اسڪرپٽ ڊولپر ۽ پروگرامنگ سان لاڳاپيل ٽيوٽوريل ليکڪ چوي ٿو .

تجويزون ۽ سفارشون

”ڪلاس پاٿ جا مسئلا ايترا گهٽ نه هوندا آهن يا نه پهچن جيترا اهي پهرين نظر اچن ٿا. اهو سڀ ڪجهه آهي زپ فائلن (جارس) جي موجود هجڻ / ڪجهه ڊائريڪٽرن ۾ موجود نه هجڻ، انهن ڊائريڪٽرن کي ڪيئن ڳولهجي، ۽ محدود رسائي سان ماحول ۾ ڪلاس پاٿ کي ڪيئن ڊيب ڪيو وڃي. تصورن جي هڪ محدود سيٽ کي ڄاڻڻ سان جيئن ڪلاس لوڊ ڪندڙ، ڪلاس لوڊ ڪندڙ زنجير ۽ والدين پهريون / والدين آخري طريقا، انهن مسئلن کي مؤثر طريقي سان حل ڪري سگهجي ٿو، "ماهر بيان ڪري ٿو.

4. پوليمورفيزم ۽ ان جو صحيح استعمال

جڏهن اهو OOP جي اصولن تي اچي ٿو، ڪيترائي ماڻهو چون ٿا ته انهن کي پوليمورفيزم کي سمجهڻ ڏکيو وقت هو. پوليمورفيزم (Polymorphism) ھڪ پروگرام جي صلاحيت آھي جنھن کي ھڪڙي ئي انٽرفيس سان ھڪڙي طريقي سان علاج ڪرڻ جي قابل آھي، بغير ڪنھن شئي جي مخصوص قسم جي ڄاڻ جي. پوليمورفيزم جي باوجود ڪافي بنيادي موضوع آهي، اهو بلڪه وسيع آهي ۽ جاوا جي بنياد جو هڪ سٺو حصو بڻجي ٿو. ڪيترن ئي شاگردن لاءِ، پوليمورفيزم جاوا سکڻ ۾ پهرين ڏکيائي آهي. سڀ ڇاڪاڻ ته پوليمورفيزم جا مختلف روپ آهن مختلف مقصدن ۾ استعمال ڪيا ويا آهن، جيڪي پريشان ٿي سگهن ٿيون.

تجويزون ۽ سفارشون

پوليمورفيزم سان ڊيل ڪرڻ لاءِ ان کي سکڻ کان سواءِ ٻيو ڪو طريقو ناهي. هتي ڪيئن آهي Torben Mogensen، جيڪو يونيورسٽي آف ڪوپن هيگن ۾ پروگرامنگ سيکاري ٿو، هن تصور جي وضاحت ڪري ٿو : “Simple Overloading: + مطلب ٿي سگهي ٿو ٻئي انٽيجر اضافو، فلوٽنگ پوائنٽ اضافو ۽ (ڪجهه ٻولين ۾) اسٽرنگ ڪنٽينشن. ذيلي قسم پوليمورفيزم: جيڪڏھن B ھڪڙو ذيلي قسم آھي (جنھن مان ورثي ۾ آھي)، قسم B جي ڪا به قدر ھڪڙي حوالي سان استعمال ڪري سگھجي ٿي جيڪا ھڪڙي قسم جي قيمت جي توقع رکي ٿي. Parametric polymorphism: ھڪڙي قسم کي قسم جي پيرا ميٽرز سان گڏ ڪري سگھجي ٿو، جيئن توھان ان ۾ مختلف حوالا مختلف قسم جي دليلن کي فراهم ڪري سگھن ٿا، تنهنڪري توهان مختلف ڪنڪريٽ قسمن کي پيٽرولر ٿيل قسم کي فوري طور تي ترتيب ڏيو. اهو پڻ سڏيو ويندو آهي "ٽيمپليٽس" يا "جنريڪس" ۽ OO ٻولين ۾ آهي عام طور تي مخصوص زاوي بریکٹ استعمال ڪندي (جهڙوڪ T<A>). انٽرفيس پوليمورفيزم. اهو بنيادي طور تي هڪ ميکانيزم آهي جتي توهان ذيلي قسم جي پوليمورفيزم کي ذيلي قسم تائين محدود ڪندا آهيو جيڪي هڪ خاص انٽرفيس کي لاڳو ڪن ٿا يا پيراميٽرڪ پوليمورفيزم کي ٽائيپ ڪرڻ لاءِ پيراميٽر جيڪي هڪ خاص انٽرفيس کي لاڳو ڪن ٿا.

5. عڪس

Reflection هڪ ميکانيزم آهي جيڪو ڪنهن پروگرام بابت ڊيٽا کي ڳولڻ لاءِ جڏهن اهو هلي رهيو آهي. Reflection توهان کي معلومات ڳولڻ جي اجازت ڏئي ٿي فيلڊز، طريقن، ۽ ڪلاس جي تعمير ڪندڙن بابت. اهو پڻ توهان کي انهن قسمن سان ڪم ڪرڻ جي اجازت ڏئي ٿو جيڪي گڏ ڪرڻ وقت موجود نه هئا، پر جيڪي رن ٽائيم دوران دستياب ٿي ويا. عڪس ۽ منطقي طور تي هڪجهڙائي وارو ماڊل غلط معلومات جاري ڪرڻ لاءِ اهو ممڪن بڻائي ٿو ته صحيح متحرڪ ڪوڊ ٺاهڻ. پر ڪيترن ئي ماڻهن لاءِ، اهو سمجهڻ ايترو آسان ناهي ته ڪيئن استعمال ڪجي Reflection.

تجويزون ۽ سفارشون

"عڪس ۽ جاوا جي صورت ۾، عڪاسي جاوا کي اجازت ڏئي ٿي، جيڪا جامد طور تي ٽائپ ڪرڻ لاء ٺهيل آهي، متحرڪ طور تي ٽائيپ ڪرڻ لاء. متحرڪ ٽائپنگ فطري طور تي برائي ناهي. ها، اهو پروگرامر کي ڪجهه OOP اصولن کي ٽوڙڻ جي اجازت ڏئي ٿو، پر ساڳئي وقت اهو ڪيترن ئي طاقتور خاصيتن جي اجازت ڏئي ٿو جهڙوڪ رن ٽائم پراکسينگ ۽ انحصار انجڻ. ها، جاوا توهان کي عڪس استعمال ڪندي پنهنجي پيرن ۾ گولي هڻڻ جي اجازت ڏئي ٿي. تنهن هوندي، توهان کي تمام واضح طور تي بندوق کي پنهنجي پيرن تي اشارو ڪرڻو پوندو، حفاظت کي هٽايو ۽ ٽرگر کي ڇڪيو، " جيش لالواڻي، هڪ تجربيڪار جاوا پروگرامر ۽ ايپليڪيشن آرڪيٽيڪيٽ وضاحت ڪري ٿو .

6. ان پٽ/آئوٽ پٽ اسٽريمز

وهڪرو توهان کي ڪنهن به ڊيٽا جي ذريعن سان ڪم ڪرڻ جي اجازت ڏئي ٿو: انٽرنيٽ، توهان جي ڪمپيوٽر جو فائيل سسٽم، يا ٻيو ڪجهه. وهڪرو هڪ آفاقي اوزار آهن. اهي هڪ پروگرام کي ڪٿي به ڊيٽا حاصل ڪرڻ جي اجازت ڏين ٿا (ان پٽ اسٽريمز) ۽ ان کي ڪٿي به موڪليو (آئوٽ پٽ اسٽريمز). انهن جو ڪم ساڳيو آهي: هڪ هنڌ کان ڊيٽا وٺڻ ۽ ٻئي ڏانهن موڪلڻ. اسٽريم جا ٻه قسم آهن: ان پٽ اسٽريمز (ڊيٽا وصول ڪرڻ لاءِ استعمال ٿيل) ۽ آئوٽ پٽ اسٽريمز (ڊيٽا موڪلڻ لاءِ). ڪيترين ئي ماڻهن لاءِ اسٽريمز استعمال ڪرڻ کي سمجھڻ ۾ ڪهڙي ڏکيائي آهي اها حقيقت آهي ته جاوا وٽ ڪيترائي I/O اسٽريم ڪلاس آهن.

تجويزون ۽ سفارشون

“جاوا وٽ ڪيترائي I/O اسٽريم ڪلاس آهن خاص طور تي ٻن عنصرن جي ڪري. پهريون آهي وراثت. ڪجهه طبقا اڃا تائين تاريخي سببن جي ڪري موجود آهن ۽ انهن کي تباهي نه ڏني وئي آهي ڇاڪاڻ ته انهن کي نقصانڪار نه سمجهيو وڃي. ٻيو، لچڪدار. مختلف ايپليڪيشنن جون مختلف گهرجون آهن ۽ اهڙيءَ طرح، توهان وٽ توهان جي ضرورتن جي لحاظ کان ڪيترائي اختيار آهن. مفيد تجريدون وضاحت آڻين ٿيون جڏهن توهان ان کي پڙهو ۽ ڪوڊ جي ڪجهه لائينن سان توهان گهڻو ڪجهه ڪري سگهو ٿا ، ” سويڊن مان جاوا ماهر جونس ميلن چوي ٿو . جاوا جا ڪهڙا پهلو توهان کي سمجھڻ ۾ سڀ کان وڌيڪ مشڪل محسوس ٿيا يا ڪجهه وقت لاءِ ان تي اٽڪيل رهيا؟ تبصرن ۾ پنهنجا تجربا حصيداري ڪريو.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION