解析String类和StringBuilder
来源:互联网 发布:卤素灯 led 对比 知乎 编辑:程序博客网 时间:2024/04/27 16:29
介绍一下String类
String类是一个final类,不允许被继承
String类是java中有字面值的两个类之一,至于另一个类是什么呢,我也不知道~~...
至于什么是字面值了?
Sting str = "abc";
int i = 12;
这样可以直接赋值就是有字面值的意思
java中在很多时候都会定义一个字符串,而这些字符串有很多重复的,例如,在学生类的班级啊学校啊什么的,都是一些相同的字符串
java中为了不在使用这些重复的字符串浪费空间,就将String定义为了一个final类型的.而且这个str的值是不能改变的,这又是为什么呢?
其实我们在java中经常也会改变一个字符串的值:
String str = "abd";
str = "bcd";
但是为什么说不能改变str的值呢?
在创建"abc"这个字符串的时候是现在串池里找是否有"abc"这个字符串,如果没有则创建一个,如果有就将这个字符串的地址赋给str引用
str = "bcd"这句话呢其实有几个过程,首先创建"bcd"字符串,再将地址赋给str,其实这时候改变的只是str所存的地址,"abc"这个字符串对象其实还存在于串池中.
经典面试题:
String str = new String("abc");
这及代码创建了几个对象?
答案是两个
首先,在串池中创建了一个"abc"的对象,然后new了一个String对象,这个对象是存储在Heap(对空间)中的,是调用了String类的以字符串类型为参数构造方法.
所以在执行这样个代码的时候:
String str = "A"+"B"+"C"+"D";
会创建许多的对象,而最终我们需要的其实只有最后的字符串对象
其它的中间对象都沦为了垃圾对象,造成了内存的浪费
这时候Sun公司为我们提供了一个StringBuilder类,这个类创建的对象是存在Heap(堆空间)中的,它的值时可以改变的,在我们进行大量的字符串连接的时候就不会产生垃圾对象了
String str;
Sting str1 = "A";
for(int i=0;i<10000;i++){
Str+=Str1;
}
StringBuilder str2 = new StringBuilder("");
for(int i=0;i<10000;i++){
str2=str2.append(str1);
}
上面这两种方式产生最后的结果都是一样的.但是下面StringBuilder方式比上面的方式快了几千倍
没什么写的了
- 解析String类和StringBuilder
- String和StringBuilder-使用 StringBuilder 类(MSDN)
- String类和StringBuilder类
- String、StringBuffer和StringBuilder类
- String、StringBuffer和StringBuilder类
- String、StringBuffer和StringBuilder类
- string、StringBuffer、StringBuilder解析
- String和StringBuilder类方法和用法
- String,StringBuffer和StringBuilder源码解析[基于JDK6]
- 关于 String类 和 StringBuilder类
- StringBuilder类和String类详解
- Java String类、StringBuffer和StringBuilder类
- 字符串、String类和StringBuilder类
- String StringBuffer和StringBuilder类小结
- String类和StringBuffer,StringBuilder笔记
- Java 常用类String、StringBuffer和StringBuilder
- Java String类和StringBuilder初步认识
- String和StringBuilder类知识小结
- POJ 1330 Nearest Common Ancestors
- 漫谈计算机视觉
- hdu 4778 Gems Fight!(状态压缩dp)
- 黑白棋子的移动
- Intersection
- 解析String类和StringBuilder
- Eclipse 用DDMS 调试Android 程序
- ActiveX控件的安全初始化和脚本操作 和 数字签名SIGN
- Oracle优化器和优化模式
- 笔记
- Android-Socket传输 GPRS网络
- linux系统监控——nmon介绍与使用
- 小鑫的城堡(并查集)
- Activiti的配置文件