首先你的代码有问题,连个main方法都没public class Example { String str = new String("good"); public static void main(String[] args) {Example ex = new Example();ex.change(ex.str);System.out.print(ex.str); } public void change(String str) {str = "test ok";System.out.println(str); }}看上面的代码,在你的change方法中添加了一个后台输出,结果可以看出,输出地sta值就是你希望的test ok,但是最终结果还是good,原因其实很简单你的方法里的str表示的是你传进来的参数,你这个方法所做的仅仅是改变了你这个参数的值,但是根本没有涉及到对象内的参数的变化,如果将方法改为} public void change(String str) {this.str = "test ok"; }那么结果就是你想要的了。