【第22期】观点:IT 行业加班,到底有没有价值?

java复习(5)—String、StringBuilder和StringBuffer

原创 2016年08月30日 18:35:55

1.String类是不变字符串,StringBuffer类和StringBuilder类是可变字符串,这3种字符串都是16位的Unicode字符序列,并且这3个类都被声明为final类,因此不能被继承。

2.String str = new String("abc")创建实例的过程 

 首先在堆中(不是常量池)创建一个指定的对象"abc",并让str引用指向该对象;在字符串常量池中查看,是否存在内容为"abc"字符串对象;若存在,则将new出来的字符串对象与字符串常量池中的对象联系起来 若不存在,则在字符串常量池中创建一个内容为"abc"的字符串对象,并将堆中的对象与之联系起来。

3.String str = "abc"创建对象的过程 

首先在常量池中查找是否存在内容为"abc"字符串对象;如果不存在则在常量池中创建"abc",并让str引用该对象;如果存在则直接让str引用该对象。

4.String str1 = "abc"; String str2 = "ab" + "c"; str1==str2?

true。因为String a="ab"+"c"会在编译时期已经进行优化,等价于String a = "abc";

5.String str1 = "abc"; String str2 = "ab"; String str3 = str2 + "c"; str1==str3?

false。因为String str3 = str2 + "c"涉及到变量(不全是常量)的相加,所以会生成新的对象,其内部实现是先new一个StringBuilder,然后 append(str2),append("c");然后让str3引用toString()返回的对象。

6.StringBuilder与 StringBuffer

    StringBuilder:线程非安全的

    StringBuffer:线程安全的

    当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。

 

7.对于三者使用的总结: 1.如果要操作不改变的字符串= String

              2.单线程操作字符串缓冲区 下操作经常改变的字符串 = StringBuilder

              3.多线程操作字符串缓冲区 下操作经常改变的字符串 = StringBuffer


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Java笔记—String,StringBuffer ,StringBuilder 的区别

StringBuffer:       A thread-safe, mutable sequence of characters. A string buffer is like a String...

Java复习篇一

从天津转站北京,爬到中关村到直立行走 Java复习篇一 (白天忙碌的工作,晚上回来写写程序那种感觉近乎美妙) 将之前所学温习一遍,从理论再到示例,在短时间内能提高编程感觉,再迈向黑马训练营! 1.Java的编译原理和环境变量的设置 public class FirstJava { ...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

黑马程序员—Java基础学习笔记之String&&StringBuffer&&StringBuilder

-----------<span style="font-family: A

黑马程序员—Java基础学习笔记之String&&StringBuffer&&StringBuilder

1,字符串是一个特殊的对象 String s1 = “abc”//s1是一个类类型变量,”abc”是一个对象; 2,字符串最大的特点:一旦被初始化就不可以改变    String s1 = ...

Java String StringBuffer StringBuilder 的区别

String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。 String类的包含如下定义: <p style="color: rgb(51,51,51); font-fami
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)