黑马程序员--String,StringBuffer,StringBuilder的描述

时间:2022-06-28 04:00:21

 

http://edu.csdn.net/heima android培训http://edu.csdn.net/heima ; java培训期待与您交流!

一、String对象

1String类的特点:

ajava语言中用于描述的最常见的字符串数据的对象。

b、字符串数据都是一个对象。

    c、字符串数据一旦初始化就不可以被改变了。

    d、字符串对象都存储在常量池中,字符串常量池。

2、创建字符串对象的两种方式(建议不要用new的方式来创建对象)

    String s1 = "abcd";//这是在常量池中创建了一个字符串对象。

    String s1 = new String("abcd");//先在常量池中创建一个对象,然后在堆内存中备份一份。

3、比较

    ==:基本数据类型比较。

    equals:对象比较。

4String对象中的方法。

    其中构造方法有很多。

     int length(): 获取字符串长度。

     int indexOf(int ch): 获取指定字符的位置。

     int indexOf(String str):返回指定字符串的位置。

     char charAt(int index:  返回指定索引处的 char值。

     String substring(int beginIndex, int endIndex):返回一个新字符串,它是此字符串的一个子字符串。

     String substring(int beginIndex):返回一个新的字符串,它是此字符串的一个子字符串。

     char[] toCharArray(): 将此字符串转换为一个新的字符数组。

     String toUpperCase() : 将字符串转成大写。

     String toLowerCase() : 将字符串中所有转成小写。

     static String valueOf(all) : 返回参数的字符串表示形式。

     String toString():返回此对象本身。

     int lastIndexOf(int ch):  返回指定字符在此字符串中最后一次出现处的索引。

     isEmpty() : 字符串长度为0时,返回true

     byte[] getBytes():将字符串转成字符数组。

二、StringBuffer字符串缓冲区。

1、特点:

a、缓冲区就是用来缓存数据的,意味着它是一个容器。

、该容器的长度是可变的。

c、提供了对容器中内容的操作方法。(四种:增删改查)

d、该缓冲区中可以添加多种类型的元素,基本类型和应用类型。

e、想要使用容器中的数据,必须使用toStirng方法返回字符串。

2、常用方法:需要查阅构造方法。

append()追加,返回的还是容器,可以连续添加。

toString() 返回的是一个字符串。

insert()在任意位置添加。

delete()删除指定。

delete(0,sb.length)清空缓冲区。

sb.replace()修改。

setCharAt()

reverse()将字符串倒过来打印。

 

注意:通常情况下容器的底层都封装了数组是可变长度数组。

三、StringBuilder容器。

1StringBuilder概述:

ajdk1.5版本才出现的。

b、功能和StringBuilder容器一模一样。

2SringBufferStringBuidler区别。

aStringBuidler不用判断同步锁,是线程不安全的,但效率高。

StringBuffer是线程安全的。

b、对容器而言,被多线程操作,容易出现安全问题。

因为一个线程负责添加,一个负责删除,因为线程随机性会出现安全问题。

每调用一次操作容器的方法,都会判断一次锁,所以效率比较低。

3StringBuffer和数组容器的区别?

       a、数组容器是固定长度的,容器是可变长度的。

       b、数组容器一旦初始化就明确了元素类型。

            StringBuffer可存储任意类型,包括基本,引用。

       c、数组存储完元素可以通过角标来操作元素。

            StringBuffer存储完元素,都会变成字符串,只能用字符串的方法来操作。

4、什么时候使用字符串缓冲区?

         数据个数和类型可以是固定,也可以是不固定的。

         只要最终这些数据都需要变成字符串来操作,就可以用字符串缓冲区。

 

http://edu.csdn.net/heima android培训 http://edu.csdn.net/heima ; java培训期待与您交流!详细请查看 http://edu.csdn.net/heima