书上总是说s是引用,一直不明白这个引用到底是个什么玩意,对引用的说法一直感觉是很虚。我按我自己的理解说的看下,高手帮我看下对不对。
String s这句定义了一个字符串对象,s应该也是个对象吧?这个对象其实是个指向String字符串实例的指针,new String("Hello")这句实例化了一个Hello字符串实例,假设Hello字符串实例在堆中的内存地址是0x001122,那么变量s中应该存放的就是这个地址0x001122吧?
第二个问题是s是存放在堆中还是栈中?按我把s理解为一个字符串对象来说,s应该是存放在堆中,不知对不?
第三个问题是s这个对象是什么时候分配内存空间的?String s这句并没有使s在内存中分配空间吧?直到把new的字符串实例赋给s的时候,s才分配内存空间吧?最后个问题是CSDN除了回答别人的问题得分外,还能怎么得分?我问了几个问题后就没分了,以后再有问题怎么办呢?再注册ID?

解决方案 »

  1.   

    个人认为, 你可以把引用理解为“别名”, new String("hello") 创建了一个字符串对象,这个对象叫什么名字呢?起个名字叫s吧   String s = new String("hello");
      

  2.   

    String s只是说明 s是一个字符串对象的名字
      

  3.   

    你是人这个类的。
    你的爸爸妈妈把你实例化了,
    并给你取了个名字叫"wesnow"
    wesnow就是引用,你就是那个wesnow指向的对象.
      

  4.   

    看下Clerk_9919(Clerk)的解释,你可以这么理解
      

  5.   

    我认为楼主应该看看<scjp考试>的那本书,红色的那里讲的很明了分的问题很好办呐,你不能什么问题都问吧,关键是自己想别人的问题你肯定也能说上几句的,说不上的话就把你自己的疑问也写上
      

  6.   

    每天登录一次,CSDN给你10分。