【博学谷学习记录】超强总结,用心分享|String类详解

本文详细介绍了Java中的String类,包括其不可变性、常用构造方法和字符串创建的区别。讲解了"=="比较字符串、字符串常量池的概念以及通过new关键字创建对象的差异。还探讨了字符串拼接的原理和常量优化机制,并提供了遍历字符串的方法。最后总结了String类的一些关键方法,如equals()、substring()和replace()等。
摘要由CSDN通过智能技术生成

String类详解

String类

  • 概述:

1.String类在java.lang包下,使用的时候不需要导包;
2.String类代表字符串,java程序中的所有字符串文字都被称为此类的实例,即java程序中所有的双引号字符串都是String类的对象;
3.字符串不可变,它们的值在创建后不可更改。

  • 常见的构造方法:
方法名说明
public String()创建一个空白字符串对象,不包含任何内容
public String(char[] chs)根据字符数组的内容来创建字符串对象
public String(String original)根据传入的字符串内容,来创建字符串对象
String s = “abc”直接复制的方式创建字符串对象,内容就是acv
  • 创建字符串对象的区别:
    1. “==” 号比较
数据类型比较内容
基本数据类型
引用数据类型地址

2.双引号创建对象

①以""方式给出的字符串,只要字符序列相同,无论在程序中出现几次,JVM都只会创建一次对象,并在常量池中维护;
②字符串常量池:使用双引号创建对象时,系统会有现在常量池中检查字符串是否存在,不存在 => 创建, 存在即复用。
③具体代码&&运行结果:

		String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1 == s2);

双引号创建字符串对象
3.通过构造方法new创建的字符串对象

①每创建一次就会在堆内存开辟一次空间,虽然内容相同,但地址值不一样。
②具体代码&&运行结果

        String s3 = "abc";
        String s4 = new String("abc");
        System.out.println(s3 == s4);

构造方法创建字符串对象
4.String类常见面试题
①字符串拼接

		String s5 = "abc";
        String s6 = "ab";
        String s7 = s6 + "c";
        System.out.println(s5 == s7);

字符串拼接
字符串拼接的原理:

当字符串之间使用"+"拼接的时候,系统底层会自动创建一个StringBuilder对象,然后再调用其append()方法完成拼接,最后再调用toString()方法转为字符串类型。

②常量优化机制

  		String s8 = "abc";
        String s9 = "a" + "b" + "c";
        System.out.println(s8 == s9);

常量优化机制

java存在常量优化机制,在编译的时候就会将"a"+“b”+“c” 拼接为"abc"

  • 字符串的遍历

public char charAt(int index) 返回指定索引处的char值 public int length() 返回此字符串的长度

		String str = "HelloWorld";
        // for循环遍历
        for (int i = 0; i < str.length(); i++){
            // 获取指定索引处的字符
            char ch = str.charAt(i);
            System.out.print(ch + " ");
        }

字符串的遍历

  • String方法小结
方法名说明
public boolean equals(Object obj)比较字符串的内容,严格区分大小写
public boolean equalsIgnore(String str)比较字符串的内容,不区分大小写
public int length()返回字符串的长度
public char charAt(int index)返回字符串中指定索引处的字符
public char[] toCharArray()将字符串拆分为字符数组后返回
public String subString(int begin, int end)根据开始&&结束索引截取字符串并返回新的字符串(包头不包尾)
public String subString(int begin)根据开始索引截取字符串末尾结束并返回新的字符串
public String replace(CharSequence target,CharSequence replacement )使用新值,将字符串中的旧值替换,从而得到新的字符串
public String[] split(String regex)根据传入的规则切割字符串,得到字符串数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值