String类回顾&StringBuffer和StringBuilder

一、String类是java中存放字符串的类,搞懂它就必须理解的内存模型(搞清楚创建String的两个方式:new String("xxx")和“xxx”直接赋值内存的模型的差别)

1.前者需要在堆中创建对象,并将栈中创建引用指向它,其对象中有char[]指向方法区的常量池

2.后者直接在常量池中直接赋值,如果找不到就创建。

equals方法和==的区别

equals方法比较的是内容,==比较的是引用地址。

二、StringBuffer和StringBulider的引入

由于String每次更新其内容时,都要在常量池中开辟新的空间,并更改指向,效率低,所有Java的设计者提供了Stringbuffer和StringBuilder来增强String的功能,提高效率。

二者区别

1.前者适应于多线程环境,支持线程同步(方法都加了Synchronize)

2.单线程环境中,后者更快

3.都有append和insert方法

具体细节且看官方文档!!!

上一篇:Java常用类StringBuffer、StringBuilder


下一篇:String,StringBuilder和StringBuffer整理汇总