Java Study

java.base 모듈

Z00_HWAN_99 2024. 7. 13. 19:02
728x90
반응형

API 도큐먼트

  • 자바 표준 모듈에서 제공하는 라이브러리를 쉽게 찾아서 사용할 수 있도록 도와주는 문서.

java.base

  • 모든 모듈이 의존하는 기본 모듈로, 모듈 중 유일하게 requires하지 않아도 사용할 수 있음.

java.lang

  • 자바 언어의 기본적인 클래스를 담고 있는 패키지
  • 이 패키지에 있는 클래스와 인터페이스는 import 없이 사용할 수 있음.

Object 클래스

  • 클래스를 선언할 때 extends 키워드로 다른 클래스를 상속하지 않으면 암시적으로 java.lang.Object 클래스를 상속.
  • 자바의 모든 클래스는 Object의 자식이거나 자손 클래스.

객체 동등 비교

  • Objects의 equals() 메서드는 객체의 번지를 비교하고 boolean 값을 리턴.

객체 해시코드

  • 객체를 식별하는 정수. Object의 hashCode()메서드는 객체의 메모리 번지를 이용해서 해시코드를 행성하기 때문에 객체마다 다른 정수값을 리턴.
  • hashCode()가 리턴하는 정수값이 같은지 확인하고, equals()메서드가 true를 리턴하는지 확인해서 동등 객체임을 판단.

객체 문자 정보

  • 객체를 문자열로 표현한 값. Object의 toString()메서드는 객체의 문자 정보를 리턴함.
  • 기본적으로 Object의 toString()메서는 '클래스명@16진수해시코드'로 구성된 문자열을 리턴함.

레코드 선언

  • 데이터 전달을 위한 DTO 작성 시 반복적으로 사용되는 코드를 줄이기 위해 도입.

System 클래스

  • System 클래스의 정적 static 필드와 메서드를 이용하면 프로그램 종료, 키보드 입력, 콘솔(모니터) 출력, 현재시간 읽기, 시스템 프로퍼티 읽기 등이 가능.

String 클래스

  • String 클래스 문자열을 저장하고 조작할 때 사용.
  • 문자열을 리터럴은 자동으로 String 객체로 생성. String 클래스의 다양한 생성자를 이용해서 직접 객체를 생성할 수도 있음.
  • 한글 1자를 UTF-8로 인코딩하면 3바이트가 되고, EUC-KR로 인코딩하면 2바이트가 됨.

StringBuilder 클래스

  • 잦은 문자열 변경 작업을 해야 한다면 String보다는 StringBuilder가 좋음.
  • StringBuilder는 내부 버퍼에 문자열을 저장해두고 그 안에서 추가, 수정, 삭제 작업을 하도록 설계.

StringTokenizer 클래스

  • 문자열에 열 종류가 아닌 한 종류의 구분자만 있다면 StringTokenizer를 사용할 수 있도록 있음.
  • StringTokenizer 객체를 생성 시 첫 번째 매개값으로 전체 문자열을 주고, 두 번째 매개값으로 구분자를 줌.
  • 구분자를 생략하면 공백이 기본 구분자가 됨.

포장 객체

  • 기본 타입(byte, char, short, int, long, float, double, boolean)의 값을 갖는 객체.
  • 포장하고 있는 기본 타입의 값을 변경할 수 없고, 단지 객체로 생성하는 목적.

박싱과 언박싱

  • 박싱 : 기본 타입 값을 포장 객체로 만드는 과정. 포장 클래스 변수에 기본 타입 값이 대입 시 발생.
  • 언박싱 : 포장 객체에서 기본 타입 값을 얻어내는 과정. 기본 타입 변수에 포장 객체가 대입 시 발생.

문자열을 기본 타입 값으로 변환

  • 포장 클래스는 문자열을 기본 타입 값으로 변환할 때도 사용.
  • 대부분의 포장 클래스에는 'parse+기본타입'명으로 되어 있는 정적 메서드 있음.

포장 값 비교

  • 포장 객체는 번지를 비교하므로 내부 값을 비교하기 위해 ==와 !=연산자를 사용할 수 없음.
  • 다음 범위의 값을 갖는 포장 객체는 ==와 !=연산자로 비교할 수 있지만. 내부 값을 비교하는 것이 아니라 객체 번지를 비교하는 것.
  • 대신 포장 클래스의 equals()메서드로 내부 값을 비교할 수 있음.

Math 클래스

  • 수학 계산에 사용할 수 있는 정적 메서드 제공.

Date 클래스

  • 날짜를 표현하는 클래스로 객체 간에 날짜 정보로 주고 받을 때 사용.
  • Date() 생성자는 컴퓨터의 현재 날짜를 읽어 Date 객체로 만듦.

Calendar 클래스

  • 달력을 표현하는 추상 클래스
  • getInstance() 메서드로 컴퓨터에 설정된 시간대 기준으로 Calendar 하위 객체로 얻을 수 있음.

날짜와 시간 조작

  • java.time 패키지의 LocalDateTime 클래스가 제공하는 메서드를 이용해 날짜와 시간을 조작 가능.

날짜와 시간 비교

  • LocalDataTime 클래스는 날짜와 시간을 비교할 수 있는 메서드 제공.

DecimalFormat

  • 숫자를 형식화된 문자열로 변환.

SimpleDateFormat

  • 날짜를 형식화된 문자열로 변환.

정규 표현식

  • 문자 또는 숫자와 관련된 표현과 반복 기호가 결합된 문자열.

Pattern 클래스로 검증

  • java.util.regex 패키지의 Pattern 클래스는 정규 표현식으로 문자열을 검증하는 matches() 메서드 제공.

리플렉션

  • Class 객체로 관리하는 클래스와 인터페이스의 메타 정보를 프로그램에서 읽고 수정하는 것.
  • 메타 정보 : 패키지 정보, 타입 정보, 멤버(생성자, 필드, 메서드)정보

패키지와 타입 정보 얻기

  • 패키지와 타입(클래스, 인터페이스) 이름 정보는 다음 메서드로 얻을 수 있음.

리소스 경로 얻기

  • Class 객체는 클래스 파일(~.class)의 경로 정보를 기준으로 상대 경로에 있는 다른 리소스 파일(이미지, XML, Property 파일)의 정보를 얻을 수 있음.

https://github.com/bottomsUp-99?tab=repositories

 

bottomsUp-99 - Overview

Backend Developer. bottomsUp-99 has 10 repositories available. Follow their code on GitHub.

github.com

 

728x90
반응형

'Java Study' 카테고리의 다른 글

Gson이란?  (0) 2024.07.18
데이터 입출력  (2) 2024.07.17
Lamda(람다식)  (0) 2024.07.12
제네릭(Generic)이란?  (0) 2024.07.10
JDBC 라이브러리  (0) 2024.07.07