Java常用类---String类

API概述

API(Application Programming Interface):应用程序编程接口

Java API:指的就是JDK中提供了各种功能的Java类。这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。

String概述

String类在java.lang包下,所以使用的时候不需要导包

String类代表字符串,Java程序中的所有字符串文字都被实现为此类的实例,也就是说,Java程序中所有的双引号字符串,都是String类的对象。

字符串特点:

  • 字符串不变,为常量,他们的值在创建后不能被更改

  • 字符串缓冲区支持可变字符串,因为String对象是不可变的,它们可以被共享。

  • 字符串效果上相当于字符数组(char[])(JDK8及以前),但是底层原理是字节数组(byte[])

String构造方法

public class StringDemo {
    public static void main(String[] args) {
        //public String(),创建一个空白字符串对象,不含有任何内容
        String s1 = new String();
        System.out.println("s1:"+s1);
        //public String(char[] chs),根据字符数组的内容创建字符串对象
        char[] c = {'a','b','c'};
        String s2 = new String(c);
        System.out.println("s2:"+s2);
        //public String(byte[] bys),根据字节数组的内容创建字符串对象
        byte[] b = {97,98,99};
        String s3 = new String(b);
        System.out.println("s3:"+s3);
        //String s = "abc",直接赋值的方式创建字符串对象
        String s4 = "abc";
        System.out.println("s4:"+s4);
    }

String对象的特点

  1. 通过new创建的字符串对象,每一次new都会在堆申请一个内存空间,虽然内容相同,但是地址值不通

    char[] chs = {'a','b','c'};
    String s1 = new String(chs);
    String s2 = new String(chs);
    ​

    上面的代码中,JVM首先创建一个字符数组,然后每一次new都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的

  2. 以""方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护

    String s3 = "abc";
    String s4 = "abc";

    上面代码中,针对第一行代码,JVM建立一个String对象放在字符串池中,并给s3参考。第二行则让s4直接参考字符串池中的String对象,即它们本质上是同一个对象

String中的常用方法

StringBuilder

StringBuilder概述

如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时又浪费内存空间,而这种操作还不可避免,那么有没有一种比较好的方式可以解决这个问题呢?

我们可以通过StringBuilder类来解决这个问题。

StringBuilder是一个可变的字符串类,我们可以把它看成一个容器,这里的可变指的是StringBuilder对象中的内容是可变的

String和StringBuilder的区别

  • String内容不可变,StringBuilder内容可变

StringBuilder构造方法

public class StringBuilderDemo
{
    public static void main(String[] args) {
        //public StringBuilder();创建一个空白可变字符串对象,不含任何内容
        StringBuilder sb = new StringBuilder();
        System.out.println("sb:"+sb);
        System.out.println("sb.length:"+sb.length());
        //public StringBuilder(String str);根据字符串的内容,来创建可变字符串对象
        StringBuilder sb2 = new StringBuilder("hello");
        System.out.println("sb:"+sb2);
        System.out.println("sb.length:"+sb2.length());
    }
}

StringBuilder的添加和反转方法

StringBuilder和String相互转换

  1. StringBuilder转换为String

    public String toString():通过toString方法实现

  2. String转换为StringBuilder

    public StringBuilder(Strng s):通过构造方法实现

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值