绍兴专业网站建设,音乐网页设计模板html,php网站培训班,中山骏域网站建设问题抛出 String这个常量在我们代码中会经常被用到,那么我们了解 String stringbuffer StringBudilder三者之间的区别吗 问题解答 String 字符串常量,位于常量池stringbuffer 字符串变量 不同步适用于单线程 位于字符串缓冲区StringBudilder字符串变量 同步适用于多线程 位于字… 问题抛出 String这个常量在我们代码中会经常被用到,那么我们了解 String stringbuffer StringBudilder三者之间的区别吗 问题解答 String 字符串常量,位于常量池stringbuffer 字符串变量 不同步适用于单线程 位于字符串缓冲区StringBudilder字符串变量 同步适用于多线程 位于字符串缓冲区1. string类型的2种赋值 String s1 222; //直接在常量池中开辟一个地址,如果有相同的则指向同一个地址
String s2new String(223); //直接在堆里面新建一个 通过new关键字来生成对象是在堆区进行的而在堆区进行对象生成的过程是不会去检测该对象是否已经存在的。因此通过new来创建对象创建出的一定是不同的对象即使字符串的内容是相同的。 2. 为什么已经有了String还需要有stringbuffer /StringBudilder public class Main {public static void main(String[] args) {String string ;for(int i0;i10000;i){string hello;}}
}
public class Main {public static void main(String[] args) {StringBuilder stringBuilder new StringBuilder();for(int i0;i10000;i){stringBuilder.append(hello);}}
} 上面第一个是每次都会创建一个新地址用来存储,所以会导致真个遍历过程十分要创建很多次,而使用stringBuilder就只会创建一次,,大大节省时间和内存空间; 4 StringBuilder与 StringBuffer StringBuilder线程非安全的 StringBuffer线程安全的 当我们在字符串缓冲去被多个线程使用是JVM不能保证StringBuilder的操作是安全的虽然他的速度最快但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作所以大多数情况下是建议用StringBuilder而不用StringBuffer的就是速度的原因。 转载于:https://www.cnblogs.com/prophet-it/p/7561816.html