もしフィールドが1000個くらいあるクラスがあるとして、そのインスタンスをメソッドに
渡す度に値渡しされて、全部コピーされたらとんでもないことになると思いません?

参照型を渡せばインスタンスのアドレス(32ビットつまり4バイト)を渡すだけで済むよね。