Java基础相关5(String,正则)

java基础相关

String类

String 用来表示一个字符串,具有以下特点:

  • java.lang.String 使用了final修饰,因此 不能 被继承。
  • 字符串底层封装了字符数组以及针对字符数组的操作算法。
  • 字符串一旦创建,对象永远无法改变,但字符串引用可以重新复制。
  • java字符串在内存中采用Unicode编码方式,任何一个字符对应两个字节的定长编码。

字符串常量池

java在堆内存中开辟了一段空间用于缓存所有使用字面量形式创建的字符串对象,并在后期再次使用该字面量创建字符串时重用对象,避免内存中堆积大量内容一样的字符串对象来减小内存开销。

对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果存在即返回该对象地址。

String s1 = "123abc";//字面量
String s2 = "123abc";//与s1字面量相同,重用对象
//地址相同,说明s2重用了s1对象
System.out.println(s1==s2);//true
String s3 = "123abc";
System.out.println(s1==s3);//true

注意:

通常我们判断字符串都是比较内容,因此应当使用字符串的equals方法

/*
  这里触发了一个编译器的特性:
编译器在编译期间若遇到几个计算表达式,发现在编译期可以确定结果时就会进行计算
并将结果编译到class文件中,这样以来JVM每次执行字节码文件就无需再计算了。
下面的代码会被编译器改为:
String s5 = "123abc";
也因此s5会重用常量池中的对象,所以地址与s2相同
*/
String s5 = "123" + "abc";
System.out.println("s5:"+s5);
System.out.println(s2==s5); //true

字符串常用方法:

返回长度int length()

返回当前字符串的长度(字符个数)

String str = "我爱java!";
int len = str.length();
System.out.println("len:"+len);

获取元素下标indexOf()

检索给定字符串在当前字符串中的位置,若当前字符串不含有给定内容则返回值为-1

String str = "echo.li.blue";
int index = str.indexOf("l");//5
System.out.println(index);//5

重载方法,可以从指定位数开始检索:

index = str.indexOf("l",6);//3
//                 字符    指定位数
System.out.println(index);

检索最后一次出现l的位置lastIndexOf()

index = str
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值