String对象是不可变的,因此在你进行字符串的拼接的时候,实际上生成的是一个新的String对象存储了这个值.
这里还牵扯到一个值传递的问题,也就是你将S1传入modify方法的时候,实际上传递的是一个引用的copy。
你后面的s+"好吃"生成了一个新的String对象,你使这个拷贝的引用指向了这个新的对象,原对象仍然指向“苹果”。所以,你可以试着将s return回去,并且再讲s赋值给s1,这样就可以达到改变s1值的目的。