面试常见String问题总结
2017-01-14 23:22
162 查看
String s1 = "abc" String s2 = "abc" System.out.println(s1==s2)
结果为true
由于是字符串常量。而且字符串在程序中经常使用,所以JAVA对其提供了缓冲区,缓冲区的字符串会被共享使用双引号的形式定义字符串常量就是存储在缓冲区中的。使用“abc”时会现在缓冲区中查找是否存在此字符串,没有就创建一个,有则直接使用,第一次使用“abc’时会在缓冲区中创建,第二次则是直接饮用之前创建好的了。
String s1 = new String("abc"); String s2 = new String ("abc"); System.out.println(s1==s2)
返回结果为false,通过new创建的比较地址都为false,
String s1 ="abc" String s2 = "a" String s3 = "bc" String s4 =s2+s3; System.out.println(s1==s4);
这里结果是false Java中字符串的相加其内部是使用StringBuilder类的append()方法和toString方法来实现的;而StringBuilder类toString()方法返回的字符串是通过构造函数创建的
String s1 = “abc”;
String s2 = “a”+”bc”;
System.out.println(s1==s2);
这里的结果是true,其实这里的s2并没有进行字符串相加,两个双引号形式的字符串常量相加,在编译的时候会直接被转为一个字符串”abc”
相关文章推荐
- 面试求职--IT面试常见问题总结
- 如何获得HR的青睐,面试常见的问题总结
- 【面试】【Spring常见问题总结】【08】
- 对面试常见问题的一些总结
- java面试常见问题之Hibernate总结
- iOS 面试常见问题总结
- Java面试中关于String的问题总结
- 【面试】【Spring常见问题总结】【03】
- 【面试】【Spring常见问题总结】【05】
- iOS 面试常见问题总结2
- 链表的一些常见笔试面试问题总结及代码
- c和c++面试常见问题总结
- 【面试】【Spring常见问题总结】【07】
- 如何获得HR的青睐,面试常见的问题总结
- ICT领域面试常见问题总结(一)
- 面试常见问题总结
- 常见面试问题总结(持续更新)
- 【面试】【Spring常见问题总结】【04】
- 【面试】【Spring常见问题总结】【02】
- 【面试】【Spring常见问题总结】【06】