String Hello = "Hello,World!";
请问这句话干了什么。
先创建一个对String的引用变量 Hello 然后检索缓存池,有无“Hello,world!”这个对象 要是有 Hello这个引用将指向这个对象 要是没有 那么先在内存创建这个对象,在由hello指向
Hello = "Hello";
这句话又干了什么。 若是一个类的一个方法里 Hello引用变量不必再次创建 其他 同上 要是不在一个方法里 那么 语法错误 Hello 没有被声明
String Hello = new String("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的效率会高一些。
来自百度贴吧