Why is this code returning \"false\" instead of \"true\":
package com.company;
public class Main {
public static void main(String[] args) {
S
String literals are interned. When you create a string through any method that isn't a literal (calling new String()
, reading from input, concatenation, etc) it will not be automatically interned. When you called String firstNamePlusLastName = name + lastName;
You concatenated name
and lastName
creating a new string. This is not a literal and you didn't call intern
so this string is not added to the string pool.