6
การเปรียบเทียบสตริงด้วย == ซึ่งประกาศเป็นครั้งสุดท้ายใน Java
ฉันมีคำถามง่ายๆเกี่ยวกับสตริงใน Java ==ส่วนต่อไปนี้รหัสง่ายๆเพียงเชื่อมสองสายแล้วเปรียบเทียบพวกเขาด้วย String str1="str"; String str2="ing"; String concat=str1+str2; System.out.println(concat=="string"); การเปรียบเทียบการแสดงออกconcat=="string"กลับมาfalseชัดเจน (ฉันเข้าใจความแตกต่างระหว่างequals()และ==) เมื่อทั้งสองสายมีการประกาศfinalเช่นนั้น final String str1="str"; final String str2="ing"; String concat=str1+str2; System.out.println(concat=="string"); การแสดงออกการเปรียบเทียบในกรณีที่ผลตอบแทนนี้concat=="string" trueทำไมถึงfinalสร้างความแตกต่าง? มันต้องทำอะไรบางอย่างกับสระว่ายน้ำฝึกงานหรือฉันแค่หลงผิด?