기본 타입 자료형
기본 타입 변수의 ==, != 연산은 변수의 값이 같은지, 아닌지 알아볼 때 사용된다.
여기서 기본 타입 변수들의 종류에는
byte/short/int/long(정수형), float/double(실수형), char(문자형), boolean(논리형)이 있다.
참조 타입 자료형
참조 타입 변수들 간의 ==, != 연산은 동일한 객체를 참조하는지, 다른 객체를 참조하는지 알아볼 때 사용된다.
여기서 참조 타입 변수들의 종류에는 배열, 클래스, 인터페이스, 어노테이션 등이 있다.
참조 타입 변수의 값은 힙 영역의 객체 주소이므로 ==, != 연산은 결국 번지 값을 비교하는 것이 된다.
즉, 동일한 번지 값을 갖고 있다는 뜻은 동일한 객체를 참조한다는 것이다.
그렇다면 동일한 String 객체이건 다른 String 객체이건 상관없이
내부 문자열을 비교하고 싶을 때는 어떻게 해야할까? 바로 equals() 메소드를 사용하면 된다.
그리고 String 객체를 생성할 때
문자열 리터럴로 생성하느냐 new 연산자로 생성하느냐에 따라 결과가 달라진다.
위의 내용을 코드로 보면 더 쉽게 이해가 가능하므로 아래의 종합된 코드를 보도록 하자.
public class StringEx {
public static void main(String[] args) {
// 문자열 리터럴로 생성해서 비교하기
String strVal1 = "코린이";
String strVal2 = "코린이";
if(strVal1 == strVal2) {
System.out.println("strVal1 == strVal2 참조가 같음");
}else {
System.out.println("strVal1 != strVal2 참조가 다름");
}
// new 연산자를 이용해 String을 객체를 생성해서 비교하기
String strVal3 = new String("코린이");
String strVal4 = new String("코린이");
if(strVal3 == strVal4) {
System.out.println("strVal3 == strVal4 참조가 같음");
}else {
System.out.println("strVal3 != strVal4 참조가 다름");
}
// 변수 안의 값만 비교
if(strVal1.equals(strVal2)) {
System.out.println("strVal1 문자열 == strVal2 문자열이 같음");
}else {
System.out.println("strVal1 문자열 == strVal2 문자열이 다름");
}
// 참조 변수의 값만 비교
if(strVal3.equals(strVal4)) {
System.out.println("strVal3 문자열 == strVal4 문자열이 같음");
}else {
System.out.println("strVal3 문자열 == strVal4 문자열이 다름");
}
}
}
// 결과
strVal1 == strVal2 참조가 같음
strVal3 != strVal4 참조가 다름
strVal1 문자열 == strVal2 문자열이 같음
strVal3 문자열 == strVal4 문자열이 같음
'국비 지원 > JAVA' 카테고리의 다른 글
[JAVA] 멤버변수, 지역변수, 전역변수 (0) | 2023.05.06 |
---|---|
[JAVA] 배열 생성 new 연산자 (0) | 2023.05.03 |
[JAVA] Scanner에서 next()와 nextLine()의 주의할 점 (2) (0) | 2023.04.30 |
[JAVA] 사용자의 입력을 받을 수 있는 Scanner (1) (0) | 2023.03.14 |
[JAVA] print() / printf() - 지시자 / println() (0) | 2023.03.13 |
기본 타입 자료형
기본 타입 변수의 ==, != 연산은 변수의 값이 같은지, 아닌지 알아볼 때 사용된다.
여기서 기본 타입 변수들의 종류에는
byte/short/int/long(정수형), float/double(실수형), char(문자형), boolean(논리형)이 있다.
참조 타입 자료형
참조 타입 변수들 간의 ==, != 연산은 동일한 객체를 참조하는지, 다른 객체를 참조하는지 알아볼 때 사용된다.
여기서 참조 타입 변수들의 종류에는 배열, 클래스, 인터페이스, 어노테이션 등이 있다.
참조 타입 변수의 값은 힙 영역의 객체 주소이므로 ==, != 연산은 결국 번지 값을 비교하는 것이 된다.
즉, 동일한 번지 값을 갖고 있다는 뜻은 동일한 객체를 참조한다는 것이다.
그렇다면 동일한 String 객체이건 다른 String 객체이건 상관없이
내부 문자열을 비교하고 싶을 때는 어떻게 해야할까? 바로 equals() 메소드를 사용하면 된다.
그리고 String 객체를 생성할 때
문자열 리터럴로 생성하느냐 new 연산자로 생성하느냐에 따라 결과가 달라진다.
위의 내용을 코드로 보면 더 쉽게 이해가 가능하므로 아래의 종합된 코드를 보도록 하자.
public class StringEx {
public static void main(String[] args) {
// 문자열 리터럴로 생성해서 비교하기
String strVal1 = "코린이";
String strVal2 = "코린이";
if(strVal1 == strVal2) {
System.out.println("strVal1 == strVal2 참조가 같음");
}else {
System.out.println("strVal1 != strVal2 참조가 다름");
}
// new 연산자를 이용해 String을 객체를 생성해서 비교하기
String strVal3 = new String("코린이");
String strVal4 = new String("코린이");
if(strVal3 == strVal4) {
System.out.println("strVal3 == strVal4 참조가 같음");
}else {
System.out.println("strVal3 != strVal4 참조가 다름");
}
// 변수 안의 값만 비교
if(strVal1.equals(strVal2)) {
System.out.println("strVal1 문자열 == strVal2 문자열이 같음");
}else {
System.out.println("strVal1 문자열 == strVal2 문자열이 다름");
}
// 참조 변수의 값만 비교
if(strVal3.equals(strVal4)) {
System.out.println("strVal3 문자열 == strVal4 문자열이 같음");
}else {
System.out.println("strVal3 문자열 == strVal4 문자열이 다름");
}
}
}
// 결과
strVal1 == strVal2 참조가 같음
strVal3 != strVal4 참조가 다름
strVal1 문자열 == strVal2 문자열이 같음
strVal3 문자열 == strVal4 문자열이 같음
'국비 지원 > JAVA' 카테고리의 다른 글
[JAVA] 멤버변수, 지역변수, 전역변수 (0) | 2023.05.06 |
---|---|
[JAVA] 배열 생성 new 연산자 (0) | 2023.05.03 |
[JAVA] Scanner에서 next()와 nextLine()의 주의할 점 (2) (0) | 2023.04.30 |
[JAVA] 사용자의 입력을 받을 수 있는 Scanner (1) (0) | 2023.03.14 |
[JAVA] print() / printf() - 지시자 / println() (0) | 2023.03.13 |