คำถามสัมภาษณ์เขียนโค้ด Java
โดย Aaron Cao · อัปเดตเมื่อ
คาดหวังคำถามภาษาหลักเกี่ยวกับคอลเลกชัน เจเนอริก (generics) และข้อยกเว้น (exceptions) หัวข้อการทำงานพร้อมกันและ JVM เช่นเธรดและการเก็บขยะ (garbage collection) และโจทย์อัลกอริทึมที่ต้องแก้ด้วย Java รอบสัมภาษณ์ส่วนใหญ่ผสมความรู้ภาษาเข้ากับการแก้ปัญหาสดบนตัวแก้ไขโค้ดที่แชร์ร่วมกัน
คำถามภาษา Java หลัก
คุณคาดหวังโจทย์อัลกอริทึม แต่รอบสัมภาษณ์ Java มักทดสอบตัวภาษาเองก่อน และตรงนี้เองที่ผู้สมัครที่เตรียมตัวมาดีจะได้เปรียบ ส่วนนี้ครอบคลุมหัวข้อหลักที่มักเจอเกือบทุกครั้ง
- คอลเลกชัน (Collections) เมื่อใดควรใช้
ArrayListเทียบกับLinkedListHashMapทำงานอย่างไร และอะไรที่ทำให้equalsกับhashCodeเสียหาย - เจเนอริกและความปลอดภัยของชนิดข้อมูล ชนิดที่มีขอบเขต (bounded types) ไวลด์การ์ด (wildcards) และการลบชนิด (type erasure)
- ข้อยกเว้น (Exceptions) Checked เทียบกับ unchecked และเมื่อใดควรจับหรือส่งต่อ
- ความไม่เปลี่ยนแปลง (Immutability) เหตุใด
Stringจึงไม่เปลี่ยนแปลง และวิธีออกแบบคลาสที่ไม่เปลี่ยนแปลง
การทำงานพร้อมกันและ JVM
สำหรับตำแหน่งระดับ mid และ senior ให้คาดหวังคำถามชุดหนึ่งเกี่ยวกับวิธีที่ Java ทำงาน จุดนี้แหละที่คำตอบคลุมเครือจะถูกจับได้
- เธรดและการซิงโครไนซ์
synchronizedvolatileและเรซคอนดิชัน (race conditions) ที่พบบ่อย - โมเดลหน่วยความจำ ฮีป (heap) เทียบกับสแตก (stack) และวิธีที่การเก็บขยะเรียกคืนอ็อบเจกต์
- ยูทิลิตีสำหรับการทำงานพร้อมกัน
ExecutorServiceเธรดพูล และเมื่อใดควรใช้
คุณไม่จำเป็นต้องท่องสเปกให้ขึ้นใจ แต่ต้องอธิบายข้อแลกเปลี่ยน (trade-off) ได้อย่างชัดเจน ซึ่งเป็นสิ่งที่การฝึกฝนสร้างขึ้นมาพอดี
อัลกอริทึมและการแก้ปัญหาใน Java
รอบแก้ปัญหาโดยหลักการแล้วไม่ขึ้นกับภาษา แต่คุณต้องเขียนมันด้วย Java ดังนั้นความสะดวกในการใช้งานภาษาจึงสำคัญ ลองนึกถึงผู้สมัครที่สัมภาษณ์ตำแหน่งแบ็กเอนด์ที่บริษัทด้านการชำระเงิน เธอถูกขอให้กำจัดรายการซ้ำในสตรีมของธุรกรรม อัลกอริทึมคือ HashSet แต่สิ่งที่ผู้สัมภาษณ์จับตาดูจริง ๆ คือเธออธิบายแนวทางออกเสียงหรือไม่ ระบุความซับซ้อนของเวลา (time complexity) และจัดการกรณีขอบของฟิลด์ที่เป็น null ก่อนเขียนบรรทัดแรกหรือเปล่า
ฝึกพูดแผนออกเสียงก่อนพิมพ์ คุณสามารถซ้อมจังหวะนี้กับผู้สัมภาษณ์ AI ได้ที่หน้า /mock-interview
ผู้ช่วยสดเข้ากับการสัมภาษณ์ Java อย่างไร
ในการสัมภาษณ์เชิงเทคนิคแบบพูดคุยผ่านวิดีโอคอล SubcueAI จะถอดเสียงคำถามของผู้สัมภาษณ์และแสดงแนวทางที่แนะนำในฝั่งของคุณ ไม่ว่าจะเป็นในโอเวอร์เลย์บนเดสก์ท็อปสำหรับ macOS และ Windows หรือในแผงด้านข้างของส่วนขยายเบราว์เซอร์ Chromium ไม่มีบอทเข้าร่วมการประชุม และไม่มีการฝังสิ่งใดเข้าไปในหน้าประชุม
ข้อจำกัดที่ตรงไปตรงมานี้สำคัญสำหรับรอบเขียนโค้ด หากคุณอยู่บนแพลตฟอร์มเขียนโค้ดที่มอนิเตอร์หน้าจอหรือมีผู้คุมสอบ ผู้ช่วยสดจะอยู่นอกขอบเขต และคุณควรถือว่านั่นคือทักษะของตัวคุณเองเท่านั้น หัวข้อ ประเภทการสัมภาษณ์ มีข้อมูลเพิ่มเติมเกี่ยวกับรอบเทคนิค