黑马程序员——第六篇:StringBuffer、StringBulider、数组、基本类型包装类

来源:互联网 发布:首都图书馆 知乎 编辑:程序博客网 时间:2024/04/29 21:21

  ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a

href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------


1
StringBuffer

  1.String类的特点:不变性

   sop("abc"+"def"+"ww")资源浪费,内存空间

   空间的浪费,降低程序的运行速度

 

   StringBuffer类的出现,提高字符串的操作效率

   字符串的缓冲区对象

2StringBuffer类的特点

1. 线程安全

2. 可变的字符序列(字符数组)

 

      String类的底层数据实现结构就是char数组

     private final char[] value

   

      StringBuffer类底层数据实现结构是 char数组

      但是这个数组,没有final

      是一个可变的字符数组(技术,数组的复制技术)

      数组的长度"扩容",复制技术,StringBuffer自动实现

3StringBuffer类的构造方法

1.  StringBuffer() 空参数的

        new StringBuffer对象的时候,什么参数都不传递

        默认的初始化容量,16个字符

 

        2.  StringBuffer(int n)带有1int参数

     new StringBuffer(10) 字符数组的指定长度

     没有必要,自己会复制扩容

 

3.  StringBuffer(String s)带有1String参数

     new StringBuffer("a") 将字符串对象直接存储到缓冲区

        程序Demo

 

4StringBuffer类的添加方法

1.  StringBuffer append(任意类型数据)将任意类型的数据追加到缓冲区中

 

2.  StringBuffer insert(int index,任意数据类型)

     将任意数据类型,插入到指定索引上.

     注意:索引越界异常

         程序Demo

 

6. StringBuffer类的替换方法

1. StringBuffer  replace(intstart,int end, String str)

  int start 开始的索引

  int end   结束的索引

   规定:开始和结束索引,包含头,不包含尾

  String str 被替换后的字符串,会将指定的索引范围之内的内容,

   全部替换成指定的字符串

程序Demo

 

7. StringBuffer类的翻转方法

1.  StringBuffer reverse()

   将字符串缓冲区中的字符,进行翻转

程序Demo

 

8. StringBuffer类的截取方法

1.  String substring(int start,int end)

     int start 开始的索引

     intend   结束的索引

     规定:开始和结束索引,包含头,不包含尾

     截取缓冲区中的部分字符,返回新的字符串对象

        程序Demo

 

9String对象和StringBuffer对象相互转换

String类对象是一个不变对象

StringBuffer类对象是一个可变对象

 

1.  String对象如何转成StringBuffer对象

      StringBuffer类的构造方法

      StringBuffer类的方法append

        程序Demo

 

2.  StringBuffer对象如何转成String对象

     StringBuffer类的方法toSting          

     String s=sb.toString              

     StringBuffer bs=new StringBufer("abcs")

      StringBuffer类继承Object,重写父类方法toString

 

      String类的构造方法,传递StringBuffer对象

     程序Demo

 

 

10. 数组元素拼接成字符串

 "数组元素"+"数组元素空间浪费

        使用StringBuffer缓冲区

程序Demo

 

 12. 判断字符串对称(回文)

翻转前后,字符串保持一致,相同

字符串变成缓冲区String->StringBuffer->翻转StringBuffer->String->equals

 

另外的一种方式

     利用数组实现,数组的最远端的元素比较

     数组翻转

13.StringBuilder

也是字符串缓冲区对象,提高String对象操作效率

出现的版本, JDK1.5才出现

 

StringBuffer类和StringBuilder类方法,完全一样

两个类的使用方式,完全一样

 

区别:

     StringBuffer 类线程安全 --运行速度慢

    StringBuilder类线程不安全 --运行速度快

 

    StringBuilderJDK1.5,StringBuffer进行替换

14. length属性和length()方法区别

length属性:数组的

length()方法: String,StringBuffer,StringBuilder

 

length属性:数组的长度

length()方法:字符串长度,缓冲区的长度

15. 数组的高级操作

1.  数组的排序

     数组的排序,按照升序排列 ,从小到大排列

     第一种:选择排序法

     第二种:冒泡排序法

 

2.  选择排序

     定义了数组,使用选择排序法,将数组中的元素进行升序的排列

     所有的排序:比较元素,进行位置上的交换

     采用数组中的每个元素,都和其他的元素进行比较换位置

 

3.  冒泡排序

     采用,数组相邻位置,比较和换位

 

4.  数组的基本查找

     1个数组,找一个元素是不是存在于数组中

     如果存在,返回所在的索引

     如果不存在,返回负数

 

5.  数组的二分查找,或者折半

     前提:保证数组的有序排列

     从数组的中间位置查找,每次减少一半

        程序Demo

 

        如果数组是别人提供的,是无序数组,不要排序,不要使用折半查找,只能基本查找

   int[] arr = {50,20,5,30};

今年4个季度的销售额

16. 数组工具类

  Sun公司,写好了一个专门操作数组的工具类

  java.util.Arrays

   方法全是静态,直接类名.方法

  

1.  排序方法

    static void sort(数组)

 

2.  二分查找方法

    static int binarySearch(数组,被查找的元素)

 

3.  数组转成字符串

    static String toString(数组)

 

4.  数组转成集合

    static List asList(数组)

17. 基本数据类型对象包装类

Java技术里面,8种基本数据类型,将8个基本类型进行对象的封装,基本数据类型变成了对象,提高更多的方法来操作这些基本类型

 

  8个基本类型,对应了8个包装类,全部在lang包中

 

 byte     Byte

 short    Short

 int      Integer

 long     Long

 boolean  Boolean

 float    Float

 double   Double

 char     Character

 

  基本类型int,能不能转成字符串

 "1"字符串转成基本类型int

18. Integer类的方法

static intparseInt(String s)  将数字格式的字符串,转成基本类型int

        程序Demo

 

 

0 0