[혼자 공부하는 자바] Chapter 10 ~ 11

혜원·2023년 7월 23일
1
post-thumbnail

기본미션: 혼공 용어 노트에 용어 추가 등 노트 활용하고 공유하기


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

박싱된 Integerrorcpfmf == 연산자로 비교했습니다. 100을 박싱한 Integer 객체는 true가 나오는데, 300을 박싱한 Integer 객체는 false가 나오는 이유를 설명하시오

풀이과정
obj1과 obj2의 내부 값은 100으로 -128부터 127 범위에 속하기에 true가 출력된다.
obh3와 obj4의 내부 값은 300으로 -128부터 127 범위에 속하지 못해 새로운 객체가 생성되어 false가 출력된다.
(== 연산자와 =!= 연산자는 내부의 값이 아닌 포장 객체의 참조를 비교한다.)


10_1 예외 클래스

NullPointerException

자바 프로그램에서 가장 빈번하게 발생하는 실행예외는 java.lang.NullPointerException이다.
null값을 가지는 참조 변수로 도트(.)을 사용했을 때 발생한다.


data 변수가 null 값을 가지고 있어 String 객체를 참조하고 있지 않음
그런데 6라인에서 String 객체의 toString메소드를 호출하고 있어 NullPointerException이 발생한다.

실행 결과


ArrayIndexOutofBoundsException

배열에서 인덱스 범위를 초과할 경우 발생한다.


두개의 실행 매개값을 주지 않아 ArrayIndexOutofBoundsException이 발생한다.

실행결과


NumberFormatException

Interger.parselnt(Stirng s) 혹은 Double.parseDouble(String s)에 숫자로 변환될 수 없는 문자가 포함되어 있다면 발생한다.


7열의 a100문자열은 숫자로 변환 불가하여 NumberFormatException이 발생한다.

실행결과


10_2 예외처리

예외 처리 코드

try-catch-finally 블록은 일반 예외와 실행 예외가 발생할 경우 예외처리를 할 수 있게 한다.

위 코드 7라인에서 java.lang.String2 클래스가 존재하지 않아 ClassNotFoundException이 발생한다. 따라 8라인을 예외처리하고 9라인이 실행된다.


11_1 java.lang 패키지

자바 API 도큐먼트

API란?
프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음을 말한다.

이클립스에서 본 API 도큐먼트

객체 동등 비교(equals() 메소드)

두 객체를 비교하여 논리적으로 동등하면 true를 리턴, 그렇지 않으면 false를 리턴한다.


9라인에서는 매개값이 member타입이고 id 필드값도 같으므로 true, 15라인에서는 매개값이 member 타입이지만 id 필드값이 다르므로 false가 실행된다.

실행결과

프로그램 종료 (exit())

강제적으로 JVM을 종료 시킬 때, System 클래스의 exit()메소드를 사용한다.


7라인에서 프로그램이 강제 종료되므로 11라인은 출력되지 않음

String 클래스

  • 문자 추출 (charAt())
  • 문자열 비교 (equals())
  • 바이트 배열로 변환 (getBytes())
  • 문자열 찾기 (indexOf())
  • 문자열 길이 (length())
  • 문자열 대치 (replace())
  • 문자열 잘라내기 (substring())
  • 알파벳 대소문자 변경 (toUpperCase(), toLowerCase())
  • 문자열 앞뒤 공백 잘라내기 (trim())

3주차에는 1~2주차와 같이 개념만 정리하며 넘어가는 것이 아닌 실행 결과를 다시 보면서 풀이한 것을 써보는 방식으로 정리해 보았어요. 정리 방법을 바꿔보니 머리에 잘 남고 이해도 더 빠르게 되는 것 같아 앞으로 이런 방식으로 정리해 볼 것 같아요!

0개의 댓글