第二个和第三个的结果不难理解,关键是第一个,解释看这里:
http://community.csdn.net/Expert/topic/3859/3859847.xml?temp=7.400149E-02

解决方案 »

  1.   

    你理解by reference,by value 就知道原因了
    另外,String是不可变类,不能修改
      

  2.   

    就你的一个函数,你可以按照我的方法修改一下就可以了!
    modify1(a);======================》改成 String ss=modify1(a);
    然后把
    public static void modify1(String a) 
    {
        a += "world!";
     }改成
    public static String modify1(String a)
     {
            a += "world!";
        }
      

  3.   

    全部的程序如下!
    public class Datetype {
        public static void main (String[]args) {
            String a = new String ("Hello");
           String ss = modify1(a);
            System.out.println(ss);        int b=0;
            int bb=modify2(b);
            System.out.println(bb);
        int [] c = new int [1];
        
        int cc= modify3(c);
        System.out.println(cc);
        }
        public static String modify1(String a) {
           return  a += "world!";
        }
        public static int modify2(int b) {
           return ++b;
        }   public static int modify3(int[] c) {
         return ++c[0];
        }}
      

  4.   

    以上程序的输出结果是
    helloworld
    1
    1应该是楼主所希望得到的