String——字符数组的封装

String

String是对字符数组的封装 String中提供了很多方法帮助我们操作这个被封装的字符数组

一.创建String的两种方式

​ 串池:用来放置字符串常量对象的区域 JDK1.7以前在方法区中 JDK1.7以后在堆空间中

​ 1.String str = “字符串内容”;

以字符串常量形式创建字符串对象时  会在串池中创建一个String对象

​ 2.通过构造方法创建: String str = new String(“字符串内容”);

new的形式创建字符串对象时 会现在串池中创建一个String对象 再在堆空间中创建一个对象 并把堆中对象的地址给予引用

​ 3.串池的特性

为了防止多次创建相同内容的字符串对象   相同内容的字符串对象只在串池中创建一次 内容相同引用都指向串池中同一对象

​ (常见面试题)

String两种创建对象的区别:

​ String str = “字符串内容” :只在串池中创建一个对象

​ 通过构造方法创建: String str = new String(“字符串内容”); :需要在串池和堆中各创建一个对象

二.String的不可变性

​ 字符串对象在串池中被创建后 对象就不可再被修改 如果对象内容被拼接则 先创建对象的副本再进行拼接从而生成新的对象

​ 根据不同的场景 新对象所创建区域也不同

​ 1.当使用对象名+“xxxx” 或直接使用对象与对象名相加时 这个拼接有对象名参与

生成的新对象存在于堆中

​ 2.当拼接是以"xxx"+“xxx” 纯字符串常量相加时

生成的新对象存在于串池中
三.可变长字符串

​ 1.StringBuffer

​ JDK1.0出现 线程安全 效率低

​ 2.StringBuilder

​ JDK1.5出现 线程不安全 效率高

StringBuffer str1 = new StringBuffer("Hello");
StringBuffer str2 = str1;
str1.append("World");
System.out.println(str1==str2);//true
System.out.println(str1);//hw
System.out.println(str2);//hw

注意区分:
String两种创建的方法区别
String与StringBuffer或StringBuilder的区别
StringBuffer和StringBuilder的区别

掌握String中的十种以上常用API在项目实践中大有裨益:
字符串中的方法介绍
1、int length() 字符串长度
2、boolean equals(Object obj) 比较2个字符串的内容是否相同
3、char charAt(int index) 根据指定下标index,获取对应的1个字符
4、String substring(int beginIndex) 截取字符串
对比:replace();字符替换I
5、String intern() 获取字符串在串池中的地址
6、char[] toCharArray() 字符串转换成字符数组类型
7、boolean contains(String s) boolean b = s1.contains(s2); s2是否是s1子串
8、boolean isEmpty() 判断是否是空字符串("" 长度0),是空串返回true,否则false
9、String toLowerCase() 字符串转换成小写返回
10、String toUpperCase() 字符串转换成大写返回
11、String trim() 去掉字符串前后的空格
12、boolean endsWith(String suffix) s1.endsWith(s2) 判断s1是否以s2结尾
13、boolean startsWith(String prefix) 判断一个字符串是否以 prefix开头
14、int lastIndexOf(String str) 从后向前查询
15、int lastIndexOf(String str, int fromIndex) 从formIndex向前检索

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值