230331 - java(14)

팝콘·2023년 3월 31일

Java

목록 보기
13/17

1. API

  • 애플리케이션 개발에 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스다.

자바 라이브러리

  • 전부 클래스 메서드다.
  • 클래스 이름에 s가 붙으면 util일 가능성이 높다.

1. java.lang

  • 자바 애플리케이션 개발에 필수적으로 사용되는 라이브러리들이 포함된 패키지다.

  • Object 클래스

  • System 클래스
    - java.lang.System : JVM이 실행중인 시스템에 대한 정보를 제공하는 클래스다.

  • String 클래스

  • Wrapper 클래스(Byte, Short, Integer, Long, Charactor, Float, Boolean)

  • StringBuffer, StirngBuilder 클래스

  • Math 클래스
    - java.lang.Math : 수학 연산과 관련된 기능을 제공하는 클래스다.

2. java.util

  • 자바의 콜렉션 프레임워크, 자바의 유틸클래스가 포함된 패키지다.
  • 콜렉션 프레임워크(자바의 자료구조 라이브러리)
    - Collection, Set, List, Map
  • 유틸 클래스
    - Date, Random, Arrays, Collections, Objcts
    - java.util.Objects : 객체와 관련된 유용한 기능을 제공하는 클래스다.
    - java.util.Arrays : 배열과 관련된 유용한 기능을 제공하는 클래스다.
    - java.util.Collections : 자료구조와 관련된 유용한 기능을 제공하는 클래스다.

3. java.io와 java.nio

  • 입출력 관련 라이브러리가 포함된 패키지다.
  • InputStream, OutputStram 클래스
  • Reader, Writer 클래스
  • File 클래스
    - java.nio.file.fileSystems, java.nio.file.Paths, java.nio.file.Files : 파일 시스템, 경로, 파일과 관련된 유용한 기능을 제공하는 클래스다.

4. java.net

  • 네트워크 프로그램 구현에 필요한 라이브러리가 포함된 패키지다.
  • ServerSocket 클래스
  • Socket 클래스
  • URL, URI 클래스
  • InetAddress 클래스

5. java.text

  • 텍스트, 숫자, 날짜 관련 처리(포맷팅, 변환)를 지원하는 라이브가 포함된 패키지다.
  • MessageFormat 클래스
  • DecimalFormat 클래스
    - 숫자를 문자로, 문자를 숫자로
  • SimpleDateFormat 클래스

6. java.time

  • 날짜, 시간 관련 라이브러리가 포함된 패키지다.
  • LocalDate 클래스
  • LccalTime 클래스
  • LocaldateTime 클래스

2. Object

  • 모든 객체의 최상위 부모객체다.
  • 모든 객체는 Object 타입의 변수에 대입가능하다.
  • Object의 equals(Object obj)는 동등성 비교가 가능하게 hashCode(), equals(Object obj) 재정의해서 사용하자.
  • Object의 toString()은 객체의 정보를 표현하도록 재정의해서 사용하자.
  • Java에서 동등성 비교 및 해시 기반 자료구조의 정상적인 동작을 보장하기 위해서 equals() 재정의시 hashcode() 또한 같이 재정의해줘야한다.

객체의 비교

  1. 동일성 비교
    • 두 객체의 주소값을 비교해서 같은 객체인지 비교하는 것
    • 참조변수가 참조하는 객체가 같은 객체를 참조하고 있을 때만 true다.
    • 비교연산자의 ==은 객체에 대해서 동일성 비교를 비교한다.
    • Object의 equlas(Object obj)는 객체에 대해서 동일성을 비교한다.
  1. 동등성 비교
    • 객체의 내용을 비교해서 같은 객체인지 비교하는 것
    • 객체의 멤버변수에 저장된 값이 서로 같으면 true다.
    • Object의 hashCode()와 equals(Object obj)를 재정의하면 동등성을 비교할 수 있다.
  • 스트림(Stream)
  1. 자바 애플리케이션과 리소스를 연결해서 데이터를 읽어오거나 데이터를 내보내는 기능을 제공하는 객체다.
  2. 한번에 하나씩 연속적인 데이터의 흐름이다.
  • copy() : 객체 복사하기
  • getclass() : 객체의 설계도 정보 조회
  • getName() : 설계도정보에서 클래스 전체이름 조회
  • getDeclaredFields() : 설계도정보에서 필드정보 조회
  • getDeclaredMethods()
	Method[] methods = clazz.getDeclaredMethods();
		for(Method method : methods) {
			String returnTypeName = method.getReturnType().getName();
			String methodName = method.getName();
			System.out.println("메소드 정보 -> " + returnTypeName + " " + methodName);
	}

4. System

  • System 클래스는 표준 입출력장치와 연결된 스트림 객체를 제공한다.
  • currentTimeMillis() - 시스템의 현재 날짜와 시간정보를 표현하는 유닉스 타임값을 long 타입의 정수값으로 반환한다.
  • String getenv(String name) - 지정된 시스템 환경 변수값을 반환한다.
  • Map<String, Stirng> getenv() - 시스템의 모든 환경변수정보를 Map 객체에 담아서 반환한다.
  • String getProperty(String name) - 지정된 이름의 시스템 프로퍼티값을 반환한다. (폴더 구분 문자)
  • Properties getPropertise() - 시스템의 모든 프로퍼티값을 Properties객체에 담아서 반환한다. (줄바꿈 문자)
  • 줄바꿈문자는 System.lineSeparator() 메소드를 실행해도 획득할 수 있다.
  • ArrayCopy(Object src, int srcPos, Ovject dest, int destPos, int length) : 배열 복사하기
    - src : 원본배열
    - srcPos : 원본배열에서의 복사 시작위치
    - dest : 목적지배열
    - destPos : 목적지배열의 저장 시작위치
    - length : 복사할 갯수
profile
터짐

0개의 댓글