Java中创建String的两道面试题及详解
来源:互联网 发布:靠谱的程序员培训机构 编辑:程序博客网 时间:2024/06/05 13:31
我们知道创建一个String类型的变量一般有以下两种方法:
String str1 = "abcd";String str2 = new String("abcd");
那么为什么会存在这两种创建方式呢,它们在内存中的表现形式各有什么区别?
下面来看下面两道经常遇到的面试题。
面试题1:
String a = "abcd";String b = "abcd";System.out.println(a == b); // trueSystem.out.println(a.equals(b)); // true
解析:
用""创建的a,b两个字符串,==和equals比较返回都为true,这是因为a,b都指向了方法区的同一个字符串。所以,当同样的一个字符串用""重复创建时只在方法区创建一次。
面试题2:
String c = new String("abcd");String d = new String("abcd");System.out.println(c == d); // falseSystem.out.println(c.equals(d)); // true
解析:
用new创建的c,d两个字符串,equals为true很简单因为equals永远比较的是值,而==为false说明两个字符串的引用不一样。用new创建的字符串每次都会在JVM堆中创建,所以c,d都对应堆中的两个不同的字符串。
关于这两道题中的""和new创建的字符串在内存中的表现形式可以看下图就明白了。
推荐阅读
去BAT面试完的Mysql面试题总结(55道,带完整答案)
阿里高级Java面试题(首发,70道,带详细答案)
2017派卧底去阿里、京东、美团、滴滴带回来的面试题及答案
Spring面试题(70道,史上最全)
通往大神之路,百度Java面试题前200页。
分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。
阅读全文
0 0
- Java中创建String的两道面试题及详解
- 详解Java String字符串对象的创建及管理(1)
- 详解Java String字符串对象的创建及管理(2)
- JAVA中string创建对象详解
- Java中String对象创建机制详解
- Java中JNI的使用详解第四篇:C/C++中创建Java对象和String字符串对象及对字符串的操作方法
- java String 面试题详解
- Java中String 的创建问题
- java中创建string的方法
- java 中String创建对象的区别
- Java中String两种不同创建方式的区别及intern的用法
- Java中String对象创建机制详解(转载)
- Java String 对象创建详解
- Java String 对象创建详解
- java 面试题 string 创建几个对象
- java中string详解
- Java中String详解
- java中String的用法及比较
- 通往大神之路,百度Java面试题前200页。
- Android开发所需技能总结
- Tomcat集群session复制与Oracle的坑。。
- 第三方频道管理
- Tengine-Ngnix高级版
- Java中创建String的两道面试题及详解
- Maven精选系列--classifier元素妙用
- [BZOJ1801] 中国象棋 dp
- Spring Boot Debug调试
- nodemcu,esp8266,esp32下载工具
- 分享一套分布式架构设计视频教程
- 记PAM250矩阵的自乘
- 基于Cmd Markdown编辑阅读器的Markdown入门
- 使用spring连接及操作mongodb3.0