public class MyTest {
public static void main(String[] args) {
                String aa = "AA";
String bb = "BB";
aa = bb;

System.out.println(aa);
bb = "CC";
System.out.println(aa);
}}大家来讨论下

解决方案 »

  1.   

    String aa = "AA"这样定义的话aa应该是值类型
    如果String aa = new String("AA");这样定义,aa就是一个引用我刚学没几天,希望高手指点
      

  2.   

    在Java中,字符串被当作对象来处理。
    Java会自动为字符串常量生成一个String类的对象,所以可以直接初始化String对象,如:String s = “Hello world!”我看到上面的说法,这样的话应该都是对象了。
      

  3.   

    String是个引用类型,这没什么需要讨论的。
      

  4.   

    String是个引用类型。至于你提出的例子,那只是引用地址发生了变化而已,换句话说就是对象已不再是原来的对象。
      

  5.   

    感觉能把值放在栈里的就是基本类型,在栈里放地址的是引用类型
    String bb = "BB";
    “BB”这个字符串是放在字符串常量池中的,而不是放在栈里的。
      

  6.   

    是引用类型啊  String是大写的嘛  这么记  挺好记的
      

  7.   

    java当中只有对象是地址的引用,其它都是值 的引用。
    例如:
    1、当声明两个基本数据类型的变量String str="aa"和String ss="bb"时,在内存中就会为str和ss这两个变量各自开辟一个地址空间,值分别是aa和bb。
    此时如果把ss赋给str,此时str的值和ss的值是相同的,虽然str的值改变了,但是str和ss在内存中还是两个不同的地址。2、如下:
    public class B {
        static String str="s";
    }
    public class A {
        public static void main(String[] args) {
            B aa = new B();
            B bb= new B();
            System.out.println(aa.str);
            bb.str="ss";
            System.out.println(aa.str); 
        }
    }
    通过上面的程序可以看出,第一个输出语句的结果和第二个输出语句的结果是截然不同的。这是应为对象是地址的引用。对象aa和bb在内存中指向的是同一个地址空间。
      

  8.   

    但是 String 好象是 特殊的 引用类型吧.可以当成值类型来看吧??
    StringBuffer 是 引用类型,我记得 String 和 StringBuffer 是不同的
      

  9.   

    对象aa和bb在内存中指向的是同一个地址空间 (这句话错误) 指向不同得对象
      

  10.   

    两次输出都是BB,很意外吧,为何是引用但是没有改变其中的值??
    String 类中的对象是不可改变的.
      

  11.   

    String是对象,所以是引用类型。
    值不能改变是因为String是final类
      

  12.   


    String 对一串字符进行操作。不可变类。
    StringBuffer 也是对一串字符进行操作,但是可变类。
      

  13.   

    同意楼上,好像记得STRING 应该看作final的
      

  14.   

    intager boolean short long  float  double char  byte这外全是引用,就记这八类基础类型就行,so easy!
      

  15.   

    public class test { 
    public static void stringReplace (String text) { 
    text = text.replace (‘j' , ‘i'); 
    }
    public static void bufferReplace (StringBuffer text) { 
    text = text.append (“C”) 
    }
    public static void main (String args[]} ( 
    String textString = new String (“java”); 
    StringBuffer text BufferString = new StringBuffer (“java”); 
    stringReplace (textString); 
    BufferReplace (textBuffer); 
    System.out.printIn (textString + textBuffer); 

    }
    String 是传递引用的.请写出上面的结果,并解释一下!谢谢了.scjp的题目.