
- آئون انهن سوالن کي ڇڏي ڏيندس جيڪي مضمونن جي هن سلسلي سان اوورليپ ٿين ٿا ته جيئن معلومات کي غير ضروري طور تي نقل نه ڪيو وڃي. آئون انهن مضمونن کي پڙهڻ جي صلاح ڏيان ٿو جيئن اهي سڀ کان وڌيڪ عام (مشهور) جاوا ڪور انٽرويو سوالن کي ڍڪيندا آهن.
- مان جوابن کي وڌيڪ تفصيل سان بيان ڪري سگهان ٿو، پر مان نه ڪندس، ڇو ته پوءِ هر جواب سڄي مضمون لاءِ ڇڪي سگهي ٿو. ۽ ڪو به توهان کان ڪنهن به نوڪري جي انٽرويو ۾ تفصيل جي ان سطح لاءِ نه پڇندو.
11. Object ڪلاس جي سڀني طريقن کي نالا ڏيو
اعتراض ڪلاس ۾ 11 طريقا آهن:-
ڪلاس<؟> getClass() - موجوده اعتراض جو ڪلاس حاصل ڪريو؛
-
int hashCode() - موجوده اعتراض جو هيش ڪوڊ حاصل ڪريو؛
-
boolean equals (Object obj) - موجوده شئي کي ٻئي شئي سان ڀيٽيو؛
-
آبجیکٹ کلون () - موجوده اعتراض جي ڪاپي ٺاهي ۽ واپس ڪريو؛
-
String toString() - حاصل ڪريو اسٽرنگ کي اعتراض جي نمائندگي؛
-
void notify() - هڪ ٿريڊ کي جاڳايو هن اعتراض جي مانيٽر تي انتظار ڪري رهيو آهي (ڌاڙي جو انتخاب بي ترتيب آهي)؛
-
void notifyAll() — جاڳايو سڀ ٿريڊ هن اعتراض جي مانيٽر تي انتظار ڪري رهيا آهن؛
-
void wait() - ڪرائنٽ ٿريڊ کي موجوده مانيٽر تي انتظار ڪريو (موجوده ٿريڊ کي منجمد ڪريو) جيستائين ڪو اطلاع يا اطلاع نه ڏئي سڀ ڪال ٿريڊ کي جاڳائيندي (صرف هم وقت ساز بلاڪ ۾ ڪم ڪندو آهي)؛
-
void انتظار (ڊگهو وقت ختم) - موجوده ٿريڊ کي موجوده مانيٽر تي انتظار ڪريو (موجوده هم وقت سازي واري بلاڪ تي)، پر انتظار واري حالت مان نڪرڻ لاءِ وقت ختم ٿيڻ سان (يا ٻيهر، جيستائين اطلاع يا اطلاع نه ٿي سڀ ڪال ٿريڊ کي جاڳائيندي)؛
-
void انتظار (ڊگهو وقت ختم، int nanos) - هي طريقو پوئين طريقي وانگر آهي، پر وڌيڪ صحيح وقت سان؛
-
void finalize() - ھي طريقو سڏيو ويندو آھي (آخر ۾) ان کان اڳ جو اعتراض کي ڪچري جي ڪليڪٽر طرفان هٽايو وڃي. اهو حاصل ڪيل وسيلن کي صاف ڪرڻ لاء استعمال ڪيو ويندو آهي.
12. وسيلن سان ڪم ڪرڻ جي ڪوشش ڪرڻ ۽ آخر ۾ ڪوشش ڪرڻ جي وچ ۾ ڇا فرق آهي؟
عام طور تي، جڏهن استعمال ڪندي try-catch-finally ، حتمي بلاڪ وسيلن کي بند ڪرڻ لاء استعمال ڪيو ويندو آهي. جاوا 7 متعارف ڪرايو نئين ڪوشش سان وسيلن جي بيان. اهو هڪجهڙائي آهي ڪوشش-پڪڙ-آخر ۾ وسيلن کي آزاد ڪرڻ لاء، پر وڌيڪ جامع ۽ پڙهڻ جي قابل. اچو ته ياد ڪريون ته ڪوشش-پڪڙ-آخر ۾ ڇا نظر اچي ٿو:String text = "some text......";
BufferedWriter bufferedWriter = null;
try {
bufferedWriter = new BufferedWriter(new FileWriter("someFileName"));
bufferedWriter.write(text);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
هاڻي اچو ته هن ڪوڊ کي ٻيهر لکون، پر استعمال ڪندي ڪوشش ڪريون وسيلن سان :
String text = "some text......";
try(BufferedWriter bufferedWriter =new BufferedWriter(new FileWriter("someFileName"))) {
bufferedWriter.write(text);
} catch (IOException e) {
e.printStackTrace();
}
هاڻي اهو ڪجهه آسان آهي، توهان نه سوچيو؟ سادي ڪوڊ جي اضافي ۾، نوٽ ڪرڻ لاء ڪجهه ٻيا نقطا آهن:
-
وسيلن سان ڪوشش ڪرڻ ۾ ، قوس ۾ بيان ڪيل وسيلا (وسيلا جيڪي بند ڪيا ويندا) لازمي طور تي آٽو ڪلوز ايبل انٽرفيس ۽ ان جي واحد بند () طريقي کي لاڳو ڪرڻ گهرجن.
بند ڪرڻ جو طريقو هڪ واضح آخر ۾ بلاڪ ڪيو ويو آهي ، ٻي صورت ۾، پروگرام ڪيئن اندازو لڳائي سگهندو ته وسيلن کي ڪيئن بند ڪيو وڃي؟
پر توهان شايد گهٽ ۾ گهٽ لکندا آهيو توهان جي پنهنجي وسيلن تي عملدرآمد ۽ انهن جي بند ٿيڻ جو طريقو.
-
بلاڪ هن ترتيب ۾ جاري ڪيا ويا آهن:
- ڪوشش بلاڪ .
- ضمير آخر بلاڪ.
- ڪيچ بلاڪ، جيڪو ڪيچ ڪري ٿو استثنا جيڪي پوئين مرحلن ۾ ٿين ٿيون .
- واضح آخر بلاڪ.
ضابطي جي طور تي، فهرست ۾ هيٺ ڏنل استثنا جيڪي مٿاهون اڇلايا ويا آهن انهن ۾ مداخلت ڪن ٿا.
13. bitwise آپريشن ڇا آهن؟
Bitwise آپريشن بٽس جي تسلسل تي عمل آھن. انهن ۾ شامل آهن منطقي آپريشن ۽ bitwise شفٽ. منطقي آپريٽرز:-
bitwise AND - بٽ ويلز جو مقابلو ڪري ٿو. ڪو به بٽ 0 (غلط) تي سيٽ ڪري ٿو نتيجي ۾ لاڳاپيل بٽ کي 0 تي. يعني، جيڪڏھن ھڪڙو سا آھي 1 (سچو) ٻنھي نسبتن ۾، پوءِ نتيجو بٽ به 1 ھوندو.
AND يا & جي طور تي ظاهر ڪيو ويو آهي
مثال: 10111101 ۽ 01100111 = 00100101
-
bitwise OR - ھي آپريشن پوئين ھڪڙي جي ابتڙ آھي. ڪا به بٽ 1 تي سيٽ ڪري ٿي، نتيجي ۾ لاڳاپيل بٽ کي 1 تي سيٽ ڪري ٿي. ان مطابق، جيڪڏھن بٽ ٻن مقابلي واري قدرن ۾ 0 آھي، ته پوءِ نتيجو بٽ به 0 ھوندو.
OR يا | طور ظاهر ڪيو ويو
مثال: 10100101 | 01100011 = 11100111
-
bitwise NOT - ھي آپريٽر ھڪڙي قيمت تي لاڳو ٿئي ٿو. اهو ڦاٽندو آهي (انڌار) بٽ. اهو آهي، اهي بٽ جيڪي 1 هئا 0 بڻجي ويا؛ ۽ جيڪي 0 هئا 1 ٿي ويا.
جي طور تي ظاهر ڪيو ويو NOT يا ~
مثال: ~10100101 = 01011010
-
bitwise exclusive OR — بيٽ ويلز جو مقابلو ڪري ٿو. جيڪڏهن ٻئي بٽ 1 آهن، ته پوءِ نتيجو وارو بٽ 0 آهي. جيڪڏهن ٻئي بٽ 0 آهن، ته پوءِ نتيجو بٽ 0 آهي. ٻين لفظن ۾، نتيجي ۾ بٽ 1 ٿيڻ لاءِ، صرف هڪ بٽ 1 هجڻ گهرجي، ۽ ٻيو بٽ 0 هجڻ گهرجي.
XOR يا ^ طور ظاهر ڪيو ويو آهي
مثال: 10100101 ^ 01100011 = 11000110
- 01100011 >> 4 = 00000110
- 01100011 << 3 = 00011000


14. جاوا ۾ ڪهڙيون معياري غير تبديل ٿيندڙ شيون آهن؟
ڪا شئي ان صورت ۾ بدلجندڙ آهي ، جڏهن اها پنهنجي اصل قدرن کي تبديل ڪرڻ جي اجازت نه ڏئي. اهو ٿي سگهي ٿو طريقا جيڪي مختلف قدرن سان هڪ ئي قسم جون نيون شيون واپس ڪن. ڪجھ غير معياري شيون شامل آھن:- بلاشڪ، جاوا جو سڀ کان مشهور ناقابل بدلائي قسم آهي String؛
- لفافي طبقن جا مثال جيڪي معياري قسمن کي لپيندا آهن: بوليان، ڪردار، بائيٽ، ننڍو، انٽيجر، ڊگهو، ڊبل، فلوٽ؛
- BigInteger ۽ BigDecimal شيون، جيڪي عام طور تي خاص طور تي BIG نمبرن لاءِ استعمال ٿين ٿيون؛
- StackTraceElement شيون جيڪي هڪ اسٽيڪ ٽريس ٺاهيندا آهن (مثال طور، هڪ استثنا جو اسٽيڪ ٽريڪ)؛
- فائل ڪلاس جو هڪ اعتراض - اهو فائلن کي تبديل ڪري سگهي ٿو، پر ساڳئي وقت اعتراض پاڻ کي اڻڄاتل رهي ٿو؛
- UUIDs، جيڪي اڪثر ڪري منفرد طور تي عناصر جي سڃاڻپ ڪرڻ لاء استعمال ڪيا ويندا آهن؛
- java.time پيڪيج ۾ ڪلاس جا سڀ شيون؛
- مقامي شيون، جيڪي جغرافيائي، سياسي، يا ثقافتي علائقي کي سڃاڻڻ لاءِ استعمال ٿين ٿيون.
15. غير تبديل ٿيندڙ شئي جا ڪهڙا فائدا آهن عام شين جي ڀيٽ ۾؟
-
غير تبديل ٿيندڙ شيون هڪ گھڻائي واري ماحول ۾ استعمال ڪرڻ لاء محفوظ آهن . اهي اهو ٺاهيندا آهن ته توهان کي نسل جي حالتن جي ڪري ڊيٽا جي نقصان جي باري ۾ پريشان ٿيڻ جي ضرورت ناهي. اهو مختلف آهي جڏهن توهان عام شين سان ڪم ڪري رهيا آهيو. انهي صورت ۾، توهان کي سوچڻو پوندو ۽ سٺو ميڪانيزم سان گڏ اچڻو پوندو جڏهن هڪ متوازي ماحول ۾ اعتراض استعمال ڪندي.
-
تبديل نه ٿيندڙ شيون نقشي ۾ چاٻين وانگر سٺيون آھن. جيڪڏهن توهان هڪ ميوٽبل اعتراض کي HashMap ڪيچ جي طور تي استعمال ڪريو ٿا ۽ پوء اعتراض جي حالت تبديل ٿي وڃي ٿي، پوء ڊيٽا جي جوڙجڪ مونجهارو ٿي سگهي ٿي: اعتراض اڃا به موجود هوندو، پر جيڪڏهن توهان استعمال ڪيو ٿا containsKey()، توهان شايد اهو نه ڳولي سگهو ٿا.
-
غير تبديل ٿيندڙ شيون ناقابل قابل (مسلسل) ڊيٽا کي محفوظ ڪرڻ لاء عظيم آهن جيڪي ڪڏهن به تبديل نه ٿيڻ گهرجن جڏهن پروگرام هلندي آهي.
-
هڪ ٻيو فائدو ناڪامي جوهر آهي. جيڪڏهن هڪ ناقابل بدلي شئي هڪ استثنا اڇلائي، ان کي ناپسنديده (ٽڙيل) حالت ۾ نه ڇڏيو ويندو.
-
اهي ڪلاس آسان آهن ٽيسٽ ڪرڻ.
-
توهان کي ڪنهن به اضافي ميڪانيزم جي ضرورت ناهي جهڙوڪ ڪاپي ڪنسٽرڪٽر يا اعتراض ڪلوننگ تي عمل درآمد.
OOP بابت سوال
16. عام طور تي OOP جا فائدا ڇا آهن ۽ پروسيسنگ پروگرامنگ جي مقابلي ۾؟
ٺيڪ، OOP جا فائدا:-
ڪمپليڪس ايپليڪيشنون پروسيسنگ پروگرامنگ جي ڀيٽ ۾ OOP استعمال ڪندي لکڻ آسان آهن ڇو ته هر شي کي ننڍڙن ماڊلز ۾ ورهايو ويو آهي - شيون جيڪي هڪ ٻئي سان رابطو ڪن ٿيون - ۽ نتيجي طور، پروگرامنگ کي گهٽجي ويو آهي شين جي وچ ۾ لاڳاپا.
-
او او پي سان لکيل ايپليڪيشنون تبديل ڪرڻ ۾ تمام آسان آهن (جڏهن ڊزائن جا اصول صحيح طور تي مشاهدو ڪيا وڃن).
-
جيئن ته ٻئي ڊيٽا ۽ ڊيٽا آپريشن هڪ واحد ادارو ٺاهيندا آهن، اهي سڀئي ايپليڪيشن تي گندا نه هوندا آهن (جيڪو اڪثر طريقي سان پروگرامنگ ۾ هوندو آهي).
-
encapsulation جو اصول صارف کان سڀ کان وڌيڪ نازڪ ڊيٽا کي بچائيندو آهي.
-
ساڳيو ڪوڊ مختلف ڊيٽا سان ٻيهر استعمال ڪري سگهجي ٿو ڇو ته ڪلاس توهان کي ڪيتريون ئي شيون ٺاهي سگھن ٿا، هر هڪ پنهنجي پنهنجي قدر سان.
-
وراثت ۽ پوليمورفيزم پڻ توهان کي ٻيهر استعمال ڪرڻ ۽ موجوده ڪوڊ کي وڌائڻ جي اجازت ڏين ٿا (جهڙي ڪارڪردگي کي نقل ڪرڻ جي بدران).
-
ايپليڪيشن کي وڌائڻ هڪ طريقيڪار واري طريقي جي ڀيٽ ۾ آسان آهي.
-
او او پي جي طريقي سان عمل درآمد جي تفصيلن کي ختم ڪرڻ ممڪن بڻائي ٿو.
17. اسان کي ٻڌايو ته OOP جا ڪهڙا نقصان آهن
بدقسمتي سان، اهي پڻ موجود آهن:-
او او پي کي تمام گهڻي نظرياتي ڄاڻ جي ضرورت آهي جيڪا توهان کي ڪجهه به لکڻ کان پهريان حاصل ڪرڻ گهرجي.
-
OOP خيالن کي سمجھڻ ۽ عملي طور تي لاڳو ڪرڻ ايترو آسان ناهي (توهان کي دل ۾ ٿورو فلسفي ٿيڻ جي ضرورت آهي).
-
سسٽم جي وڌندڙ پيچيدگي جي ڪري او او پي پروگرام جي ڪارڪردگي کي ٿورڙي گھٽائي ٿو.
-
او او پي جي طريقي کي وڌيڪ يادگيري جي ضرورت آهي ڇو ته هر شيء تي مشتمل آهي طبقن، انٽرفيس، طريقن، جيڪي عام متغيرن جي ڀيٽ ۾ تمام گهڻي ياداشت کڻندا آهن.
-
شروعاتي تجزيي لاءِ گهربل وقت هڪ طريقيڪار واري طريقي کان وڌيڪ آهي.
18. جامد پوليمورفيزم بمقابله متحرڪ پوليمورفيزم ڇا آهي؟
پوليمورفيزم هڪ ئي طبقي يا انٽرفيس جي شين کي مختلف طريقي سان عمل ڪرڻ جي اجازت ڏئي ٿو. پوليمورفيزم جا ٻه قسم آهن، جن کي شروعاتي ۽ دير سان پابند پڻ سڏيو ويندو آهي. جامد پوليمورفيزم، يا ابتدائي پابند:- مرتب وقت تي ٿئي ٿو (پروگرام جي زندگيءَ جي شروعات ۾)؛
- فيصلو ڪري ٿو ته ڪھڙي طريقي سان گڏ ڪرڻ جي وقت تي عمل ڪرڻ؛
- طريقو اوورلوڊنگ جامد پوليمورفيزم جو هڪ مثال آهي.
- ابتدائي بائنڊنگ ۾ نجي، جامد ۽ آخري طريقا شامل آهن؛
- وراثت شروعاتي پابند ۾ شامل نه آهي؛
- جامد پوليمورفيزم ۾ مخصوص شيون شامل نه هونديون آهن، بلڪه درجي جي قسم بابت معلومات جيڪا متغير نالي جي کاٻي پاسي ظاهر ٿئي ٿي.
- رن ٽائم تي ٿئي ٿو (جڏهن ته پروگرام هلي رهيو آهي)؛
- متحرڪ پوليمورفيزم فيصلو ڪري ٿو ته رن ٽائم تي ڪهڙي مخصوص طريقي سان عمل ڪرڻ جو طريقو هوندو.
- طريقو اوور رائڊنگ متحرڪ پوليمورفيزم جو هڪ مثال آهي.
- دير سان بائنڊنگ جو مطلب آهي هڪ مخصوص شئي کي تفويض ڪرڻ، ان جي قسم جو حوالو، يا ان جي سپر ڪلاس؛
- وراثت متحرڪ پوليمورفيزم سان لاڳاپيل آهي.
GO TO FULL VERSION