这个跟静态没有关系,这个考的是参数传递,引用类型的传递。刚好之前有人问了和你一样的问题,我画了些图,你可以看下。
方法中定义的参数是基本类型 则方法接收的是基本类型的值。如果时引用类型,则接收的时地址引用值。
注意一点 定义的change方法中的 str1 跟传入的str1 并不是一个对象,只不过它们指向同一个地址值
str2 = str1 这里是将方法中str2指向的地址值修改为指向传入str1的地址。 str1 = new StringBuffer("xxxxx"); 这个意思是将传入的地址值丢弃,重新new一个地址值给str1。 所以你的执行结果是这个样子。