728x90
20220920(화)
- 목차
- 자동 리소스 닫기
- 사용자 정의 예외와 예외 발생
- java.lang과 java.util 패키지
- Object 클래스
- Tomcat 설치
< 자동 리소스 닫기 >
- close 역할 : 자원을 쓰고 반납한다
- throw new Exception(); ➡ 예외를 발생시키는 구문
- JDK 제공하는 클래스들 중에는 java.lang.AutoCloseable 인터페이스를 구현한 클래스들 제공
자원을 관리하는 이 클래스들을 이용하여 객체생성 하게되면, close() 메소드를 명시적으로 호출 - try-with-resources 문법을 사용하면, 자동으로 내부에서 close() 호출
< 사용자 정의 예외와 예외 발생 >
- 사용자 정의 예외 클래스 선언
자바 표준 API에서 제공하지 않는 예외 - 애플리케이션 서비스와 관련된 예외
ex) 잔고 부족 예외, 계좌 이체 실패 예외, 회원 가입 실패 예외….
< java.lang과 java.util 패키지 >
- 자바 프로그램의 기본적인 클래스를 담은 패키지
- 포함된 클래스와 인터페이스는 import 없이 사용
< Object 클래스 > : 개념을 이해하기
- 자바의 최상위 부모 클래스
- 모든 클래스들은 Object 클래스를 자동으로 상속받는다.(아래 사진 참고)
(코드 상에는 나타나지 않지만 클래스 생성시 나타난다.)
- Object의 메소드는 모든 클래스에서 사용 가능
- Object 클래스의 메소드
메소드 | 의미 |
객체 비교 (equals()) | - public boolean equals (Object obj) { } - 기본적으로 == 연산자와 동일한 결과 리턴 (번지 비교) |
객체 해시코드 (hashCode()) | - 객체 식별할 하나의 정수값 - 객체의 메모리 번지 이용해 해시코드 만들어 리턴 - 개별 객체는 해시코드가 모두 다름 - HashMap 클래스 : 생성된 기억장소 [key, value] 쌍으로 설계 : key는 중복할 수 없는 성격 |
위 두 메소드를 재정의 안하면, 객체비교는 Object클래스의 설계 원리대로 객체비교 작업이 일어남. 재정의 하면, 내가 원하는 대로 비교를 해서, 객체 비교작업이 일어난다. ➡ 비교기준을 클래스 설계자(개발자) 정의 |
|
객체 문자 정보 (toString()) | 객체를 문자열로 표현한 값 Object 클래스의toString() 메소드는 객체의 문자 정보 리턴 |
객체 복제 (clone()) | * Cloneable 인터페이스를 구현한 클래스 이어야 함 - 얕은 복제(thin clone) : 필드 값만 복제 / 값 변경 하더라도 원본 객체는 영향 X (참조 타입은 객체의 번지 복사, 기본 타입은 값 복사) - 깊은 복제(deep clone) : 참조하고 있는 객체도 복제 / 복제 대상 : 참조타입 - 객체를 새로 생성하는 것보다 객체 복제를 하는 것이 더 성능이 우수하다. 객체를 새로 생성 A a1 = new A (); A a2 = new A (); vs 객체 복제 : 성능이 우수 A a1 = new A (); A a2 = a1.clone(); |
< Objects 클래스 > - 정적 메소드들로 구성
클래스 | 의미 |
객체 비교 (compare(T a, T b, Comparator<T>c)) |
a, b 두 객체를 비교자(c)로 비교해 int값 리턴 Comparator<T> 인터페이스 (제너릭 인터페이스 타입) T 타입의 객체를 비교하는 compare(T a, T b) 메소드 가짐 |
동등 비교 (equals()와 deepEquals()) |
두 객체의 동등 비교 Objects.equals(Object a, Object b) deepEquals(Object a, Object b) 비교할 객체가 배열일 경우 항목 값까지도 비교 |
해시코드 생성 (hash(), hashCode()) |
Objects.hash(Object… values) 매개값으로 주어진 값들 이용해 해시 코드 생성하는 역할 Arrays.hashCode(Object[]) 호출해 해시코드 얻어 리턴 클래스의 hashCode()의 리턴값 생성할 때 유용하게 사용 Objects.hashCode(Object o) o.hashCode() 호출하고 받은 값 리턴 매개값이 null 이면 0 리턴 |
널 여부 조사 (isNull(), nonNull(), requireNonNull()) |
Objects.isNull(Object obj) obj가 null일 경우 true Objects.nonNull(Object obj) obj가 not null일 경우 true |
객체 문자 정보 (toString()) |
객체의 문자정보 리턴 첫 번째 매개값이 not null - toString ( )으로 얻은 값을 리턴 null이면 “null” 또는 두 번째 매개값인 nullDefault 리턴 |
< Tomcat 설치 및 실행 >
[Tomcat 설치] 톰캣 설치 및 서버 구동하기
Tomcat 설정하기 WAS(Web Application Server)로서 동적 웹 컨테이너 1. Tomcat 다운로드 Tomcat 사이트에서 원하는 Tomcat 버전 다운로드 https://tomcat.apache.org/download-90.cgi Apache Tomcat® - Apache T..
dorothy-yang.tistory.com
728x90