Javaの体系的な知識ポイントの要約(1)
2年生の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である:" + S1)とのSystem.out.println( "S1 == S2は:" + 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