import java.util.Scanner;
class test1{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("用戶名:");
String name = sc.next();
//char name1 = name.charAt(0);
System.out.print("密碼:");
int password = sc.nextInt();
String str1 = "青青"; //用戶名的值
int i1 = 123; //密碼的值
if(password == i1 && name == str1){
System.out.println("歡迎你,青");
}else{
System.out.println("對不起,你不是青");
}
為什么從鍵盤中獲取的 “青” 和str1 中的 “青”不匹配呀
uj5u.com熱心網友回復:
java除了基礎資料型別用==判斷,物件都是用equals方法判斷相等uj5u.com熱心網友回復:
== 符號,如果左右兩邊都是物件的參考的話,判斷的是物件的記憶體地址,而不是物件的內容。如果想要判斷物件的內容,請呼叫 equals 方法進行判斷。
之所以兩個 “青”字不匹配,是因為在記憶體中, name 和 str1 所參考的物件,它們的地址是不相同,它們占用的是不同的記憶體空間。
記憶體地址相同,與,物件內容相同,是兩個概念。
相同地址的物件,就是同一個物件,所以,內容必然相同。
不同地址的物件,內容可以相同,也可以不相同。判斷地址是否相同,使用 == 符號;判斷內容是否相同,呼叫 equals 方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/284932.html
標籤:Java SE
下一篇:javaweb購物商城
