解决方案 »

  1.   

    静态方法无法直接调用实例方法,只能通过对象调用,改成下面试试。 People people = new People();
     people.StringTest(string,buffer); 或者在StringTest方法前加上static。
      

  2.   

    晕了,stringTest也还是类的方法,还是要通过实例来调用,不然的话要声明成static,直接调用它。
    嗯,那个string呢?为什么经过处理后它的值不是javajava?string和buffer不都是引用吗,为什么结果不一样?
      

  3.   

    StringTest明明就是实例方法。。编译器对String的+有优化处理,生成字节码时,使用StringBuilder重新生成对象。处理后的值为什么不一样,原因如下:s = s + "Java";   //改变的s的引用值
    b.append("Java"); //改变的b的引用对象的值
      

  4.   

    这问题是初学者常遇到的问题,先说第一个问题:静态方法要想调用非静态方法,方法有2, 一是new 一个对象,通过对象调用方法,二是把非静态方法改为静态;第二个问题,这属于string 和stringbuffer的区别,前者是定长的,后者是不定长的,你可以百度搜搜两者区别,一搜即知