Elice

엘리스 12일차 - 제네릭(Generic)과 유용한 클래스

공부곤 2024. 7. 9. 12:08

제네릭(Generic)

  • 자바 5버전에서 등장, 타입 선언을 동적으로
  • 도큐먼트에서 대부분 제네릭 사용
  • 결정되지 않은 타입을 타입 변수로 처리하고 실제 사용시 구체적인 타입으로 대체하는 Java의 문법 요소
public class Subject <T> { //타입 지정
	public T name;
}
  • 선언부에 ‘<>’부호를 사용하고 그 안에 타입 변수 위치
  • 타입 안전성과 코드 중복 최소화

제한된 타입 변수

List<?> unbound = new ArrayList<>();
List<? extends Integer> upperBounded = new ArrayList<>();
List<? super Integer> lowerBounded = new ArrayList<>();
  • Unbound
  • Upper Bounded
  • Lower Bounded

유용한 클래스

Java API 도큐먼트

  • Java 공식 문서
  • Java 개발자의 가장 중요한 참고 자료 중 하나
  • 패키지, 클래스/인터페이스, 상속 구조도, 메서드 등
  • 버전 확인 및 새로운 기능에 대한 간편한 확인

import와 export

import java.io.*
// 다른 모듈의 패키지를 import

module <자바_모듈_이름> {
	requires <모듈의 종속성>;
	
	exports <외부로_노출시킬_패키지>;
}
//작성한 클래스를 외부로 export

java.base

  • 모든 모듈이 requires 하는 모듈(수많은 유용한 패키지를 가짐)

java.lang - Object

  • 모든 Java 클래스 들의 조상 클래스
  • 필드가 없고 메서드로만 구성
  • toString() - 인스턴스를 토대로 문자열로 만들어 반환
  • clone() - 내부 필드값을 복사하여 새로운 인스턴스를 생성하고 반환
  • equals(Object) - 객체의 주소 값 비교하여 boolean 반환

java.lang - String

  • 문자열을 다루기 위한 클래스 불변(Immutable)의 속성을 가짐

java.lang - StringBuilder

  • 문자열을 더하거나 변경할 때 발생하는 메모리 낭비를 줄이기 위해 사용
  • 단일 스레드 환경에서 사용 추천
  • append, insert, delete, replace 등

java.lang - StringTokenizer

  • 문자열을 특정 구분자로 분리, 토큰들을 순차적으로 처리 가능
  • countTokens, hasMoreTokens, nextToken 등

java.lang - Math

  • 수학 연산을 도와주는 클래스
  • Static 필드값과 메소드만이 존재
  • min, max, sin, cos, floor, ceil, pow, E, PI, DEGREE TO RADIAN

java.util

java.util - Arrays

  • 배열을 더 쉽게 다루기 위한 클래스
  • copyOf, copyOfRange, fill, binarySearch 등

java.util - regex

  • 정규 표현식: 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어
  • 원하는 문자열을 찾거나, 검증, 치환하기 위한 문자열

java.util - Random

  • 난수 생성 클래스

java.util - Calendar

  • 날짜와 시간을 다루기 위한 클래스

 


java.io

  • 시스템 입력 및 출력을 제공해주는 패키지

java.time

  • LocalDate
  • LocalTime
  • 날짜와 시간을 표현 및 조작하기 위한 패키지
  • 기존의 Date, Calendar 보다 개선된 방식