Java 的String问题

String Hello = "Hello,World!";
请问这句话干了什么。
先创建一个对String的引用变量 Hello 然后检索缓存池,有无“Hello,world!”这个对象 要是有 Hello这个引用将指向这个对象 要是没有 那么先在内存创建这个对象,在由hello指向


Hello = "Hello";
这句话又干了什么。 若是一个类的一个方法里 Hello引用变量不必再次创建 其他 同上 要是不在一个方法里 那么 语法错误 Hello 没有被声明


String Hello = new String("World!"); 


这句话又干了什么。 同第一 只不过 这次不检索缓存池到底有无“World!”这个对象,直接再次创建一个新对象"World!" 并Hello引用指向它


第二题 String 和StringBuffer 的最大区别在于是否可变。 String 是Final的 不能被改变和继承的 对于每一个String对象的修改都是创建一个新的String再讲String引用指向这个对象。 而StringBuffer是可变的 
它只能通过构造函数来建立, StringBuffer str= new StringBuffer(); note:不能通过付值符号对他进行付值. 
str = "welcome to here!";//error 对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer中付值的时候可以通过它的append方法.str.append("hello");
字符串连接操作中StringBuffer的效率要比String高:


StringBuffer 和StringBuilder 的区别 在于线程安全 单线程下 线程不安全的StringBuilder的效率会高一些。

来自百度贴吧 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值