Java 的String问题

来源:互联网 发布:时时彩后二智能软件 编辑:程序博客网 时间:2024/04/30 21:26
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的效率会高一些。

来自百度贴吧 

0 0
原创粉丝点击