java字符串处理总结
来源:互联网 发布:js访问url 不跳转 编辑:程序博客网 时间:2024/04/28 23:51
Java中的字符串处理主要有下面三个类来处理的:String、StringBuffer、StringBuilder。
三者区别综述:
1,String、StringBuffer、StringBuilder都是被final修饰的,是不能够被继承改写的。
2,String在实例化之后,其内存空间的内容大小是不能够被修改的;而StringBuffer是一个线程安全的可变字符序列,在实例化之后可以动态的修改堆内存中的内容,所以内存长度和大小是可变的;StringBuilder实例化之后内存大小长度也是可变的,不
同之处在于StringBuilder不是线程同步,因此操作起来必然比StringBuffer更加高效。
三者区别详细分析:
例子:
String str = "hello";
str += "world";
上述代码在内存中已经开辟了3个空间,分别是:”hello“, ”world“, ”helloworld“,他们的堆内存大小是固定的,最终str指向了”helloworld“的堆地址。如下图所示:
1、 String a= new String("hello");
2、String a = "hello";
解释如下:
1:在栈内存重定义了一个a对象引用,先指向堆内存值为“hello”内存地址,然后又指向new之后堆内存为“hello”的地址。最终开辟了两个空间,第一个空间没有对象引用,会被JVM垃圾回收。
2:在栈内存中定义了一个a对象引用,指向堆内存的值“hello”内存地址。最终开辟了一个内存空间
三者使用说明:
String 每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。 而如果是使用 StringBuffer/StringBuilder 类则结果就不一样了,每次结果都会对 StringBuffer/StringBuilder 对象本身进行操作,而不是生成 新的对象,再改变对象引用。
因而在对一个字符串循环赋值时,最好使用StringBuffer(线程安全)或StringBuilder,这样可以节约内存,提高性能,切记。
- java字符串处理总结
- java字符串处理总结
- java处理字符串总结
- Java 字符串处理总结
- oracle 字符串处理总结
- 字符串处理总结
- Python总结:字符串处理
- vc++:字符串处理总结
- 字符串处理算法总结
- Matlab字符串处理总结
- [总结]PHP字符串处理
- String字符串处理总结
- php 字符串处理总结
- 字符串处理总结
- js字符串处理总结
- 字符串、字符处理总结
- Java 工具类总结(2): 再也不怕表单字符串处理
- java字符串处理
- Linux下python升级至2.7步骤
- LUA学习(五) 迭代器
- NSSet集合对象
- git的使用
- HTTP返回状态码
- java字符串处理总结
- 密码学---PlayFair
- 指针才是C的精髓
- POJ 3164 Command Network【最小树形图】
- oc开发笔记4 ios 声像图 波形和频谱
- 关于手机天气应用中的城市搜索的联想查找方式优化
- 编译 gcc 5.1 和 6.1
- lightoj1282 - Leading and Trailing
- 【饥荒mod制作吧第六篇】发帖小尾巴教程