• 2019-06-05 java学习日记


    StringBuffer与数组排序

    StringBuffer类的概述

    线程安全的可变字符序列;

    StringBuffer是一个字符缓冲区;相当于一个容器。

    每个字符缓冲区都有一定的容量,如StringBuffer()方法其初始容量为16个字符。
    只要字符串缓冲区所包含的字符序列的长度没有超出此容量,
    就无需分配新的内部缓冲区数组,如果内部缓冲区溢出,则此容量自动增大。

    StringBuffer和String的区别

    String是一个不可变的字符序列

    StringBuffer是一个可变的字符序列

    线程安全与线程不安全

    可以理解为公开与私密,

    如StringBuffer是线程安全的,是执行同步的,每一次都要判断,所以会比较慢;

    而StringBuilder是线程不安全,是不执行同步的,所以会比较快。

     

     StringBuffer类的构造方法

    无参构造方法: public StringBuffer();

    指定容量的字符串缓冲区对象:public StringBuffer(int capacity);

    指定字符串内容的字符串缓冲区对象:public StriingBuffer(String str);

    StringBuffer的方法:

    返回值当前容量:public int capacity();(理论值)

    返回长度(字符数): public int length();(实际值)

     1 public static void main(String[] args) {
     2         StringBuffer sb = new StringBuffer();
     3         System.out.println(sb.length());            //容器中的字符个数,实际值
     4         System.out.println(sb.capacity());            //容器的初始容量,理论值
     5         
     6         StringBuffer sb2 = new StringBuffer(10);
     7         System.out.println(sb2.length());
     8         System.out.println(sb2.capacity());
     9         
    10         StringBuffer sb3 = new StringBuffer("heima");
    11         System.out.println(sb3.length());            //实际字符的个数
    12         System.out.println(sb3.capacity());            //字符串的length + 初始容量
    13         
    14     }

    StringBuffer的添加功能

    public StringBuffer append(String str);
    可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身

    public StringBuffer insert(int offset,String str):
    在制定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身

    StringBuffer是字符串缓冲区,当new的时候是在堆内存创建了一个对象,
    底层是一个长度16的字符数组,当调用添加的方法时,不会再重新创建对象,
    再不断向原缓冲区添加字符。

    1   StringBuffer sb1 =new StringBuffer();
    2   StringBuffer sb2 =sb1.append(true);
    3   System.out.println(sb2);               //系统默认加上toString
    4   System.out.println(sb1.toString());    //默认重写toString方法

    StringBuffer的删除功能

    public StringBuffer deleteCharAt(int index);
    删除指定位置的字符,并返回本身

    public StringBuffer delete(int start,int end)
    删除从指定位置开始指定位置结束的内容,并返回本身

  • 相关阅读:
    mysql教程(九) 索引详解
    mysql教程(八) 事务详解
    mysql教程(七) 约束详解
    mysql教程(七)创建表并添加约束
    mysql教程(六) 对字段的操作--添加、删除、修改
    mysql教程(五)limit的用法
    mysql教程(四)连接查询
    mysql教程(三)分组查询group by
    mysql教程(一)count函数与聚合函数
    mysql教程(二)数据库常用函数汇总
  • 原文地址:https://www.cnblogs.com/Sherwin-liao/p/10980319.html
Copyright © 2020-2023  润新知