Java StringBuilder、基本类型的包装类

字符串的缓冲区StringBuilder

1、介绍

  1、StringBuilder是一个可变的字符序列,好像是一个容器,因为在类中提供了修改私有成员变量的方法。
  常用的方法是append和insert,就是在StringBuilder对象本身上,进行修改操作。
  2、StringBuilder底层和String底层都是维护了一个字符数组,数组本身私有的,因为String类型没有向外暴露修改私有成           员的方法,所以不能修改,StringBuilder向外暴露了修改私有成员的方法,可以修改字符序列。

  3、StringBuilder和String都是用来描述字符串。
  4、String不可修改,长度也不可以改变
  5、StringBuilder可修改,长度也可以修改,比较灵活。
2、 StringBuilder的构造方法
  StringBuilder():创建一个容器,初始容量为16
  StringBuilder(String str):创建了一个容器,初始空量为16+str.length()
  StringBuilder(int capacity):创建了一个容器,初始容量为capacity
  capacity():获取当前容器的大小
  length():获取当前容器中的字符个数
  自动扩容
3、添加功能
  1.append(任意类型):可以将任意数据类型,转成字符串,添加到容器中。
  2.insert(int index,任意类型):可以将任意类型添加到指定的位置。
4、删除功能
  1.StringBuilder delete(int start, int end):包含头不含尾
  2.StringBuilder deleteCharAt(int index)
5.替换和反转功能
  1.replace()
  2.reverse()
6、String和StringBuilder拼接字符串的区别
  1.使用String类型接拼字符串:时间和空间上都非常浪费。

    String str = "abc";
    str+="abc";
  2.使用StringBuilder拼接字符串的时候,就是往容器不断地添加,
  3.String和StringBuilder的类型转换
    1. String转成StringBuilder
      StringBuilder的构造方法
      append方法
    2. StringBuilder转成String
      toString()方法
      String()的构造方法
7、StringBuffer和StringBuilder的区别
  1.共同点
    都是字符串的缓冲区,都是字符串的容器,都是可变的字符串列。
  2.不同点
    1.出现版本不同:
      StringBuffer在jdk1.0出现
      StringBuilder在jdk1.5出现
    2.线程安全不同:
      StringBuffer是线程安全的,在多线程环境下仍然保持数据安全
      StringBuilder是线程不安全的,在多线程下无法保证线程据安全
    3.效率不同
      StringBuffer的效率低
      StringBuilder的效率高

public class Demo01 {

    public static void main(String[] args) {
        String str = "abc";
        update(str);
        System.out.println(str);//abc

    }

    private static void update(String str) {
        str = "xyz";
        System.out.println(str);//xyz
        
    }

}
String和StringBuilder作为方法的参数1
public class Demo06 {

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("abc");
        update(sb);
        System.out.println(sb);//abc

    }

    private static void update(StringBuilder sb) {
        sb = new StringBuilder("xyz");
        System.out.println(sb);//xyz
        
    }

}
String和StringBuilder作为方法的参数2
public class Demo03 {

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("abc");
        update(sb);
        System.out.println(sb);//xyz
        

    }

    private static void update(StringBuilder sb) {
        sb.replace(0, sb.length(), "xyz");
        System.out.println(sb);//xyz
        
    }

}
String和StringBuilder作为方法的参数3

基本类型的包装类

1、包装类
  1、基本数据类型有八种,都是非常简单的数据类型。
  2、在这些类型中,只能表示简单的数据,不能包含一些对数据的操作,没有办法 存储描述这些数据的崆,需一个
  引用数据类型,能将基本数据类型进行包装,提供一些操作基本类型的方法,定义一些描述数据的数据。
  3、基本类型的包装类
    byte Byte
    short Short
    int Integer
    long Long

    float Float
    double Double

    char Character

    boolean Boolean

2、Integer类
  1.以Integer举例,举一反三
  2.Integer类型的对象中,维护了一个私有成员的变量,是一个int类型。
  3.提供了在int,Integer,String类型之间相互转换的方法
  4.提供了一些常量
 Integer的构造方法
  Integer(int value)
    构造一个新分配的 Integer 对象,它表示指定的 int 值。
  Integer(String s)
    构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
 Integer类型的成员方法
    1.xxxValue():可以将Integer类型的对象,转成其它的基本数据类型
    2.常用静态方法
      static int parseInt(String s):将字符串以十进制的方式解读为一个int类型
      static int parseInt(String s, int radix): 将字符串以radix的方式解读为一个int类型
      static String toBinaryString(int i):使用二进制的表示方式来表示数字
      static String toOctalString(int i)
      static String toHexString(int i)
      String toString()
      static Integer valueOf()
 Integer类型的常量
  static int MAX_VALUE
    值为 2**31-1 的常量,它表示 int 类型能够表示的最大值。
  static int MIN_VALUE
    值为 -2**31 的常量,它表示 int 类型能够表示的最小值。
  static int SIZE
    用来以二进制补码形式表示 int 值的比特位数。
  static Class<Integer> TYPE
    表示基本类型 int 的 Class 实例。
 Integer,int,String类型互相转换的总结
  1.Integer转为int类型
    intValue()
  2.int转为Integer类型
    构造方法
  3.Integer转为String的类型
    toString()
  4.String转为Integer
    构造方法
    valueOf()
  5.int转为String
    Integer.toString(int i)
    5+" "
  6.String转为int类型
    Integer.parseInt(String str);
 自动装箱和拆箱(JDK1.5之后)
   装箱:基本数据类型转换包装类
   拆箱:包装类转为基本数据类型

public class Demo03 {

    public static void main(String[] args) {
        Integer it = 100;//自动装箱 new Integer(100)
        
        int i = it;//自动拆箱  100
        
        int result = it + 200;//自动拆箱
        
        
        
        

    }

}
自动装箱拆箱

 

原文地址:https://www.cnblogs.com/xfdhh/p/11182266.html