几个String对象的面试题,很经典
来源:互联网 发布:华西附二院抢号软件 编辑:程序博客网 时间:2024/06/14 13:09
这是一道经典的笔试题:
String s=new String("abc");String s1="abc";String s2=new String("abc");
上段代码究竟产生了几个对象?
这涉及到JVM中String 的机制,当你new 一个String时,总会在堆中新建一个对象,然后String 引用指向这个对象,然后检查String pool(字符串池)中有没有和这个字符串内容一样的字符串,没有的话,将此字符串加入String pool。当你用形如 String a = "abc",声明一个字符串时,jvm先检查串池里有没有 abc 这个字符串,有的话直接指向此字符串,没有的话在串池中增加这个字符串,然后指向它。你可以试试 String a ="abc"; String b = "abc"; System.out.print(a == b) 输出true此时,a 和 b都指向 串池中的 "abc"而 String a = new ("abc"); String b = "abc"; System.out.print(a == b) 输出false 此时,a指向堆中的"abc"对象,b指向串池中的"abc"对象"=="比较的是两个引用变量所指向的是否是同一个对象,是的话则返回true,否则false
阅读全文
0 0
- 几个String对象的面试题,很经典
- java 面试题 string 创建几个对象
- 10有关String的经典面试题
- java面试题十三 string创建了几个对象
- 有关String对象的一个面试题
- 经典面试题:100的阶乘有几个结尾零
- 面试题之String str = new String("abc"); 创建了几个对象
- 面试题之String str = new String("abc"); 创建了几个对象
- 面试题--String s=new String("xyz"); 创建了几个对象
- String类的实现 -- C++经典面试题
- 面试题(String 对象)
- 经典的面试题
- String 的面试题
- String的面试题
- JAVA面试题解惑系列(二)——到底创建了几个String对象?
- JAVA面试题解惑系列(二)——到底创建了几个String对象?
- JAVA面试题解惑系列(二)——到底创建了几个String对象?
- JAVA面试题解惑系列(二)——到底创建了几个String对象?
- 按顺序输出ceo
- 读《大话数据结构》有感
- 4红牌、4蓝牌算法实现
- 最重要的事
- TensorFlow 学习
- 几个String对象的面试题,很经典
- JavaUtils-自定义注解校验格式
- Python爬一爬网易云音乐(几百万评论)
- linux系统命令总结(一)
- C++设计模式——原型模式
- GC的四种清理算法
- java中if与switch-case语句的使用及一些注意事项
- Java内存模型
- Java代理模式