Java String字符串(总结篇)

本文总结了Java中String类的使用注意事项,包括如何创建字符串对象,如使用双引号赋值或构造方法。强调了字符串是不可变的,频繁修改会导致内存浪费。并提醒在比较字符串内容时应使用equals方法,而非==。最后简要提到了String的一些常见方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

String字符串

String类使用时注意的事项

如何创建一个字符串对象

使用 " "(英文输入下) 赋值创建

通过构造方法创建

 需要注意的地方:

String字符串的常用方法


       

        在String字符串知识点的学习之中,自己总结了一些笔记,在总结笔记的过程中,自己也发现了一些对知识点理解不足的地方,这本身也是不断学习进步的过程。

  • String是一个类,属于引用类型。
  • Java程序中一切使用 "" (英文输入下的双引号)引起来的内容,称为字符串对象。同时也可以称为这个类的实例。
  • 字符串定义后是一个常量,值是不可以更改的。
  • 字符串实际是一个字符数组。

         例如:String str = "abc";  //A行

                    stri = "D"; //B行

        上述代码A行执行的一个过程为:首先创建一个abc字符串对象,并将其地址保存在str变量之中。 在B行代码执行的过程中,看似是改变了字符串str的值,实际上是又创建了一个字符串对象D,并将其地址保存在str变量之中。

        从以上两句话可以看出,在内存中会有两个字符串对象abc和D,但是str只会引用最后赋值的字符串地址D。

String类使用时注意的事项

       在这里我假设进行一个一万次的循环,在这一万次的循环当中,就会创建一万个字符串对象,但最终只有最后一个字符串对象被str引用,其余字符串对象都会被视为“垃圾”被回收掉。

        所以如果需要频繁更改String类型变量的值,可以尽量避免使用String对象操作字符串,这样会效率低又浪费内存空间。

如何创建一个字符串对象

  1. 使用 " "(英文输入下) 赋值创建

           例如:String str = "hello你好!";

  1. 通过构造方法创建

    常见构造方法说明
    String()创建一个空白字符串对象,实际创建一个空字符数组
    String(String str)创建一个指定字符串对象,实际是创建一个形参字符串
    String(char[] list)创建一个指定字符串数组的字符串对象
    String(byte[] list)创建一个指定字节数组的字符串对象(按照默认编码格式)
    String(byte[] list,String charsetName)创建一个指定字节数组的字符串对象(按照指定的编码格式)

public class stringTest{
    public static void main(String[] args){
        
        String str1 = "ab"; //在创建变量str1之前,会先判断字符串"ab"在字符串常量池中是否存在。若不存在则创建,将其地址保存在str1变量中。
        String str2 = "ab";//在创建变量str2之前,同样会先判断字符串"ab"在字符串常量池中是否存在。由于已经存在,所以可以直接使用已有的ab,并保存在str2中。
        String str3 = "a"+"b";//"a","b" 加号+两端的字符串,在拼接的过程在编译的时候就已经完成。所以一样会去判断字符串常量池中是否存在"ab",已存在,将其地址保存在str3中。

        System.out.println(str1 == str2);//true
        System.out.println(str1 == str3);//true
        System.out.println(str2 == str2);//true

        
    }    
}

需要注意的地方:

如果需要比较两个字符串各自的值是否相同的时候,不能使用==判断,因为==判断的是内存地址。所以比较字符串是否相同的时候,需要使用String重写的equals方法进行判断。

String字符串的常用方法

方法名返回值作用
length()int获取字符串的长度
trimString取出字符串首尾的所有空格
toLowerCaseString转换字符串为小写
toUpperCaseString转换字符串为大写
isEmptyboolean判断是否为一个空字符串
getBytesbyte[ ]按默认编码格式将字符串转换为字节数组
toCharArray()char[]将字符串转换为字符数组
equalslgnoreCaseboolean忽略大小写比较指定字符串是否相同
equals(String str)boolean判断字符串是否相同
charAt(int index)char获取index位置上的字符串
indexOf(String str)int 获取str第一次出现的位置,如果不存在返回 -1
lastIndexOf (String str)int 获取str最后一次出现的位置,如果没有返回 -1
contains(要判断的字符或者字符串)boolean判断指定的字符或字符串是否存在于原字符串中
concat(String str)String 将str拼接到原字符末尾
startsWith(String str)boolean判断是否以str字符串开头
endsWith(String str)boolean判断是否以str字符串结尾
substring(int index)String截取原字符串在[index, 字符长度)区间内的字符
substring(int from,int to)String截取原字符串在[from,to)区间的字符
split(String reg)String根据匹配给定的正则表达式来拆分字符串。
String.valueOf(参数)String将一个参数转换为字符串,参数可以是原始类型,也可以是任何对象。
replace(char oldchar,char new char)String使用newchar替换oldchar(newchar会替换所有oldchar)

                                                                                                                                                                                                                                                                                                

以上就是Java中String字符串的常用知识点, 如有不足的地方,希望能多多指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值