基础面试题

基础面试题,第1张

1、判断一个数是否是2的N次方。

用二进制与运算来判断,可以快速得出结论。if(n&(n-1) == 0) 

2、String str1 = "abc"; String str2 = "abc"; System.out.println(str1==str2);    //true

String str1 = "abc"; String str2 = "abc"; str1 = "bcd";

System.out.println(str1 + "," + str2);     //bcd,abc

System.out.println(str1==str2);         //false

虽然最开始 str1和str2都指向同一个变量abc但str1引用变化后不会改变str2的

String str1 = "abc";

String str2 = "abc";

str1 = "bcd"; String

str3 = str1;

System.out.println(str3); //bcd

String str4 = "bcd";

System.out.println(str1 == str4);    //true

String str1 = new String("abc");

String str2 = "abc";

System.out.println(str1==str2);     //false  new在堆内存中新开了一个对象

String s1 = "ja";

String s2 = "va";

String s3 = "java";

String s4 = s1 + s2; //java 注意这个+号,java里面重载了+,其实调用了stringBuild,会new对象。 System.out.println(s3 == s4);    //false

System.out.println(s3.equals(s4));    //true 只是比较值

记得一句话,new出来的对象在堆中,引用的对象在栈中。只要栈中引用的对象没有改变,无论被引用多少次,值都是相等的

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/870451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存