CodeGym /בלוג Java /Random-HE /שאלות ג'אווה טריקיות שנשאלות לעתים קרובות בראיונות
John Squirrels
רָמָה
San Francisco

שאלות ג'אווה טריקיות שנשאלות לעתים קרובות בראיונות

פורסם בקבוצה
אם אי פעם התכוננתם לראיון לתפקיד מתכנת ג'אווה או עברתם בחינת הסמכה כלשהי (לאו דווקא בנושא תכנות), אז בטח כבר שמתם לב שהשאלות שנשאלות שם מאוד ספציפיות. רבים מהם מאלצים אותך לחשוב על עיצוב השפה. חלקם נועדו לחקור את מעמקי הידע שלך. ישנן שאלות שנראות יותר כמו חידות מכל דבר אחר, בעוד שאחרות מתייחסות לניואנסים של השפה שקשה מאוד לתפוס ללא תרגול. במאמר זה, המפתח Sarans Sing מציג כמה שאלות כאלה על Java. עם תשובות כמובן. שאלות ג'אווה טריקיות הנשאלות נפוצות בראיונות - 11. מה קורה אם אני שם משפט return או System.exit() בבלוק try/catch? זוהי שאלת ג'אווה מאוד פופולרית ועדינה. החוכמה היא שמתכנתים רבים מאמינים שהחסימה finallyתמיד מבוצעת. על ידי הצבת returnאמירה בבלוק try/catchאו קריאה System.exit()מתוך try/catchבלוק, השאלה מטילה ספק באמונה זו. התשובה לשאלה המסובכת הזו היא: הבלוק finallyיתבצע כאשר returnהצהרה ממוקמת בבלוק try/catch, אך לא יתבצע כאשר System.exit()נקרא מתוך try/catchבלוק. 2. האם Java תומך בירושה מרובה? זו שאלה מאוד מסובכת. מראיינים שואלים לעתים קרובות, "אם C++ תומך בירושה ישירה מרובה, אז למה Java לא יכול?" התשובה קצת יותר מסובכת ממה שזה נראה, מכיוון ש-Java תומכת בירושה מסוגים מרובים . אחרי הכל, ממשק Java יכול להרחיב ממשקים אחרים. עם זאת, Java אינה תומכת בהורשה מרובה של יישומים. 3. אם מתודה במחלקת אב זורקת NullPointerExceptions, האם ניתן לעקוף אותה על ידי מתודה שזורקת RuntimeExceptions? זו עוד שאלה מסובכת הקשורה לעומס יתר ועקיפה. תשובה: שיטה שנדרסה יכולה לזרוק בבטחה NullPointerExceptionאת מחלקת האב של RuntimeException, אך אינך יכול לעשות את אותו הדבר עם סוג חריג מסומן כמו Exception. 4. איך אתה מבטיח ששרשורים Nיכולים לגשת Nלמשאבים ללא מבוי סתום? אם כתיבת קוד עם ריבוי חוטים אינו הצד החזק שלך, אתה עלול להיתקל בשאלה זו. זה יכול להיות קשה אפילו למתכנת מנוסה שלא נתקל במבוי סתום ובתנאי מירוץ. כל הטריק כאן הוא לפי הסדר: אתה יכול למנוע מבוי סתום על ידי שחרור משאבים בסדר הפוך שבו הם נרכשו. 5. מה ההבדל בין המחלקות ל- StringBufferו StringBuilderב-Java? זוהי שאלה קלאסית בשפת ג'אווה שחלק מהמפתחים מוצאים שהיא מסובכת ואחרים - פשוטה מאוד. הStringBuilderהכיתה הופיעה ב-JDK 1.5. ההבדל היחיד בין המחלקות הללו הוא StringBufferשהשיטות של, כגון length(), capacity(), ו- append()מסונכרנות, בעוד שהשיטות המתאימות ב- StringBuilderלא. הבדל מהותי זה אומר ששרשור המחרוזות מהיר יותר עם StringBuilderמאשר עם StringBuffer. למעשה, השימוש StringBufferאינו מומלץ, מכיוון ששרשור מחרוזת מתבצע על אותו חוט 99% מהזמן. 6. מהי התוצאה של הערכת הביטוי 1.0/0.0? האם זה יפיק חריג או שגיאת קומפילציה? זו עוד שאלה מסובכת על הכיתה. מפתחי Java מודעים לקיומם של סוג נתונים כפול פרימיטיבי ומחלקה , אך בעת ביצוע פעולות נקודה צפה הם לא שמים לב מספיק ל- , , , ולכללים השולטים בחישובים אריתמטיים קשורים. התשובה לשאלה זו פשוטה: לא ייזרק; הביטוי מוערך ל . 7. מה קורה אם תנסה להכניס מפתח לתוך a שכבר מכיל את המפתח הזה? השאלה המסובכת הזו היא חלק משאלת נפוצה נוספת: איך עובד בג'אווה? הוא מקור פופולרי לשאלות מבלבלות ומסובכות על ג'אווה. הנה התשובה: אם תנסה להכניס מחדש מפתח ב- , המפתח הישן יוחלף, מכיוון שהמחלקה לא מאפשרת שכפול מפתחות. ואותו מפתח יקבל את אותו קוד חשיש, מה שאומר שהוא יגיע לאותו מקום בדלי ה-hash. מבוסס על חומרים של Quora שאלות ג'אווה טריקיות שנשאלות נפוצות בראיונות - 2 DoubleDoubleDouble.POSITIVE_INFINITYDouble.NEGATIVE_INFINITYNaN-0.0ArithmeticExceptionDouble.POSITIVE_INFINITYHashMapHashMapHashMapHashMapHashMap
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION