JAVA学习笔记(二)关于String和StringBuffer的差别
来源:互联网 发布:战舰世界长门数据 编辑:程序博客网 时间:2024/06/06 09:38
还是实验报告册上面的一个问题,正好也就做个整理
下面有两个对比程序:
class StringTest{ public static void main(String[] args){ String s = “hello”; change(s); System.out.println(s); }public static void change(String s){ s = s+“ Java”;} }
运行结果:hello
class StringBufferTest{ public static void main(String[] args){ StringBuffer s = new StringBuffer(“hello”); change(s); System.out.println(s); }public static void change(StringBuffer s){ s.append(“ Java”);} }
运行结果:hello java
这两个程序都很简单,实现的效果也很简单,就是让两个字符串链接之后输出。但是,我们不难发现,第一个程序并没有达到我们想要的效果,而第二个使用了StringBuffer的程序却成功实现了,显而易见,是因为String与StringBuffer之间的区别。
查阅了API文档以及String类的源代码,我们也不难发现:
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence
The String class represents character strings. All string literals in Java programs, such as "abc", are implemented as instances of this class.
Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared.
extends Object
implements Serializable, Comparable<String>, CharSequence
The String class represents character strings. All string literals in Java programs, such as "abc", are implemented as instances of this class.
Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared.
public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[];
而对于stringbuffer来说
public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence继承自abstractstringbuilder类,我们查阅了其源代码,如下:
abstract class AbstractStringBuilder implements Appendable, CharSequence { /** * The value is used for character storage. */ char[] value;其实际上也是使用字符数组保存字符串,但没有final修饰符,所以是可更改的。
其他的差别,我们以后再详细的进行研究。
0 0
- JAVA学习笔记(二)关于String和StringBuffer的差别
- Java学习札记14:一个比较String、StringBuffer和StringBuilder之间效率差别的简单例子
- java学习记录(五):关于String和StringBuffer的区别
- 第十天学习java关于string和stringbuffer的使用
- Java 中String、StringBuffer、StringBuilder的差别
- String 和StringBuffer的性能差别
- java学习笔记7_StringBuffer, StringBuffer和String的区别
- Java学习笔记-String和StringBuffer的区别
- java学习笔记-String 和StringBuffer
- 【Java学习笔记】String、StringBuffer和StringBuilder
- 【Java学习笔记】08.String和StringBuffer
- Java学习笔记(十)String类和StringBuffer类
- java学习笔记之StringBuffer(二)
- java学习笔记--数组和向量、String和StringBuffer
- Java中String,StringBuffer与StringBuilder的差别
- String类和StringBuffer类的主要差别
- java学习笔记(十)----String类和StringBuffer类
- 区别 String 类 和 StringBuffer 类 -Java 学习笔记 (19)
- C++ 类缺省构造函数调用带参数的构造函数
- 【凯子哥带你夯实应用层】新手必备的常用代码片段整理(二)
- 导演、场景、层、精灵
- Mac Pro如何连接Android手机进行调试
- 从pdf复制文字到word中的问题
- JAVA学习笔记(二)关于String和StringBuffer的差别
- 树状数组(二)
- Manifest配置
- Android启动流程分析(三) init进程初窥
- 中文编程那些事
- python的nltk中文使用和学习资料汇总帮你入门提高
- c++面向对象的程序设计第三章
- acm2026
- SpringMVC+JPA+Mysql框架搭建