`
leon.s.kennedy
  • 浏览: 106445 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java的String类

 
阅读更多

昨天看了一道J2SE选择题,是关于Java参数传递的知识,居然没有做对,记得在刚开始学习Java的时候是看的Sun公司提供的一本Java书,写的非常好,而且清晰的记得就有类似的一道题,今天重新补充了一下,发现自己原来也是死读书的一位;
    关于参数传递用的比较多的是String对象的传递,不过String对象的传递前我们来看研究一下String对象。
   
    一、String对象的创建
    1、String a = "ab";当我们创建a这个对象时,Java虚拟机就会在String内存池中查找是否有"ab"这个对象,如果有就把a指向这个对象,如果没有那么在String内存池中创建这个对象,并让a指向它;这里的"ab"是一个具体的对象,而a是这个对象的一个引用。
    2、String a = new String("ab");如果用new关键字来创建对象a时,就会在堆内存中创建一个"ab"的对象,然后让a指向它。
    可以看出String对象在不用new来创建时会有一个String内存池的概念,这是和其他对象不同的地方;

    二、String对象的修改
    String a = "ab";创建了一个a对象
    a = "abcd";Java虚拟机会在String内存池中创建一个新的"abcd"对象然后让a指向这个新的对象。
    我认为String对象的String内存池造成了参数传递过程中的不可变型。

 

 

感谢赵哥

http://blog.sina.com.cn/u/1967943167

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics