[myth]Java, call by reference?

Untuk programmer yang belajar java dari background C, pasti ingat waktu belajar C dengan yang namanya pointer. Pointer memungkinkan fungsi di C untuk melakukan panggilan dengan parameter yang isinya adalah reference, atau call by reference.

Bagaimana di Java? betulkah primitif variable dipanggil call by value dan objek dipanggil secara call by reference?

Jawabannya tidak.

Semua pemanggilan fungsi di Java adalah secara call by value. Titik. Jika yang di-pass dalam pemanggilan fungsi adalah sebuah variabel reference, maka yang dikirim adalah nilai dari variabel tersebut, yaitu alamat objek itu di memori, bukan alamat variabel itu sendiri. Ini mengakibatkan di Java tidak bisa membuat fungsi untuk menukar nilai yang ditunjuk oleh dua buah variabel.

Demikian sekilas info.