String应该是一个封装类型,它应该是引用传递,是可以改变值的, 运行的结果应该是”cd”.我们实际运行一下看看, str=ab,这如何解释呢?难道String是基本类型?也说不通呀. 这就要从java底层的机制讲起了,java的内存模型分为 堆 和 栈 . 1.基本类型的变量放在栈里: 2.封装类型中,对象放在堆里,对象的引用放在栈里. java在方法传递参数时,是将变量复制一份,然后传入方法体去执行. 这句话是很难理解的,也是解释这个 问题的精髓.我们先按照这句话解释一下基本类型的传递.…