Java 零碎知识点总结 (1)
回顾大二学java时遇到过的知识点,抽空做个笔记,方便遗忘的时候回头学习。
package 基础问题练习;
public class 优先级1 {
public static void main(String[] args) {
String s1 = "ABC";
String s2 = "ABC";
System.out.println("s1 == s2 is:" + s1 == s2);
}
}
结果:false
原因:
在 Java 中 + 操作法的优先级大于 ==,所以输出部分表达式等于 “s1 == s2 is:ABC” == “runoob”,该表达式计算结果为 false。
如下图,
System.out.println(“s1 == s2 is:” + s1 );和 System.out.println(“s1 == s2 is:” + s1 == s2);
的执行结果的比对:
对同一对象的引用:
public class 优先级 2{
public static void main(String[] args) {
String s1 = "ABC";
String s2 = "ABC"; // s1和s2是同一个字符串
System.out.println(s1==s2); //语句 1
System.out.println("s1 == s2 is:" + s1 == s2); // 语句2 中“+”的级别优先于“==”,所以,这句相当于"s1 == s2 is:" == s2,即判断"s1 == s2 is:ABC"=="ABC",结果为false。
System.out.println("s1 == s2 is:" + (s1 == s2)); // 语句 3
//语句1和语句3实际上是一样的。
}
}
结果:
true
false
s1 == s2 is:true
开辟新的对象:
public class 优先级 2{
public static void main(String[] args) {
String s1 = "ABC";
String s2 = new String("ABC"); // 新开辟一个对象,地址不同,所以对比是false。
System.out.println(s1==s2);
System.out.println("s1 == s2 is:" + s1 == s2);
System.out.println("s1 == s2 is:" + (s1 == s2));
}
}
结果:
false
false
s1 == s2 is:false
该处进一步的图文详解:
基础数据的比对:
public class 优先级3 {
public static void main(String[] args) {
int i = 10;
int k = new Integer(10);
int j = k;
System.out.println(i==j);
System.out.println(i==k); //基本数据不受影响的。
}
}
结果:
true
true
版权声明:本文为qq_43515862原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。