اگر آپ نے کبھی جاوا پروگرامر کی پوزیشن کے لیے انٹرویو کے لیے تیاری کی ہے یا کوئی سرٹیفیکیشن امتحان پاس کیا ہے (ضروری نہیں کہ پروگرامنگ کے بارے میں)، تو آپ نے شاید پہلے ہی محسوس کیا ہو گا کہ وہاں پوچھے گئے سوالات بہت مخصوص ہیں۔ ان میں سے بہت سے آپ کو زبان کے ڈیزائن کے بارے میں سوچنے پر مجبور کرتے ہیں۔ کچھ آپ کے علم کی گہرائیوں کو جانچنے کے لیے بنائے گئے ہیں۔ ایسے سوالات ہیں جو کسی بھی چیز سے زیادہ پہیلیاں کی طرح نظر آتے ہیں، جب کہ دوسرے زبان کی باریکیوں سے متعلق ہیں جن کو مشق کے بغیر سمجھنا بہت مشکل ہے۔ اس مضمون میں، ڈویلپر سارنس سنگ جاوا کے بارے میں ایسے ہی چند سوالات پیش کرتا ہے۔ جوابات کے ساتھ، یقیناً۔
1. اگر میں ریٹرن اسٹیٹمنٹ یا System.exit() کو try/catch بلاک میں ڈالوں تو کیا ہوگا؟ یہ جاوا کا ایک بہت ہی مشہور اور لطیف سوال ہے۔ چال یہ ہے کہ بہت سے پروگرامرز کا خیال ہے کہ

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