Java笔记(四)String

String概述

String被声明为 final,代表的是字符串常量,因此它不可被继承。每个用双引号括起来的字符串都是 String类的一个实例 

String e = "hello";

Java 8 中,String 内部使⽤ char 数组存储数据。

public final class String
 implements java.io.Serializable, Comparable<String>, CharSequence {
 /** The value is used for character storage. */
 private final char value[];

而在 Java 9 之后,String 类的实现改⽤ byte 数组存储字符串,同时使⽤ coder 来标识使⽤了哪种编 码

public final class String
 implements java.io.Serializable, Comparable<String>, CharSequence {
 /** The value is used for character storage. */
 private final byte[] value;
 /** The identifier of the encoding used to encode the bytes in {@code
value}. */
 private final byte coder;

value 数组被声明为 final,这意味着 value 数组初始化之后就不能再引⽤其它数组。并且 String 内部没 有改变 value 数组的⽅法,因此可以保证 String 不可变。

创建字符串

String s1 = "Runoob";              // String 直接创建
String s2 = "Runoob";              // String 直接创建
String s3 = s1;                    // 相同引用
String s4 = new String("Runoob");   // String 对象创建
String s5 = new String("Runoob");   // String 对象创建

String str = “hello word” //直接引用常量区
String str = new String(“hello world”) //在堆内存创建对象

new String("hello world") 使⽤这种⽅式⼀共会创建两个字符串对象(前提是常量池中没有此对象)

String s = "hello word" 和 String s = new String("hello word") 区别?
两个语句都会先去字符串常量池中检查是否已经存在 “hello word”,如果有则直接使用,如果没有则会在常量池中创建 “hello word” 对象。另外,String s = new String("hello word") 还会通过 new String() 在堆里创建一个内容与 "xyz" 相同的对象实例。

String常用方法

boolean equals(Object obj):比较字符串的内容是否相同
boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同,忽略大小写
boolean startsWith(String str): 判断字符串对象是否以指定的str开头

int length():获取字符串的长度,其实也就是字符个数
char charAt(int index):获取指定索引处的字符
int indexOf(String str):获取str在字符串对象中第一次出现的索引
String substring(int start):从start开始截取字符串
String substring(int start,int end):从start开始,到end结束截取字符串。前闭后开

Java String API文档

更多详情,请参考参看 Java String API 文档:


 

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coding技匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值