자바 java.base / 제네릭

BRINCE·2022년 9월 19일
0

자바 스터디

목록 보기
4/10

java.base 모듈

  • API 도큐먼트 라이브러리를 사용하기 위한 방법을 기술한 것 (클래스 선언부, 구성멤버, 필드,생성자 ,메소드 를 볼 수 있다.)
  • java.base 모듈 -> 모듈 중 유일하게 requires 하지 않아도 사용할 수 있다.
  • 자바는 두 객체가 동등함을 비교할 때 hashCode()와 equals() 메소드를 같이 사용하는 경우가 많다.

문자열 클래스

  • String :문자열을 저장하고 조작할 때 사용한다. (우리가 평소에 그냥 사용하던 String 은 클래스였던 것이다.😮)
  • StringBuilder : 효율적인 문자열 조작 기능이 필요할 때 사용 (append,insert,delete,replace,toString()) (단순 String+String 보다 좋은 효율을 보여준다.)
  • StringTokenizer : 구분자(공백이나 , 같은) 로 연결된 문자열을 분리할 때 사용한다.
    • countTokens() : 구분자를 빼고 문자열이 몇개인지 세준다.
    • hasMoreTokens() : boolean 타입으로 출력할 나눠진 문자열이 더 있는지 알려준다.
    • nextToken() : 다음 문자열을 출력해준다. 김!일!이 에서 !를 떼고 문자열을 출력하고 싶을때에는 nextToken을 3번 호출하면 된다. 😉

정규 표현식 클래스

문자열이 올바르게 구성되어 있는지 검증할때 사용한다.
Pattern.matches 메소드로 검증한다. (어떠한 문자열을 입력받을때 양식에 맞게 입력되었는지 검증이 필요할때 사용할 수 있다.😁)

어노테이션

코드에서 @으로 작성되는 요소이다. 오버라이딩 할때 오버라이딩 하는 메소드 위에 뜨는 @Override 가 어노테이션이다. 설정정보를 전달해준다.

인터페이스를 정의하는 것과 비슷하게 어노테이션 타입도 정의가 가능하다.

제네릭

제네릭이란 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할때 파라미터를 구체적인 타입으로 대체시키는 기능이다.

public class Box <T>{ //T는 Type 을 의미하는 약자로 자주 사용된다.
public T content; //T 타입을 사용해 초기화가 가능하다. }

타입 파라미터를 대체하는 타입은 클래스 및 인터페이스이며, 기본타입은 대체될 수 없다. (Integer이 아닌 int는 기본타입이기 때문에 대체되지 않는다.😒)
보통은 컴파일 시에 발생하는 에러를 방지하기 위해 강한 타입 체크를 위해 사용된다.

Box<String> box = new Box<>(); //제네릭 객체 생성 

동일한 타입으로 호출하고 싶다면 생성자에 타입을 명시하지 않아도 된다.

제네릭 타입

제네릭 타입은 결정되지 않은 타입을 파라미터로 가지는 클래스와 인터페이스를 말한다.
선언부에 '<>' 부호가 붙고 그 사이에 타입 파라미터들이 위치한다.

public class Class<A,B...>{}
public interface Interface<A,B...>{}

일반적으로 대문자 알파벳 한 글자로 표현하며, 무엇을 의미하는 약자로 사용된다. (ex: Type T , Key K , Value V 등등)
리턴타입이나 파라미터에 제네릭 타입을 사용 가능하다.

제네릭 메소드

제네릭 메소드는 타입 파라미터를 가지고 있는 메소드를 말한다.

public <T> Box <T> boxing(T t){} // 리턴 타입 앞에 타입 파라미터를 정의한 뒤 
//리턴타입과 매개변수 타입에서 사용

제한된 타입 파라미터

모든 타입으로 대체할 수 없고 특정 타입과 자식 또는 구현 관계에 있는 타입만 대체할 수 있는 타입 파라미터
제한된 타입 파라미터 라고 한다.

public <T extends 상위타입> 리턴타입 메소드(매개변수){}

와일드카드 타입 파라미터

'?' 는 범위에 있는 모든 타입으로 대체할 수 있다는 표시이다.

리턴타입 메소드명(제네릭터입<? extends/super 클래스명> 변수){}
profile
자스코드훔쳐보는변태

0개의 댓글