Java/혼공단

[혼공단10기] JAVA - 3주차

슈코 2023. 7. 21. 00:43

혼공단 3주차 - 절반의 성공

조금씩 주차를 채워가고 있다

단순히 주차만 채워가는것은 아무런 의미가 없을 수 있지만

혼공단에 기대어 책을 조금씩 읽어보는 재미는 쏠쏠하다

 

지난주에는 중요하고도 방대했던 객체지향에 대한 이야기가 나왔다면,

이번주는 개발자의 촘촘함을 채워줄 수 있는 파트였던거 같다

 

예외처리는 개발에 있어서는 매우매우 중요한 부분이라고 할 수 있다.

신규개발을 할때도 엄청나게 중요하긴 하지만, 특히 운영하고 있는 소스에

새로운 부분을 추가한다면, 이 예외처리도 매우 중요하다.

 

쉽게 말하면,

잘 실행되고 있는 프로그램에

아주 사소한 한 부분을 추가했는데, 이 부분이 잘못되어 전체 오류가 발생하는 경우가 많았다

생각해보면 아찔한 순간들이 많았던거 같은데

예외처리만 잘해주어도 이런 문제를 많이 보완할 수 있다

 

이 부분은 작은 예시를 하나 붙여보면 더욱 좋을거 같다!

 

 

3주차 기본미션 - 혼공 용어 노트에 용어 추가 등 노트 활용하고 공유하기

혼공 용어 노트는 각 파트에 중요한 용어들을 모아 요약 설명하고 있는 노트이다

사실 책이 굉장히 무거워서 항상 들고다니기 불편한데,

한번 공부할때, 이 용어 노트에 조금 정리를 더해서 가지고 다니면 한번씩 보기가 좋을거 같다

 

10장, 예외처리

 

11장. java.util 패키지

 

3주차 선택미션 - p. 512 문제 8번 풀고 풀이 과정 설명하기

박싱된 Integer 객체를 == 연산자로 비교했을때,
100을 박싱한 Integer 객체는 true인데
300을 박싱한 Integer 객체는 false가 나오는 이유를 설명하라

p512 8번 문제

 

다른결과

이 문제는 Wrapper클래스에 관한 것이다.

자동 박싱된 상황이라고 볼 수 있는데, obj3와 obj4의 결과도 true가 나오게 하려면 어떻게 해야할까?

답은 equals이다

 

== 에서 equals로 수정
같은결과

포장 객체의 내부의 값을 비교하기 위해서는 ==의 사용 대신 equals() 메소드를 쓰는것이 좋다

내부의 값을 비교하기 때문이다.

 

문제는 간단히 해결되지만, 왜 100은 true가 나오고 300은 false가 나오는 것일까?

그것은 박싱된 값이 int이고, int는 -128 ~ 127까지는 ==으로 내부의 값을 비교할 수 있기 때문이다

 

값의 경계로 확인
결과

127까지는 true가 나오지만, 128부터는 false가 나오는 것을 확인할 수 있다

해당 영역이 중요한것이 아니라, Wrapper클래스는 == 비교가 항상 옳다는걸 보장할 수 없으니

equals() 메소드를 사용하는것이 좋다라고 생각하는게 좋을거 같다

 

해당 내용은 혼자공부하는자바 Chapter 11에 p498 ~ p503을 참고하면 된다.

'Java > 혼공단' 카테고리의 다른 글

[혼공단10기] JAVA - 6주차  (0) 2023.08.15
[혼공단10기] JAVA - 5주차  (0) 2023.08.08
[혼공단10기] JAVA - 4주차  (0) 2023.07.25
[혼공단10기] JAVA - 2주차  (1) 2023.07.16
[혼공단10기] JAVA - 1주차  (2) 2023.07.09