โค้ดยิม/จาวาบล็อก/สุ่ม/คำถามที่พบบ่อยเกี่ยวกับ Java ที่ซับซ้อนในการสัมภาษณ์
John Squirrels
ระดับ
San Francisco

คำถามที่พบบ่อยเกี่ยวกับ Java ที่ซับซ้อนในการสัมภาษณ์

เผยแพร่ในกลุ่ม
หากคุณเคยเตรียมตัวสำหรับการสัมภาษณ์ ตำแหน่ง โปรแกรมเมอร์ Javaหรือผ่านการสอบใบรับรองใด ๆ (ไม่จำเป็นต้องเกี่ยวกับการเขียนโปรแกรม) คุณอาจสังเกตเห็นแล้วว่าคำถามที่ถามนั้นมีความเฉพาะเจาะจงมาก หลายคนบังคับให้คุณคิดเกี่ยวกับการออกแบบของภาษา บางส่วนได้รับการออกแบบมาเพื่อตรวจสอบความลึกของความรู้ของคุณ มีคำถามที่ดูเหมือนปริศนามากกว่าคำถามอื่นๆ ในขณะที่คำถามอื่นๆ เกี่ยวข้องกับความแตกต่างของภาษาที่เข้าใจได้ยากมากโดยไม่ต้องฝึกฝน ในบทความนี้ ผู้พัฒนาSarans Singนำเสนอคำถามสองสามข้อเกี่ยวกับ Java พร้อมคำตอบแน่นอน คำถาม Java ที่ยุ่งยากถูกถามบ่อยในการสัมภาษณ์ - 11. จะเกิดอะไรขึ้นถ้าฉันใส่ return statement หรือ System.exit() ในบล็อก try/catch? นี่เป็นคำถาม Java ที่ได้รับความนิยมและละเอียดอ่อน เคล็ดลับคือโปรแกรมเมอร์หลายคนเชื่อว่าfinallyบล็อกนั้นทำงานอยู่เสมอ โดยการวางreturnคำสั่งในtry/catchบล็อกหรือโทรSystem.exit()จากภายในtry/catchบล็อก คำถามจะคลายความสงสัยในความเชื่อนี้ คำตอบสำหรับคำถามที่ยุ่งยากนี้คือ:บล็อกfinallyจะถูกดำเนินการเมื่อreturnมีการวางคำสั่งในtry/catchบล็อก แต่จะไม่ถูกดำเนินการเมื่อSystem.exit()ถูกเรียกจากภายในtry/catchบล็อก 2. Java รองรับการสืบทอดหลายรายการหรือไม่ นี่เป็นคำถามที่ยุ่งยากมาก ผู้สัมภาษณ์มักจะถามว่า "ถ้า C ++ รองรับการสืบทอดโดยตรงหลายรายการ แล้วทำไม Java จะทำไม่ได้" คำตอบค่อนข้างซับซ้อนกว่าที่คิด เนื่องจาก Java รองรับการสืบทอดหลายประเภท ท้ายที่สุดแล้ว อินเทอร์เฟซ Java สามารถขยายอินเทอร์เฟซอื่นๆ ได้ ที่กล่าวว่า Java ไม่สนับสนุนการสืบทอดการใช้งานหลายรายการ 3. หากเมธอดในคลาสพาเรนต์โยน s เมธอดที่โยน s NullPointerExceptionจะถูกแทนที่ด้วยวิธีนี้ หรือไม่ RuntimeException นี่เป็นอีกคำถามที่ยุ่งยากที่เกี่ยวข้องกับการโอเวอร์โหลดและการเอาชนะ คำตอบ:เมธอดที่ถูกแทนที่สามารถโยนNullPointerExceptionคลาสพาเรนต์ของ RuntimeException ได้อย่างปลอดภัย แต่คุณไม่สามารถทำเช่นเดียวกันกับประเภทข้อยกเว้นที่ตรวจสอบได้ เช่นException. 4. คุณจะรับประกันได้อย่างไรว่าNเธรดสามารถเข้าถึงNทรัพยากรโดยไม่มีการหยุดชะงัก? หากการเขียนโค้ดแบบมัลติเธรดไม่ใช่สิ่งที่คุณถนัด คุณอาจสะดุดกับคำถามนี้ อาจเป็นเรื่องยากแม้แต่กับโปรแกรมเมอร์ที่มีประสบการณ์ซึ่งไม่เคยพบกับการหยุดชะงักและสภาวะการแข่งขัน เคล็ดลับทั้งหมดนี้เป็นไปตามลำดับ:คุณสามารถป้องกันการหยุดชะงักได้โดยการปล่อยทรัพยากรในลำดับย้อนกลับที่ได้รับมา 5. ความแตกต่างระหว่าง the StringBufferและStringBuilderclass ใน Java คืออะไร? นี่เป็นคำถามภาษา Java แบบคลาสสิกที่นักพัฒนาบางคนพบว่ายุ่งยากและคำถามอื่น ๆ ก็ง่ายมาก ชั้นStringBuilderเรียนปรากฏใน JDK 1.5 ข้อแตกต่างเพียงอย่างเดียวระหว่างคลาสเหล่านี้คือStringBufferเมธอดต่างๆ เช่นlength(), capacity()และappend()จะถูกซิงโครไนซ์ ในขณะที่เมธอดที่เกี่ยวข้องในStringBuilderไม่ได้ ความแตก ต่างพื้นฐานนี้หมายความว่าการต่อสตริงจะเร็วกว่าStringBuilderด้วย ที่จริงแล้ว ไม่แนะนำให้ StringBufferใช้ เนื่องจากการต่อสตริงจะดำเนินการในเธรดเดียวกัน 99% ของเวลาทั้งหมด 6. ผลลัพธ์ของการประเมินนิพจน์ 1.0/0.0 คืออะไร? มันจะทำให้เกิดข้อยกเว้นหรือข้อผิดพลาดในการคอมไพล์หรือไม่? นี่เป็นอีกหนึ่งคำถามที่ยุ่งยากเกี่ยวกับชั้นเรียน นักพัฒนา Java ตระหนักถึงการมีอยู่ของประเภทข้อมูลคู่ดั้งเดิมและคลาสแต่เมื่อทำการดำเนินการทศนิยม พวกเขาไม่ได้ให้ความสนใจเพียงพอกับ, , และกฎที่ควบคุมการคำนวณทางคณิตศาสตร์ที่เกี่ยวข้อง คำตอบสำหรับคำถามนี้ง่ายมาก :StringBufferคำถาม Java ที่ยุ่งยากถูกถามบ่อยในการสัมภาษณ์ - 2DoubleDoubleDouble.POSITIVE_INFINITYDouble.NEGATIVE_INFINITYNaN-0.0ArithmeticExceptionจะไม่ถูกโยนทิ้ง นิพจน์ประเมินDouble.POSITIVE_INFINITYเป็น 7. จะเกิดอะไรขึ้นหากคุณพยายามใส่คีย์ลงในคีย์HashMapที่มีคีย์นั้นอยู่แล้ว คำถามที่ยุ่งยากนี้เป็นส่วนหนึ่งของคำถามที่พบบ่อย: HashMapJava ทำงาน อย่างไร HashMapเป็นแหล่งยอดนิยมของคำถามที่สับสนและซับซ้อนเกี่ยวกับ Java นี่คือคำตอบ:หากคุณพยายามใส่คีย์ใหม่ใน a HashMapคีย์เก่าจะถูกแทนที่ เนื่องจากHashMapคลาสไม่อนุญาตให้ใช้คีย์ซ้ำ และคีย์เดียวกันจะได้รับรหัสแฮชเดียวกัน ซึ่งหมายความว่ามันจะจบลงที่ตำแหน่งเดียวกันในถังแฮช ขึ้นอยู่กับวัสดุ Quora
ความคิดเห็น
  • เป็นที่นิยม
  • ใหม่
  • เก่า
คุณต้องลงชื่อเข้าใช้เพื่อแสดงความคิดเห็น
หน้านี้ยังไม่มีความคิดเห็นใด ๆ