参照渡しかと思ったのに値渡しでどうしようではない…?

class a
{
  public static void main(String[] args)
  {
    Integer i = new Integer(0);
    func(i);
    
    System.out.println(i); // 0
  }
  
  static private void func(Integer i)
  {
    i += 10;
  }
}

出力 10 を期待したんですが、0 が出力される…。 Integer の i って参照渡しになるんじゃないの…? クラスなのに値渡しなモンなん…!? orz *1

javaはやっぱりよく分からん…てか、困ったどうしよう…。ポインタ使いてぇー(ぉ

*1:ちなみに諸事情で戻り値は利用できない