java pass by value pass by reference ต่างกันยังไง
จะว่าไปเรื่องของการ pass by value หรือ pass by reference นั้น
มีการพูดถึงกันอยู่พอสมควร
บ้างก็บอกว่า Java ไม่มี pass by reference บ้างก็บอกว่ามี
จากที่ผมเข้าใจในความคิดของผมเองนะครับ
เนื่องจากว่า Java เป็นภาษาเชิงวัตถุที่ไม่ได้ 100% นักเนื่องจากมี
primitive data type คือตัวแปรที่ภาษาอื่นๆ มีักันทั่วไป
ถ้า Scope แค่ primitive data type ในภาษา Java นั้น Pass By Value อย่างเดียวครับไม่มี pass by reference
แต่เนื่องจาก java เป็นภาษาเชิง Object แน่นอนตัวแปรที่เป็น Object ย่อมมีการเรียกใช้งานและส่งผ่าน Parameter กันไป
ซึ่งการส่งผ่านตัวแปรประเภทนี้จะเป็นการอ้างอิงที่ Reference ครับ
ทำให้มองเหมือนเป็น Pass By Reference
สรุป ในภาษา Java เอาแบบที่เข้าใจง่ายๆ ก็คือ
Primitive Data Type : Pass By Value เท่านั้น
Object Variable : Pass By Reference เท่านั้น
.... ยกเว้น String เห่อๆ งง ดีแท้
* เพระงั้นถ้าอยากจะส่งตัวเลขทีเ่ป็น Primitive แล้วอยากให้ทำงานแบบ Pass By Reference ก็จับยัดใส่ Object แล้วส่งไปนะคร้าบ