String 基础面试题
Posted satisfysmy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String 基础面试题相关的知识,希望对你有一定的参考价值。
1. JAVA 中字符串内容得到比较用的是 专门的比较方法 equals 。 == 比较的是字符串的引用是否相同。
2. 查看一下代码运行的结果
1 public class Demo { 2 public static void main(String[] args) { 3 // new 创建的对象是存储在堆中的,每次都会创造一个对象,所以 h1==h2 false 4 String h1=new String("hello"); 5 String h2=new String("hello"); 6 System.out.println(h1==h2); 7 // String a="abc" 是 从 String 常量池中拿对象,a 是实体就是 abc 8 // String b="abc" JVM 会拿b 在String 常量池中找是否存在内容相同的字符串对象 9 // 如果不存在,则在常量池中创建一个对象b,否则不添加,所以 a==b true 10 String a="abc"; 11 String b="abc"; 12 System.out.println(a==b); 13 //JAVA 常量优化机制,String 是 final 修饰的,为常量,编译的时候c 已经为 abc 所以 a==c true 14 String c="ab"+"c"; 15 System.out.println(a==c); 16 // JAVA 语言中提供了对字符串串联符号,("+")子符串串联是通过StringBuilder以及append 方法实现的 17 // 不是同一个对象 a==d3 false 18 String d1="ab"; 19 String d2="c"; 20 String d3=d1+d2; 21 System.out.println(a==d3); 22 // 结果是 23 //false 24 //true 25 //true 26 //false 27 } 28 }
以上是关于String 基础面试题的主要内容,如果未能解决你的问题,请参考以下文章