본문 바로가기
공부/JAVA

1023 공부

by 예림220 2023. 10. 23.

(1) 자바의 정석 

Ch-12 12~14 

12-12 와일드 카드 <?> 

- 하나의 참조 변수로 대입된 타입이 다른 객체를 참조 가능 

<? extends T> T와 그 자손들만 가능  <? Super T> T와 그 조상들만 가능  <?> 제한 없음.  

- 메서드의 매개변수에 와일드 카드를 사용 

 

지네릭 메서드 

- 지네릭 타입이 선언된 메서드 (타입 변수는 메서드 내에서만 유효) 

- 클래스 타입 매겨변수 <T>와 메서드의 타입 매개변수 <T>는 별개 

- 메서드를 호출할 때마다 타입을 대입해야 (대부분 생략 가능) 

- 메서드를 호출할 때 타입을 생략하지 않을 때는 클래스 이름 생략 불가 

 

와일드 카드는 하나의 참조변수로 서로 다른 타입이 대입된 여러 지네릭 객체를 다루기 위한 것이고, 

지네릭 메서드는 메서드를 호출할 때마다 다른 지네릭 타입을 대입할 수 있게 한 것이다. 

 

(2) IT 용어 도감 

리소스 / 프로세스

리소스: 컴퓨터 속의 자원

프로세스: CPU가 처리하는 일련의 작업  

 

(3) 자바의 정석 

Ch-12 15, 16 

12-15 지네릭 타입의 형변환

- 지네릭 타입과 원시 타입 간의 형변환은 바람직 하지 않다(경고 발생) 

- 와일드 카드가 사용된 지네릭 타입으로는 형변환 가능 

 

12-16 지네릭 타입의 제거 

- 컴파일러는 지네릭 타입을 제거하고, 필요한 곳에 형변환을 넣는다. 

 

(4) 자바의 정석

12-17~20 열거형

12-17 열거형(enum) 

- 관련된 상수들을 같이 묶어 놓은 것, Java는 타입에 안전한 열거형을 제공  

자바의 열거형은 값하고 타입 모두를 체크한다

12-18 열거형의 정의와 사용

- 열거형을 정의하는 방법

enum 열거형이름 { 상수명1, 상수명2, … }

- 열거형 타입의 변수를 선언하고 사용하는 방법 

- 열거형 상수의 비교에 == 와 compareTo() 사용 가능 

12-19 열거형의 조상 - java.lang.Enum

- 모든 열거형은 Enum의 자손이며, 아래의 메서드를 상속받는다. 

Class<E> getDeclaringClass() 

String name() 

int ordinal() T 

valueOf(Class<T> enum Type, String name) 

- values(), valueOf()는 컴파일러가 자동으로 추가 

 

(5) 자바의 정석 

Ch12 - 21, 22 [열거형에 멤버 추가하기]

- 불연속적인 열거형 상수의 경우, 원하는 값을 괄호() 안에 적는다. 

- 괄호 () 를 사용하려면, 인스턴스 변수와 생성자를 새로 추가해 줘여 한다. 

- 열거형의 생성자는 묵시적으로 private이므로, 외부에서 객체생성 불가 

 

(6) 자바의 정석 

Ch-12 23, 24 [애너테이션]

애너테이션이란?

- 주석처럼 프로그래밍 언어에 영향을 미치지 않으며, 유용한 정보를 제공 

 

(7) 자바의 정석

Ch-12 23~26 [표준애너테이션]

@Override

- 오버라이딩할 때는 메서드 선언부 앞에 @Override를 붙이자.

- 오버라이딩을 올바르게 했는지 컴파일러가 체크하게 한다. 

- 오버라이딩할 때 메서드이름을 잘못적는 실수를 하는 경우가 많다. 

 

@Deprecated 

- 앞으로 사용하지 않을 것을 권장하는 필드나 메서드에 붙인다.

 

@Functionallnterface 

- 함수형 인터페이스에 붙이면, 컴파일러가 올바르게 작성했는지 체크

- 함수형 인터페이스에는 하나의 추상메서드만 가져야 한다는 제약이 있음 

 

@SuppressWarnings 

- 컴파일러의 경고메시지가 나타나지 않게 억제한다. 

- 괄호() 안에 억제하고자하는 경고의 종류를 문자열로 지정 

 

(8) 자바의 정석

Ch-12 29~33 [메타애너테이션]

- 메타 애너테이션은 ‘애너테이션을 위한 애너테이션’

- 메타 애너테이션은 java.lang.annotation패키지에 포함 

 

@Target

- 애너테이션을 정의할 때, 적용대상 지정에 사용 

 

@Retention

- 애너테이션이 유지되는 기간을 지정하는데 사용 

- 컴파일러에 의해 사용되는 애너테이션의 유지 정책은 SOURCE이다.

- 실행시에 사용 가능한 애너테이션의 정책은 RUNTIME이다. 

 

@Documented, @Inherited 

- javadoc으로 작성한 문서에 포함시키려면 @Documented를 붙인다.

- 애너테이션을 자손 클래스에 상속하고자 할 때, @Inherited를 붙인다.

 

@Repeatable

- 반복해서 붙일 수 있는 애너테이션을 정의할 때 사용 

- @Repeatable이 붙은 애너테이션은 반복해서 붙일 수 있다. 

'공부 > JAVA' 카테고리의 다른 글

231025 자바의정석 (쓰레드)  (2) 2023.10.25
231024 자바의정석 (애너테이션 타입 정의, 요소)  (0) 2023.10.24
1020 금요일  (0) 2023.10.20
0710 집에서 공부하기  (0) 2023.07.10
버블정렬  (6) 2023.06.25