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出来的对象在堆中,引用的对象在栈中。只要栈中引用的对象没有改变,无论被引用多少次,值都是相等的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)