โปรแกรมเมอร์พบว่า Null Pointer Exception เกิดขึ้นในโปรแกรมที่ขัดขวางการทำงาน แต่ปรากฎว่าตัวแปรไม่เคยเป็น Null ในข้อมูลอินพุตที่ทดสอบ ปัญหานี้อาจเกิดจากสาเหตุใด

ระบบปฏิบัติการไม่ได้จัดสรรหน่วยความจำอย่างถูกต้อง
ฮาร์ดแวร์ของเครื่องขาดเสถียรภาพในการทำงาน จึงทำให้ข้อมูลในหน่วยความจำเกิดความเสียหายระหว่างการประมวลผล
ข้อมูลถูกกำจัด (Garbage Collected) โดยระบบ
โปรแกรมมี Race Condition ที่ทำให้ตัวแปรถูกตั้งเป็น Null จากเธรดอื่น

เฉลยอธิบาย

Race Condition เกิดขึ้นเมื่อเธรด (Thread) หลายตัวเข้าถึงและแก้ไขตัวแปรเดียวกันพร้อมๆ กันโดยไม่มี Synchronization ตัวแปรอาจถูกตั้งเป็น Null โดยเธรดหนึ่งขณะที่เธรดอื่นกำลังพยายามเข้าถึง ซึ่งไม่เกิดขึ้นในการทดสอบแบบ Single-threaded ตัวเลือก A เกี่ยวข้องกับฮาร์ดแวร์แต่ไม่อธิบายสาเหตุของ Null Pointer ตัวเลือก C ไม่ใช่สาเหตุทั่วไป ตัวเลือก D เป็นการทำความสะอาดหน่วยความจำโดยเจตนา ไม่ใช่ข้อบกพร่อง

ข้อสอบอื่นในวิชาความรู้เกี่ยวกับการใช้คอมพิวเตอร์ ระบบฮาร์ดแวร์ (Hardware) และระบบซอฟต์แวร์ (Software) และระบบความมั่นคงปลอดภัยด้านสารสนเทศ

ดูข้อสอบวิชานี้ทั้งหมด →