//같은 값 선언으로 s3=s4 주소값 같음
String s3 = "Hi";
String s4 = "Hi";
//단순 선언으로 주소값이나 문자 값이나 일치
System.out.println(s3.equals(s4)); //true
System.out.println(s3 == s4); //true
//new로 선언되어 새로운 주소(공간)을 할당
String s5 = new String("Hi");
System.out.println(s3.equals(s5)); //true
System.out.println(s3 == s5); //false
문자열을 비교시에는 ==보다는 equals를 사용해야 한다.
왜냐하면 일반적으로 같은 문자를 선언하면, 메모리 값을 절약하기 위해 기존 값을 참조하여 가져오게 된다.
==는 주소를 기반으로 비교를 한다.
new 키워드를 사용하게 되면 문자값은 동일하지만 주소값이 달라 false를 반환하게 된다.
[Java] 반복문(while - do) (0) | 2023.01.03 |
---|---|
[Java] 조건문(성적 판정 if문을 switch로 전환) (1) | 2023.01.03 |
[Java] 여러가지 연산자_2(비트 이동 연산자, <<, >>, >>>) (0) | 2023.01.02 |
[Java] 여러가지 연산자_2(int숫자 4자리 2진수로 변환 And 연산) (0) | 2023.01.02 |
[Java] 변수와 자료형_4(리스트에서 remove + indexOf 사용법) (0) | 2023.01.02 |
댓글 영역