اگر تا به حال برای یک مصاحبه برای موقعیت یک برنامه نویس جاوا آماده شده اید یا در هر آزمونی (نه لزوما در برنامه نویسی) برای دریافت گواهی شرکت کرده اید، به احتمال زیاد قبلاً متوجه شده اید که سؤالاتی که آنها می پرسند بسیار خاص هستند. بسیاری از آنها شما را وادار می کنند به معماری زبان فکر کنید، برخی برای دانش عمیق طراحی شده اند. مواردی نیز وجود دارند که بیشتر شبیه پازل هستند یا به نکات ظریف مربوط می شوند که بدون تمرین احساس کردن آنها بسیار دشوار است. در این مقاله، توسعه دهنده Saraans Singh چندین سؤال از این قبیل جاوا را ارائه می دهد. البته با جواب 1. اگر یک عبارت return یا System.exit() را در یک بلوک try/catch قرار دهید چه اتفاقی می افتد؟ این یک سوال بسیار محبوب در جاوا است. ترفند این است که بسیاری از برنامه نویسان معتقدند که بلوک
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 و class آگاه هستند ، اما هنگام انجام عملیات ممیز شناور ، به , و قوانین حاکم بر محاسبات حسابی مرتبط با آنها Double
توجه کافی ندارند . پاسخ به این سوال ساده است: هیچ استثنایی ایجاد نخواهد شد، مقدار برگردانده خواهد شد . 7. اگر بخواهید یک شیء کلیدی را در یک شیء کلیدی که قبلاً در آن وجود دارد وارد کنید چه اتفاقی می افتد؟ این سؤال پیچیده بخشی از سؤال متداول دیگری است: چگونه آنها در جاوا کار می کنند؟ یک موضوع محبوب برای سوالات گیج کننده و پیچیده در مورد زبان جاوا است. پاسخ این است که اگر بخواهید یک کلید را دوباره وارد کنید ، جایگزین کلید قبلی می شود زیرا کلاس اجازه کلیدهای تکراری را نمی دهد. و همان کلید به معنای همان کد هش است، بنابراین در همان قسمت در قسمت هش قرار می گیرد. بر اساس مواد QuoraDouble.INFINITY
NaN
-0.0
ArithmeticException
Double.INFINITY
HashMap
HashMap
HashMap
HashMap
HashMap
GO TO FULL VERSION