Java String Instantiation

后端 未结 3 1718
梦如初夏
梦如初夏 2021-01-13 19:18

Why is this code returning \"false\" instead of \"true\":

package com.company;


public class Main {

    public static void main(String[] args) {

        S         


        
3条回答
  •  耶瑟儿~
    2021-01-13 20:14

    String Constant Pool create at compiling-time. it only using strings from pool when you concat String literals / final variables / final fields except final parameters, for example:

    Concat Literals

    String fullName = "Name Lastname";
    String firstNamePlusLastName = "Name " + "Lastname";
    
    System.out.println(fullName == firstNamePlusLastName);// true
    

    Concat Final Variables

    String fullName = "Name Lastname";
    final String name = "Name ";
    final String lastName = "Lastname";
    String firstNamePlusLastName = name + lastName;
    
    System.out.println(fullName == firstNamePlusLastName);//true
    

提交回复
热议问题