[JAVA] Pass By ?

ปัญหานี้น่าจะเป็นปัญหาที่โลกแตกพอสมควรครับ และเป็นเรื่องที่ควรรู้ และเข้าใจครับ ไม่งั้น เวลาเจอ Defect อยู่ๆข้อมูลเปลี่ยนเฉย ผีหลอก หรือป่าว ไม่ใช่ครับ เราอาจจะเข้าใจผิดมาตลอด ตอนเรียน 2 ปีแรกที่มหาวิทยาลัย สิ่งที่ผมเข้าใจเกี่ยวกับ pass by ของ Java คือ แต่ที่ผมเข้าใจมาผิดหมดครับ มารู้จริงๆ ตอนฝึกงานครับ เจอคำถามของพี่เลี้ยงไปจุกครับ พี่เลี้ยงเค้าบอกว่า Java ไม่ว่าเป็น Primitive Data Type หรือ Reference Type มีการ Pass by Value เท่านั้นครับ หลายคนน่าจะงงกัน มาลองดูกันครับ จาก Code ลองมาดูผลลัพธ์กันครับ ผมจะ Prove ว่าถ้ามัน Pass by Reference จริงๆ แล้วค่าต้องเปลี่ยนครับ จากการทดสอบของผมครับได้ผลลัพธ์ ดังนี้ java.lang.NullPointerException แต่มันไม่แสดงนี่สิ แสดงว่า Java Pass by Value ถ้า Pass by Reference แล้วค่าต้องเปลี่ยนครับ หลังจากเข้าใจแล้ว ว่าแต่ทำไม Java ถึงมีแต่ Pass by Value ทั้งหมด !!! คงต้องกลับไปตอนเรียนวิชา CP121 ไม่ใช่สิ ต้อง CP111 วิชา Programming I ภาษา C นั้นเองครับ ตัวภาษาตระกูล C มันมี ของแสบอย่างหรือครับ คือ Pointer เรามาดูดีกว่าว่าภาษา C Pass by ? ต่อไปขยับอีกนิดเป็น C++ แต่สิ่งที่ C กับ…