体现功底的几道java面试题
作者:互联网
前言
最近面试某公司,其技术主管精选了几道java题目用以面试,个人觉得很经典,也比起那些动不动就做几页试卷的,其面试效率更高更能体现应聘者的功底,因此附上自己的答案和理解分享出来。
第一道:
//该程序的运行结果是?
public static void main(String... args){
String str1 = "hello";
String str2 = "he" + new String("llo");
System.out.println(str1==str2);
}
答案为:false。对于对象来说,“==”比较的是其内存地址,两个new出来的对象其内存地址不同,对比结果自然为false,如“Integer i = new Integer("1");”和“Integer i2 = new Integer("1");”其“==”对比返回的为false。对于面试官来说,只回答这点是不够的,这道题里str1指向了“hello”的内存地址,但jvm栈内存会对“he"+new String("llo")的计算开辟新的存储空间,因此str2的内存地址与str1并不同。
标签:面试题,java,String,功底,Integer,new,false,内存地址,str1 来源: https://blog.csdn.net/qq_25789309/article/details/121316144