java.lang.String类
java.lang.String类
一、前言
简单了解JDK常用的包和类后,开始学习String类,学习思路:
- 了解String类的概念
- 掌握String类基本的构造器
- 理解创建String对象的底层区别
- 掌握String类基本的常用方法
二、String类的概念
String类代表字符串,字符串是常量,他们的值创建之后不能更改。
java.lang.String:
public final class String
implements java.io.Serializable,Comparable<String>,CharSequence{
- final修饰符:类被final修饰符修饰,所以String类不能被继承,也代表不可变的字符序列(这点目前还不能完全理解,先将其写好);
- Serializable接口:表示字符串是支持序列化的;(据说等到学到IO流的时候即可理解。。)
- Comparable接口:表示String可以比较大小;
三、String类的构造方法
1.String类常用的构造方法
熟练掌握几种String类常用的构造器,剩余可看API;(先掌握一些基础常用的)
String str = "hello";
初始化一个新创建的 String 对象"hello";
String s1 = new String(hello);
new一个String对象"hello";
String s1 = new String(char[] a);
new一个String对象,内容为char[] a;
String s1 = new String(char[] a,int startIndex,int count);
new一个String对象char[] a,从索引startIndex出开始截取,长度为count;
2.创建String对象的两种区别
理解创建String对象后一些基础的底层逻辑
- 直接赋值方式创建对象
直接赋值方式创建对象是在方法区的常量池
- 通过构造方法创建字符串对象
通过构造方法创建字符串对象是在堆内存
例:
public class TestString {
public static void main(String[] args) {
String str1 = "Lance";
String str2 = new String("Lance");
String str3 = str2; //引用传递,str3直接指向st2的堆内存地址
String str4 = "Lance";
System.out.println(str1==str2);//false
System.out.println(str1==str3);//false
System.out.println(str3==str2);//true
System.out.println(str1==str4);//true
}
}
四、String类的常用方法
熟练掌握一些String类常用的方法,剩余可看API;
1.String的判断功能
boolean equals(Object obj): 重写的equals方法,比较字符串的内容是否相同
boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同,忽略大小写
boolean startsWith(String str): 判断字符串对象是否以指定的str开头
boolean endsWith(String str): 判断字符串对象是否以指定的str结尾
2.String类的获取功能
int length(): 获取字符串的长度,其实也就是字符个数
char charAt(int index): 获取指定索引处的字符
int indexOf(String str): 获取str在字符串对象中第一次出现的索引,输入为首位s的索引值
String substring(int start): 从start开始截取字符串
String substring(int start,int end): 从start开始,到end结束截取字符串。包括start,不包括end
3.String的转换功能
char[] toCharArray(): 把字符串转换为字符数组
String toLowerCase(): 把字符串转换为小写字符串
String toUpperCase(): 把字符串转换为大写字符串(使用默认字符集进行编码)
byte[] getBytes():把字符串转换为字节数组(Arrays.toString()查看)
4.其他常用方法
String trim(): 去除字符串两端空格
String[] split(String str): 按照字符串中其有的指定符号分割字符串,存于数组
String intern():将String对象放入常量池中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY