Java面试题:谈谈String类的理解及常用API?
String类是Java中最常用的API,包含了丰富的字符串处理方法。以下是一些常用方法:
charAt(int index)
:返回指定索引处的字符。substring(int beginIndex, int endIndex)
:截取子字符串。split(String regex)
:根据指定规则分割字符串为数组。trim()
:去除字符串前后的空格。indexOf(String str)
:查找子串首次出现的索引。lastIndexOf(String str)
:查找子串最后一次出现的索引。startsWith(String prefix)
:检查是否以指定前缀开头。endsWith(String suffix)
:检查是否以指定后缀结尾。toUpperCase()
:将字符串转换为大写。toLowerCase()
:将字符串转换为小写。replaceFirst(String regex, String replacement)
:替换第一个匹配的子串。replaceAll(String regex, String replacement)
:替换所有匹配的子串。
String类被标记为final
,无法被继承。
创建字符串有两种方式:
- 使用字符串字面量,例如:
String str = "Hello, World!";
。这种方式会利用常量池来管理字符串。 - 使用
new
关键字,例如:String str = new String("Hello, World!");
。这种方式会创建一个新的String对象,保存在堆内存中,相对于直接量方式会占用更多内存。
一般建议使用字符串字面量的方式来创建字符串,因为它更节省内存。原因在于:JVM会先使用常量池来管理字符串直接量,再调用String类的构造器来创建一个新的String对象,新创建的String对象会被保存在堆内存中。对比来说,采用new的方式会多创建出一个对象来,占用了更多的内存 ,所以建议采用直接量的方式来创建字符串。
更多关于Java String知识请阅读:《Java字符串教程》