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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值