초보자의 개발 일지
[JAVA] -형변환, 연산자, 문자열비교- 본문
이전에 배운 내용
● 리터럴, 상수
● 형 변환
● 연산자
오늘 배운 내용
● 조건문
● 반복문
- 지난 내용 복습 -
- Type casting(형변환) 개념 정립 -
프로그래밍 작업을 하다 보면 의도치 않게 데이터 손실이 발생하게 될 수도 있다.
또한 본인 또는 작업하는 사람이 예상한 값과 다른 값이 나올 수 있어
형 변환을 통해 자료형 type을 맞춰줘야 하는 작업을 해야 할 수도 있다.
형 변환에는 두 가지 종류가 있다.
-자동 형변환-

-강제 형변환-

(자료형) 변수명; 을 통해 강제 형 변환을 해준 것을 알 수있다.
강제 형 변환을 통해 데이터 타입을 맞춰줘야 할 때도 있다는 것이 중요한 것 같았다.
-증감 연산자 예제 문제 풀기 -

이 문제는 강사님께서 주신 예제 문제인데, 전위 연산, 후위 연산의 적절한 사용으로
증감 연산자의 개념에 익숙해지기에 좋은 문제였다.
풀이는 다음과 같다.
1. number1++ 로 후위연산이 들어가서, 값은 10 그대로. number1 = 10 연산 후 number1 = 11
2 ++number1로 전위연산이 들어가서, 변한 11값에 1을 더함. number1 = 12
3. number2++로 후위연산이 들어가서, 값은 20 그대로. number2 = 20 연산 후 number2 = 21
4. 2와 3의 계산은 32
5.number1++로 후위연산이 들어가서, 값은 12 그대로. number1 = 12 연산 후 number1 = 13
6.--number2로 전위연산이 들어가서, 변한 21값에 1을 뺌. number2 = 20
7.--number3로 전위연산이 들어가서, 본값 30에 1을 더함. number3 = 29
8. 5와 6과 7의 계산은 61
9. 최종적인 number1의 값은 13
10.최종적인 number2의 값은 20
11.최종적인 number3의 값은 29
● 오늘 배운 내용 정리 ●
- 문자열 동등 비교시 주의 할 점과 사용에 대한 이해-

결과는 "홍길동이 아닙니다."가 나오는데,
이는 입력받은 "홍길동"의 주솟값과 name == "홍길동"에서 주솟값이 일치하지 않기 때문이다.

이번엔 동등 비교연산자가 아닌 , .equals() 라는 메소드를 사용하였다. 이는
name으로 받은 데이터의 값이 () 기호 안에 값과 동등하느냐라는 뜻으로
실제 주솟값을 일치시켜주어 "홍길동이 맞습니다."가 출력이 된다.
이렇듯, 문자열을 비교할 때는 동등 비교연산자를 사용하면 안 된다.
equals() 메소드를 사용하여 비교를 하는 법을 배웠다.

결과는 true, false, true로 출력이 된다.
1. 변수에 값을 넣으면 리터럴로써 바로 저장이 된다.
그 값에 똑같은 문자열이 들어오면 다른 데이터 할당이 아깝기 때문에 원래 있는 문자열을 그대로 빌려 가져온다.
2. new 연산자로 문자열을 만들면 힙 영역에 따로 값이 들어가 주솟값이 다르게 매칭된다.
3. 문자열의 데이터 값을 비교하는 방식으로, 주솟값을 매칭하는 것은 아니다.
'Programming > Java' 카테고리의 다른 글
| [JAVA] 컬렉션(List , Set) (0) | 2022.12.10 |
|---|---|
| [JAVA] 기본API와 예외처리, 입출력스트림 (0) | 2022.12.07 |
| [JAVA] 객체와 접근제한자, 상속과 다형성 (0) | 2022.11.30 |
| [JAVA] -자바의 메모리 영역과 배열- (0) | 2022.11.23 |
| [JAVA] -JAVA 프로그래밍의 기초와 개발환경 구축- (0) | 2022.11.17 |