اگر آپ نے کبھی جاوا پروگرامر کے عہدے کے لیے انٹرویو کی تیاری کی ہے یا سرٹیفکیٹ حاصل کرنے کے لیے کوئی امتحان (ضروری نہیں کہ پروگرامنگ میں) دیا ہو، تو غالباً آپ نے پہلے ہی محسوس کیا ہوگا کہ ان کے پوچھے گئے سوالات بہت مخصوص ہیں۔ ان میں سے بہت سے آپ کو زبان کے فن تعمیر کے بارے میں سوچنے پر مجبور کرتے ہیں، کچھ کو گہرے علم کے لیے ڈیزائن کیا گیا ہے۔ ایسے بھی ہیں جو زیادہ پہیلیاں یا تشویشناک باریکیوں کی طرح ہیں جنہیں مشق کے بغیر محسوس کرنا بہت مشکل ہے۔ اس مضمون میں، ڈویلپر سرانس سنگھ جاوا کے ایسے کئی سوالات فراہم کرتا ہے۔ جوابات کے ساتھ، یقینا. 1. اگر آپ ریٹرن یا System.exit() اسٹیٹمنٹ کو ٹرائی/کیچ بلاک میں ڈالتے ہیں تو کیا ہوگا؟ یہ جاوا میں ایک بہت ہی مشہور "کیچ اپ" سوال ہے۔ چال یہ ہے کہ بہت سے پروگرامرز کا خیال ہے کہ بلاک کو
finally
کسی بھی صورت میں عمل میں لایا جائے گا۔ return
یہ سوال بلاک میں اسٹیٹمنٹ رکھ کر try/catch
یا try/catch
اسٹیٹمنٹ بلاک سے کال کرکے اس تصور کو چیلنج کرتا ہے System.exit ()
۔ اس مشکل سوال کا جواب: بلاک کو اس وقت عمل میں لایا جائے گا جب ایک بیان بلاک میں finally
رکھا جائے گا ، اور جب اسٹیٹمنٹ بلاک سے بلایا جائے گا تو اس پر عمل نہیں کیا جائے گا ۔ 2. کیا جاوا متعدد وراثت کی حمایت کرتا ہے؟ یہ بہت مشکل سوال ہے۔ انٹرویو لینے والے اکثر کہتے ہیں: اگر C++ براہ راست متعدد وراثت کی حمایت کر سکتا ہے تو جاوا کیوں نہیں کر سکتا؟ جواب اس سے تھوڑا زیادہ پیچیدہ ہے جتنا کہ لگتا ہے، کیونکہ جاوا ایک سے زیادہ قسم کی وراثت کی حمایت کرتا ہے، کیونکہ اس میں ایک انٹرفیس دوسرے انٹرفیس کو بڑھا سکتا ہے۔ لیکن جاوا زبان نفاذ کی متعدد وراثت کی حمایت نہیں کرتی ہے۔ 3. اس صورت میں جہاں کوئی طریقہ پیرنٹ کلاس میں استثناء پھینکتا ہے ، کیا اسے پھینکنے والے طریقہ سے اوور رائڈ کیا جا سکتا ہے ؟ اوورلوڈنگ اور اوور رائیڈنگ کے تصورات سے متعلق ایک اور مشکل سوال۔ جواب: آپ پیرنٹ کلاس استثناء کو اوور رائیڈڈ طریقہ میں محفوظ طریقے سے پھینک سکتے ہیں ، لیکن آپ ٹائپ کی جانچ شدہ استثناء کے ساتھ ایسا نہیں کر سکتے ۔ 4. اس بات کی ضمانت کیسے دی جائے کہ تھریڈز بغیر تعطل کے وسائل تک رسائی حاصل کر سکتے ہیں ؟ اگر آپ ملٹی تھریڈڈ کوڈ لکھنے میں بہت اچھے نہیں ہیں، تو یہ سوال آپ کے لیے واقعی مشکل ہوگا۔ یہ ایک تجربہ کار پروگرامر کے لیے بھی مشکل ہو سکتا ہے جس نے تعطل اور دوڑ کے حالات سے نمٹا نہیں ہے۔ یہاں چال ترتیب میں ہے: وسائل کو اس ریورس آرڈر میں آزاد کر کے تعطل کو روکا جا سکتا ہے جس میں وہ حاصل کیے گئے تھے۔ 5. کلاسز اور جاوا زبان میں کیا فرق ہے ؟return
try/catch
try/catch
System.exit ()
NullPointerException
RuntimeException
NullPointerException – RuntimeException
Exception
N
N
StringBuffer
StringBuilder
جاوا زبان کے بارے میں ایک کلاسک سوال، جسے کچھ ڈویلپرز کے لیے مشکل اور دوسروں کے لیے بہت آسان سمجھا جاتا ہے۔ کلاس کو StringBuilder
JDK 1.5 میں متعارف کرایا گیا تھا اور ان کے درمیان فرق صرف یہ ہے کہ کلاس کے طریقے StringBuffer
، مثال کے طور پر، length()
یا capacity()
، append()
مطابقت پذیر ہیں، جبکہ کلاس کے متعلقہ طریقے StringBuilder
نہیں ہیں۔ اس بنیادی فرق کی وجہ سے، سٹرنگ کنکٹنیشن StringBuilder
کے ساتھ تیز تر ہے StringBuffer
۔ درحقیقت، StringBuffer
اس کو استعمال کرنے کی سفارش نہیں کی جاتی ہے، کیونکہ استعمال کے 99% معاملات میں، سٹرنگ کنکٹنیشن ایک ہی دھاگے پر کی جاتی ہے۔ 6. ایکسپریشن 1.0/0.0 کیا لوٹتا ہے؟ کیا یہ ایک استثناء پھینک دے گا یا تالیف کی غلطی کا سبب بنے گا؟ کلاس کے بارے میں ایک اور مشکل سوال Double
۔ اگرچہ جاوا کے ڈویلپرز سادہ ڈیٹا ٹائپ ڈبل اور کلاس سے واقف ہیں Double
، جب فلوٹنگ پوائنٹ آپریشنز کرتے ہیں، وہ Double.INFINITY
, NaN
, -0.0
اور ان قواعد پر خاطر خواہ توجہ نہیں دیتے ہیں جو ان سے منسلک ریاضی کے حسابات کو کنٹرول کرتے ہیں۔ اس سوال کا جواب آسان ہے: کوئی رعایت نہیں ArithmeticException
دی جائے گی، قدر واپس کر دی جائے گی Double.INFINITY
۔ 7. اگر آپ HashMap
کسی کلیدی آبجیکٹ میں پہلے سے موجود کسی کلیدی چیز کو داخل کرنے کی کوشش کرتے ہیں تو کیا ہوتا ہے؟ HashMap
یہ مشکل سوال ایک اور اکثر پوچھے جانے والے سوال کا حصہ ہے: وہ جاوا میں کیسے کام کرتے ہیں ؟ HashMap
جاوا زبان کے بارے میں مبہم اور مشکل سوالات کے لیے ایک مقبول موضوع ہے۔ جواب یہ ہے کہ اگر آپ کسی کلید کو دوبارہ داخل کرنے کی کوشش کرتے ہیں HashMap
تو یہ پرانی کی جگہ لے لے گی کیونکہ کلاس HashMap
ڈپلیکیٹ کیز کی اجازت نہیں دیتی ہے۔ اور ایک ہی کلید کا مطلب ایک ہی ہیش کوڈ ہے، لہذا یہ ہیش سیگمنٹ میں ایک ہی جگہ پر ختم ہوگا۔ Quora کے مواد پر مبنی
GO TO FULL VERSION