Pada contoh kita, kita telah mecoba melewati variable pada method. Bagaimanapun juga kita tidak dapat membedakan antara perbedaan tipe variabel passing dalam Java. Ada dua tipe data passing pada method, yang pertama adalah pass-by-value dan yang kedua adalah pass-by-reference.
1. Pass-by-Value
Ketika pass-by-values terjadi, method menggunakan sebuah copy pada nilai pada variable yang dilewatkan pada method. method tidak dapat secara langsung dimodifikasi secara argument langsung meskipun jika dimodifikasi parameternya selama perhitungan berlangsung.

Contoh Pass-by-Value
Pada contoh diatas yang telah diberikan, kita memanggil method tes dan melewatkan nilai i sebagai parameter. Nilai pada i dikopikan pada variable pada method j. sejak j adalah variable pengganti pada method tes, dia tidak akan berdampak pada nilai variable jika i pada main semenjak memiliki perbedaan kopy pada variable.
Secara default, semua tipe data primitive ketika dilewatkan pada sebuah method adalah pass-by-values.
2. Pass-by-reference
Ketika sebuah pass-by-reference terjadi, referensi pada sebuah objek dilewatkan dengan cara memanggil method. Hal ini berarti bahwa method mengkopi referensi pada variable yang dilewatkan pada method. Bagaimanapun juga, tidak seperti apda pass-by-value, method dapat membuat objek actual yang menerangkan pointing to, since, meskipun berbeda keterangan yang digunakan dalam method, lokasi dari data yang mereka tunjukkan adalah sama.

Contoh Pass-by-reference

Contoh 2 Pass-by-reference
3. Petunjuk Penulisan Program
Keadaan yang salah tentang nilai oleh referensi di java adalah ketika membuat method swap menggunakan referensi Java, mencatat tentang manipulasi object Java 'by reference' tetapi nilai objeck dari referensi dari method 'by value,'" adalah hasil, anda tidak dapat menulis standart swap method ke swap objek.