기본미션: 혼공 용어 노트에 용어 추가 등 노트 활용하고 공유하기
선택 미션: p. 512 문제 8번 풀고 풀이 과정 설명하기
박싱된 Integerrorcpfmf == 연산자로 비교했습니다. 100을 박싱한 Integer 객체는 true가 나오는데, 300을 박싱한 Integer 객체는 false가 나오는 이유를 설명하시오
풀이과정
obj1과 obj2의 내부 값은 100으로 -128부터 127 범위에 속하기에 true가 출력된다.
obh3와 obj4의 내부 값은 300으로 -128부터 127 범위에 속하지 못해 새로운 객체가 생성되어 false가 출력된다.
(== 연산자와 =!= 연산자는 내부의 값이 아닌 포장 객체의 참조를 비교한다.)
자바 프로그램에서 가장 빈번하게 발생하는 실행예외는 java.lang.NullPointerException이다.
null값을 가지는 참조 변수로 도트(.)을 사용했을 때 발생한다.
data 변수가 null 값을 가지고 있어 String 객체를 참조하고 있지 않음
그런데 6라인에서 String 객체의 toString메소드를 호출하고 있어 NullPointerException이 발생한다.
배열에서 인덱스 범위를 초과할 경우 발생한다.
두개의 실행 매개값을 주지 않아 ArrayIndexOutofBoundsException이 발생한다.
Interger.parselnt(Stirng s) 혹은 Double.parseDouble(String s)에 숫자로 변환될 수 없는 문자가 포함되어 있다면 발생한다.
7열의 a100문자열은 숫자로 변환 불가하여 NumberFormatException이 발생한다.
try-catch-finally 블록은 일반 예외와 실행 예외가 발생할 경우 예외처리를 할 수 있게 한다.
위 코드 7라인에서 java.lang.String2 클래스가 존재하지 않아 ClassNotFoundException이 발생한다. 따라 8라인을 예외처리하고 9라인이 실행된다.
API란?
프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음을 말한다.
이클립스에서 본 API 도큐먼트
두 객체를 비교하여 논리적으로 동등하면 true를 리턴, 그렇지 않으면 false를 리턴한다.
9라인에서는 매개값이 member타입이고 id 필드값도 같으므로 true, 15라인에서는 매개값이 member 타입이지만 id 필드값이 다르므로 false가 실행된다.
강제적으로 JVM을 종료 시킬 때, System 클래스의 exit()메소드를 사용한다.
7라인에서 프로그램이 강제 종료되므로 11라인은 출력되지 않음
3주차에는 1~2주차와 같이 개념만 정리하며 넘어가는 것이 아닌 실행 결과를 다시 보면서 풀이한 것을 써보는 방식으로 정리해 보았어요. 정리 방법을 바꿔보니 머리에 잘 남고 이해도 더 빠르게 되는 것 같아 앞으로 이런 방식으로 정리해 볼 것 같아요!