字符串实例创建方式

字符串实例创建方式在这里插入图片描述

字符串:

创建一个字符串类的实例有两种方式

第一种,每个由双引号引起来的,都是String这个类的实例

示例代码:

String str = "abcd";

第一种方式创建的执行流程

(1)检查字符串常量池中有没有这个字符串,如果有,直接返回这个字符串的地址,让栈中的字符串对象引用直接存储这个地址。

如果字符串常量池中没有这个字符串,会首先在字符串常量池中开辟内存空间,存储这个字符串,创建完成后会把新创建的字符串对象的内存地址返回,让栈中的对象引用存储这个字符串常量池的地址

(2)这种方式创建字符串对象不用在堆(heap)中开辟内存空间再去创建一个String对象了

第二种,通过String提供的构造方法

示例代码

String str = new String("abcd");
char[] chars = { 'a' , 'g' , 'e' };
String str1 = new String( chars );

第二种创建字符串对象的执行流程

(1)首先,会在堆中开辟内存空间去存储 通过new这种方式创建出来的字符串对象(实际上这个字符串对象也没有存储真实的数据,只不过存储了真实的字符串数据在字符串常量池中的地址)

(2)其次,会去字符串常量池中查找是否有目标字符串数据,如果有,直接返回字符串的地址,让堆中的字符串对象存储这个地址,

如果没有查找到,会先创建真实的对象,然后在返回这个地址让堆中的字符串对象存储这个地址。

(3)栈中的字符串对象引用在这种创建方式下,存储的是堆中的字符串对象。

字符串常用方法

获取字符串的长度 int length();

获取字符串中特定位置的字符 char charAt (int index);

获取特定的字符的下标 int indexOf(char ch);

获取特定的字符的最后一次出现的下标 int lastIndexOf(char ch);

将字符串转为char数组 char [] toCharArray();

将字符数组转为字符串 new String(char[] chs);

Stringreplace(char oldChar, char newChar)返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar
String[]split(String regex)将此字符串拆分为给定 regular expression的匹配
Stringsubstring(int beginIndex)返回一个字符串,该字符串是此字符串的子字符串。
booleanendsWith(String suffix)测试此字符串是否以指定的后缀结尾。
booleanstartsWith(String prefix)测试此字符串是否以指定的前缀开头。
booleanisEmpty()返回 true ,当且仅当, length()0
StringtoLowerCase()使用默认语言环境的规则将此 String所有字符转换为小写。
StringtoUpperCase()使用默认语言环境的规则将此 String所有字符转换为大写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值