Java的string类

两种赋值方式

String name = "小白";
String name = new String("小白");

建议使用第一种方式,在堆内存中存在字符串常量池,如果使用第一种方式,那么只在常量池中开辟内存,如果使用第二种方式,那么首先检查常量池中有没有”小白“,如果没有,那么在常量池中开辟空间存储”小白“,然后再在堆内存中开辟空间存储字符串对象。这样就占用了两份的内存。(所以相当于创建了两个对象)

String是final类,不能被继承
值是不可变的
可以通过下面的方式理解,即只要是通过第一种方式复制,地址指向的堆内存是字符串常量区的,所以内容相同代表着地址相同,但是通过第二种方式创建对象则不是,每次new总是建立新的地址,只有指向相同的对象才相等。
在这里插入图片描述在这里插入图片描述
String类总是被组合在其他类中,所以建议以第一种方式,因为一般不会考虑其地址。

常用方法

  1. 比较字符串的内容,可以使用String类的equals()方法((1) ==:比较的是两个字符串内存地址的数值是否相等,属于数值比较;
    (2)equals():比较的是两个字符串的内容,属于内容比较。)
  2. charAt():
    charAt():返回指定索引处char值
    public char charAt(int index)
  3. toString():转换成String类型
    Object object = getObject();
    System.out.println(object.toString());
    采用这种方法时,通常派生类会覆盖Object里的toString()方法。
  4. getBytes():得到一个字节数组
    都是将一个string类型的字符串转换成byte类型并且存入一个byte数组中。
  5. endsWith(String s)判断是否以指定内容结尾
  6. startsWith(String s,int t):从指定位置判断是否以指定内容开头
  7. replace():)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换
  8. indexOf():指出 String 对象内子字符串的开始位置
    int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。

可以查看说明文档来使用更多的函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值