一个有关java Boolean的小疑点请高手帮忙解答

一个有关java Boolean的小问题请高手帮忙解答
public class study {
public static void test(Boolean bl) {
bl = new Boolean("false");
}
  public static void main(String[] args) {
  Boolean bl = new Boolean("true");
  test(bl);
  System.out.println(bl.toString());
  }
}
为什么输出的是true而不是false?

------解决方案--------------------
探讨

Boolean,String,Integer,Double等这些类都比较特殊,参数传递的时候是当作基本数据类型来对待的

------解决方案--------------------
Boolean是一个对象所以 传的是引用 
JAVA核心技术里有讲到传参的三点:
1。不能修改基本数据类型参数。
2。可以改变对象参数的状态。
3。传参时不能让对象参数引用一个新对象

LZ这属于第三点。7楼的属于第二点