[JAVA] Pass By ?
ปัญหานี้น่าจะเป็นปัญหาที่โลกแตกพอสมควรครับ และเป็นเรื่องที่ควรรู้ และเข้าใจครับ ไม่งั้น เวลาเจอ Defect อยู่ๆข้อมูลเปลี่ยนเฉย ผีหลอก หรือป่าว ไม่ใช่ครับ เราอาจจะเข้าใจผิดมาตลอด ตอนเรียน 2 ปีแรกที่มหาวิทยาลัย สิ่งที่ผมเข้าใจเกี่ยวกับ pass by ของ Java คือ พวก Primitive Data Type เป็นการ Pass by Value ครับ พวก Reference Type อย่าง Object เป็นการ Pass by Reference แต่ที่ผมเข้าใจมาผิดหมดครับ มารู้จริงๆ ตอนฝึกงานครับ เจอคำถามของพี่เลี้ยงไปจุกครับ พี่เลี้ยงเค้าบอกว่า Java ไม่ว่าเป็น Primitive Data Type หรือ Reference Type มีการ Pass by Value เท่านั้นครับ หลายคนน่าจะงงกัน มาลองดูกันครับ Primitive Data Type Pass by Value ไม่น่าจะงงกัน Reference Type อย่าง Object นี่ คือ Java ไม่ได้ Pass by Reference ตรงๆ แต่ Pass Reference Type by Value เอาง่ายๆ Copy Reference ครับ ลองดูจากตัวอยาง Code ได้ครับ package com.debuggingsoft.testpassby; public class TestPassbyReference { public static void main(String[] args)…