关于String类型遗漏点与StringBuilder、StringBuffer
来源:互联网 发布:知贤装饰怎么样 编辑:程序博客网 时间:2024/06/16 01:18
1、String可以直接用字符数组赋值
如: char[] a={‘a’,’b’,’c’,’d’};
String b=new String(a);
2、String是不可变字符序列,并不是说String的值不可改变,而是在改变时原有的值不会改动,而会开辟新的空间在拷贝原值的基础上做改动。因为在String的源码里value的修饰符是final,不能修改,每次改变值都会在堆里开辟新空间新生成一个值,字符串指向新的值,这样会导致String对内存造成很大的浪费,所以推荐用StringBuilder(线程不安全,效率高)和StringBuffer(线程安全,效率低)来处理字符串。这里推荐看下Java300集55集和58集。
3、StringBuilder和StringBuffer
基本用法和String类似,大部分操作都是用append方法来增加字符串的值,初始化时两个类型会分配大小为16的空间(字符数组),当长度溢出时会自动生成调整大小后的新空间,将原字符串内容拷贝至新空间,并将字符串指向新的空间,提高了内存的利用率。
推荐多看看源码,上述内容在源码中都有很明显的描述,之前同学说过好的程序员都是要看源码的,近日有了深切体会,通过源码看来的知识远比百度来的用法更加深刻,所有的方法在源码里都有详细的描述,也有利于对内存的分析,所以真的要好好看源码啊!!!
阅读全文
0 0
- 关于String类型遗漏点与StringBuilder、StringBuffer
- 关于String与StringBuilder、StringBuffer
- 关于String,StringBuffer与StringBuilder
- 关于String、StringBuffer与StringBuilder运行速度
- 关于string/stringbuffer/stringbuilder
- 关于String、StringBuffer、StringBuilder
- 关于String,StringBuffer,StringBuilder
- 关于String Stringbuffer StringBuilder
- 关于string stringbuilder stringbuffer
- 关于string,stringBuilder,stringBuffer
- String,StringBuffer与StringBuilder
- String,StringBuffer与StringBuilder
- String,StringBuffer与StringBuilder
- String,StringBuffer与StringBuilder
- String, StringBuffer与StringBuilder
- String,StringBuffer与StringBuilder
- String,StringBuffer与StringBuilder
- String、StringBuilder与StringBuffer
- 1067. Sort with Swap(0,*) (25)
- 迭代维护
- 自动更新组件
- android shape
- JSP 动作元素
- 关于String类型遗漏点与StringBuilder、StringBuffer
- Service进阶篇(bindService)
- HibernateTemplate常用方法详解
- onunload、onbeforeunload事件详解
- Android插件化开发之动态加载本地皮肤包进行换肤
- easyUi排序
- Android代码入侵原理解析(一)
- 微信扫码
- C#中的值传递