Java字符串面试题汇总(用这一篇文章堵住面试官的嘴)
1.String 字符串介绍
String属于引用数据类型,由于被final修饰,所以String是不可变的,JVM使用字符串池来存储所有的字符串对象。
2 创建String的不同方式有哪些
2.1 通过new关键字
使用这种方式时, 每次new都会生成一个新的对象 (JVM创建字符串对象但不存储于字符串池。new相同内容的字符串对象会重新生成一个对象, 我们可以调用intern()方法将该字符串对象存储在字符串池,如果字符串池已经有了同样值的字符串,则返回引用。

2.2 双引号创建
使用这种方式时,JVM去字符串池找有没有值(内容)相等的字符串,如果有,则返回找到的字符串引用。否则创建一个新的字符串对象并存储在字符串池。

3 equals和==区别
==比较基本数据类型时,比较的是内容;比较引用数据类型String时,比较的是指向堆内存地址是否一样
eauals比较String的内容
4 String和StringBuffer和StringBuilder的区别
String str="a";
for(int i=1:i<10000;i++){
str+="a";
}
StringBuffer str1=new StringBuffer("a");
for(int i=1:i<10000;i++){
str.append("a");
}
StringBuilder str1=new StringBuilder("a");
for(int i=1:i<10000;i++){
str.append("a")

本文详细介绍了Java中字符串的相关知识,包括字符串的不可变性、创建方式、equals与==的区别、String、StringBuffer与StringBuilder的区别、字符串转换以及回文判断等面试常考问题。强调了字符串池的作用和String的intern()方法的应用。
最低0.47元/天 解锁文章
7140





