10 คำถามสัมภาษณ์ Java ที่ยากที่สุด
คำถามและคำตอบ Java ที่ท้าทายคำถามสัมภาษณ์
Java ที่ท้าทายคืออะไร ทำไมคนถึงศึกษาก่อนไปสัมภาษณ์? เป็นเรื่องปกติที่ผู้คนจะเตรียมตัวสำหรับคำถามยากๆ แม้ว่าพวกเขาจะไม่คาดหวังว่าจะถูกถามคำถามยากๆ จากJava
ก็ตาม การเตรียมตัวสำหรับ
คำถามที่ยากและยุ่งยากจะช่วยเพิ่มความมั่นใจและช่วยให้คุณตอบคำถามอื่นๆ ได้ ในทางกลับกัน หากคุณไม่เตรียมตัวสำหรับคำถามยากๆ การปรากฏตัวของพวกเขาระหว่างการสัมภาษณ์หรือการสอบข้อเขียนจะทำให้คุณประหลาดใจ แต่คำจำกัดความของ
คำถามที่ถือว่าเป็นคำถามที่ยากนั้นไม่เป็นสากล คำถามเดียวกันอาจเป็นเรื่องยากสำหรับโปรแกรมเมอร์คนหนึ่งและง่ายสำหรับอีกคนหนึ่ง ดังนั้น ควรเตรียมรายการคำถามยากๆ ส่วนตัวของคุณให้พร้อมก่อนที่จะไปสัมภาษณ์
งาน Java ในบทความนี้ ฉันจะแบ่งปันคำถามท้าทายสิบข้อที่อาจช่วยคุณได้
10 คำถามสัมภาษณ์งาน Java ยากและคำตอบ ตามที่ฉันได้เขียนไปแล้ว ตอนนี้จะเป็นรายการคำถามยากๆ 10 ข้อพร้อมเคล็ดลับที่คุณอาจพบระหว่างการสัมภาษณ์ คำถามเหล่านี้เกี่ยวข้องกับ
เคอร์เนล Java เท่านั้น และไม่มีผลกับ
J2EE อย่างที่ผมบอกไป คำถามเหล่านี้อาจจะง่ายสำหรับคุณและคุณก็รู้คำตอบอยู่แล้ว แต่ถึงกระนั้นก็เจอพวกเขาตอนสัมภาษณ์และโดยส่วนตัวแล้วฉันรู้จักคนที่ไม่สามารถตอบได้
เหตุใดจึงมีการประกาศเมธอด wait() และ notify() ในคลาส Object ไม่ใช่ Thread ในอีกด้านหนึ่ง ไม่ใช่คุณที่พัฒนา
ภาษา Javaคุณจะรู้ได้อย่างไรว่าทำไมมันถึงทำเช่นนี้และไม่ใช่อย่างอื่น? แต่ถ้าคุณใช้สามัญสำนึกและความรู้เชิงลึกเกี่ยวกับ
การเขียนโปรแกรม Javaคุณจะพบคำตอบได้อย่างง่ายดาย อ่านโพสต์นี้ -
เหตุใดจึงมีการประกาศwait()และ
notify
() ในคลาส
Object
ไม่ใช่
Thread
เหตุใดจึงไม่รองรับการสืบทอดหลายรายการใน Java ความยากของคำถามนี้หลักๆ แล้วก็คือคำตอบของคุณอาจไม่ตรงใจผู้ถาม ในกรณีส่วนใหญ่ จำเป็นต้องมีตัวอย่างที่เฉพาะเจาะจง และหากคุณระบุรายชื่อเหล่านั้น ผู้สัมภาษณ์คุณจะมีความสุข ฉันจะให้ลิงก์ไปยังบล็อกของฉันอีกครั้ง -
เหตุใดJavaจึงไม่รองรับการสืบทอดหลายรายการเพื่อตอบคำถามนี้
เหตุใด Java จึงไม่รองรับโอเปอเรเตอร์โอเวอร์โหลด
คำถาม Java ยากอีกข้อจากหมวดหมู่เดียวกัน
C++รองรับโอเปอเรเตอร์โอเวอร์โหลด ทำไม
Java ถึง ไม่มี ผู้คนอาจให้ข้อโต้แย้งนี้และข้อโต้แย้งที่คล้ายกันแก่คุณ และบางครั้งก็บอกว่า
ตัวดำเนินการ +มีการโหลดมากเกินไปใน
Javaเพื่อรวมสตริง แต่อย่าหลงกล อ่าน
สาเหตุที่ Java ไม่รองรับการโอเวอร์โหลดโอเปอเรเตอร์เพื่อดูคำตอบโดยละเอียดสำหรับคำถามที่ยุ่งยากนี้
เหตุใดสตริงจึงไม่เปลี่ยนรูปใน Java คำถามสัมภาษณ์ที่ฉันชอบ มันยากและยุ่งยาก แต่ก็มีประโยชน์มากเช่นกัน คุณอาจถูกถามว่าทำไมสตริงจึงถูกประกาศ
ขั้นสุดท้าย ใน
Java อ่านที่นี่
ว่าทำไมสตริงใน Java จึงเป็นที่สิ้นสุดและไม่เปลี่ยนรูป
เหตุใดอาร์เรย์อักขระจึงดีกว่าสตริงสำหรับจัดเก็บรหัสผ่านใน Java และอีกหนึ่งคำถามที่ยุ่งยากเกี่ยวกับสตริง และเชื่อฉันเถอะว่า
โปรแกรมเมอร์ Java เพียงไม่กี่คนเท่านั้น ที่จะตอบได้ นี่เป็นคำถามที่ยากมากเกี่ยวกับ
Java core และต้องอาศัยความรู้เต็มรูปแบบเกี่ยวกับคลาส
Stringจึงจะตอบได้ อ่าน
เหตุใดอาร์เรย์อักขระจึงดีกว่าสตริงสำหรับจัดเก็บรหัสผ่านเพื่อค้นหาคำตอบ
จะสร้างซิงเกิลตันที่ปลอดภัยสำหรับเธรดใน Java โดยใช้การล็อคแบบตรวจสอบซ้ำได้อย่างไร
อีกวิธีหนึ่งในการกำหนดคำถามนี้คือ singleton-safe singleton คืออะไร และจะสร้างได้ อย่างไร ก่อน
Java 5วิธีเดียวที่จะสร้างซิงเกิลตันที่ปลอดภัยสำหรับเธรดคือการล็อกสองครั้ง ไม่เช่นนั้นหากหลายเธรดพยายามเข้าถึงซิงเกิลตันพร้อมกัน เธรดแต่ละรายการจะได้รับอินสแตนซ์ที่แตกต่างกัน เริ่ม ต้นด้วย
Java 5
ปัญหานี้ได้รับการแก้ไขโดยใช้ Enum แต่ถ้าคนที่สัมภาษณ์คุณยืนกราน ให้เขียนโค้ดนี้ให้เขา เพียงอย่าลืมตั้งค่าเป็น
volatile รายละเอียดเพิ่มเติมที่นี่
10 คำถามเกี่ยวกับซิงเกิลตันใน Java
เขียนโปรแกรม Java ที่สร้างการหยุดชะงักและแก้ไข หนึ่งในคำถามคลาสสิก แต่ก็ยังยากซึ่งเป็นคำตอบที่ต้องใช้ประสบการณ์ในการเขียนแอปพลิเคชันแบบมัลติเธรด อ่าน
วิธีสร้างหรือป้องกันการหยุดชะงักใน Java
จะเกิดอะไรขึ้นหากคลาส Serializable ของคุณมีฟิลด์ที่ไม่สามารถซีเรียลไลซ์ได้ จะแก้ไขได้อย่างไร? ความพยายามใด ๆ ที่จะทำให้คลาสดังกล่าวเป็นอนุกรมจะทำให้เกิด
NotSerializableExceptionและวิธีที่ง่ายที่สุดในการแก้ไขคือการประกาศฟิลด์
ชั่วคราว ดัง กล่าว อ่าน
คำถามเกี่ยวกับการออกหมายเลขซีเรียล 10 อันดับแรกหากคุณต้องการรายละเอียดเพิ่มเติม
เหตุใดจึงรอและแจ้งเตือนการโทรจากวิธีการซิงโครไนซ์ใน Java และอีกหนึ่งคำถามเกี่ยวกับ
Java core พวกเขาถูกเรียกจาก
วิธีการซิงโครไนซ์หรือบล็อกซิงโครไนซ์เนื่องจาก
wait()และ
notify()จำเป็นต้องมี mutex บนอ็อบเจ็กต์ที่ถูกเรียก คุณสามารถอ่านคำตอบทั้งหมดได้ที่นี่ - ทำไม wait (
) และ notify() จึงต้องถูกเรียกในบริบทที่ซิงโครไนซ์
คุณสามารถแทนที่วิธีคงที่ใน Java ได้หรือไม่? ถ้าฉันสร้างวิธีการด้วยชื่อเดียวกันในคลาสสืบทอด จะทำให้เกิดข้อผิดพลาดในการคอมไพล์หรือไม่ ไม่ คุณไม่สามารถแทนที่
วิธีคงที่ใน Javaได้ แต่ถ้าคุณสร้างเมธอดแบบสแตติกในคลาสสืบทอดที่มีชื่อเดียวกันกับในคลาสบรรพบุรุษ สิ่งนี้จะไม่ทำให้เกิดข้อผิดพลาดในการคอมไพล์ นี่เรียกว่า "วิธีการซ่อน" คุณสามารถอ่านคำตอบโดยละเอียดเพิ่มเติมได้ที่นี่:
คุณสามารถแทนที่วิธีคงที่ใน Java ได้ หรือไม่ นี่คือรายการคำถามยาก ๆ ของฉันใน
Javaและคำตอบสำหรับพวกเขา สำหรับโปรแกรมเมอร์ที่มีประสบการณ์บางคนดูไม่ซับซ้อนมากนัก แต่มีลูกเล่นและการตอบจะไม่ง่ายสำหรับโปรแกรมเมอร์มือใหม่ หากคุณเจอคำถามยาก ๆ เกี่ยวกับ
Javaโปรดแบ่งปันกับเรา
บทความต้นฉบับ
GO TO FULL VERSION