なんかドツボにハマッてます。。

以下のソースで実験してるんですが、

import java.io.*;

public class test{

static void func1(String a){
a = "10";
}

static void func2(String[] sa){
sa[0] = "10";
}

public static void main(String[] args){
String s = new String();
String[] sa = new String[1];
func1(s);
System.out.println(s); // 出力なし(ここは理解できる
func2(sa);
System.out.println(sa[0]);//10と出力(なんでー!?
}