본문 바로가기

Language/Java33

[Java API] 날짜와 시간 라이브러리 https://claremont.tistory.com/entry/%EC%8D%B8%EB%A8%B8%ED%83%80%EC%9E%84%EA%B3%BC-%ED%83%80%EC%9E%84%EC%A1%B4-%EA%B3%84%EC%82%B0 썸머타임과 타임존 계산ㅇ썸머 타임(일광 절약 시간: DST, Daylight Saving Time)보통 3월에서 10월은 태양이 일찍 뜨고, 나머지는 태양이 상대적으로 늦게 뜬다. 시간도 여기에 맞추어 1시간 앞당기거나 늦추는 제도를 썸claremont.tistory.com(참고) Java의 날짜와 시간 라이브러리 역사https://claremont.tistory.com/entry/%EC%88%98%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9E%90%EC%84%B.. 2024. 8. 27.
[Java API] enum 주요 메서드 정리 타입 안전 열거형 패턴 - Type-Safe Enum Pattern  ㅁenum 열거형: 타입 안전성을 제공하고, 코드의 가독성을 높이며, 예상 가능한 값들의 집합을 표현하는 데 사용정해진 객체만 사용할 수 있기 때문에, 잘못된 값을 입력하는 문제를 근본적으로 방지해 준다. (런타임 에러 아닌 컴파일 에러로 사전 차단)※ enum은 enumeration의 약자이다  (특징)1. 외부 생성도 컴파일 에러로 차단해준다.2. 열거형은 java.lang.Enum 를 자동(강제)으로 상속받는다..3. 열거형은 이미 java.lang.Enum 을 상속받았기 때문에 추가로 다른 클래스를 상속을 받을 수 없다. 4. 열거형은 인터페이스를 구현할 수 있다.5. 열거형에 추상 메서드를 선언하고, 구현할 수 있다. (이 경.. 2024. 8. 24.
[Java API] Math 클래스, Random 클래스 ㅇMath 클래스: 다양한 수학적 연산을 위한 정적 메서드를 제공하는 유틸리티 클래스따라서 객체를 생성하지 않고 클래스 이름을 통해 직접 메서드를 호출할 수 있다package lang.math;public class MathTest { public static void main(String[] args) { System.out.println("max(1, 3): " + Math.max(1, 3)); // 최대값 System.out.println("min(1, 3): " + Math.min(1, 3)); // 최소값 System.out.println("abs(-1): " + Math.abs(-1)); // 절대값 System.out.println();.. 2024. 8. 23.
[Java API] System 클래스 ㅇSystem 클래스: Java 프로그램 기본 시스템 기능에 접근할 수 있는 유틸리티 클래스e.g. 자바 프로그램의 표준 입력, 표준 출력, 시스템 속성, 환경 변수, 시간 측정 등의 기능을 제공※ 이 클래스는 상속할 수 없으며, 모든 메서드와 필드는 정적(static)으로 선언되어 있어 객체를 생성하지 않고 사용할 수 있다 (예시 코드)package lang.system;import java.util.Arrays;public class SystemMain { public static void main(String[] args) { // 현재 시간(ms)을 가져온다 long currentTimeMillis = System.currentTimeMillis(); S.. 2024. 8. 23.
[Java API] Class 클래스 ㅇClass 클래스: Java Reflection API의 중요한 부분으로, JVM에서 클래스, 인터페이스, 배열 등의 메타데이터를 표현하는 역할Class 객체는 Java의 모든 클래스와 인터페이스에 대해 자동으로 생성되며, 각 클래스와 인터페이스의 런타임 표현을 제공한다. 이를 통해 클래스의 구조, 메서드, 필드, 생성자, 애노테이션 등의 정보에 접근할 수 있다.다시 정리하면, Class 클래스를 통해 개발자는 실행 중인 자바 애플리케이션 내에서 필요한 클래스의 속성과 메서드에 대한 정보를 조회하고 조작할 수가 있다. [Class 클래스 주요 기능]- 타입 정보 얻기: 클래스의 이름, 슈퍼클래스, 인터페이스, 접근 제한자 등과 같은 정보를 조회할 수 있다- 리플렉션(reflection): 클래스에 정의.. 2024. 8. 23.
[Java API] 래퍼 클래스(Wrapper Class) ㅇ래퍼 클래스(Wrapper Class): 기본 자료형(Primitive Type)을 객체로 다룰 수 있게 감싸주는 클래스자바에는 8개의 기본 자료형이 있는데, 이들은 객체가 아니기 때문에 객체지향 프로그래밍(OOP)에서 요구하는 여러 기능을 지원하지 않는다. 예를 들어, 기본 자료형은 컬렉션 프레임워크(e.g. ArrayList, HashMap)와 같은 자바의 API를 사용할 때 문제가 될 수 있다. 이 문제를 해결하기 위해 자바는 각 기본 자료형에 대응하는 래퍼 클래스를 제공한다. 간단한 활용 예시: 래퍼 클래스를 사용하여 기본 자료형을 ArrayList에 저장import java.util.ArrayList;public class WrapperClassExample { public static .. 2024. 8. 22.
[Java API] StringBuilder 클래스 불변인 String 클래스에는 단점이 존재한다. "A" + "B"String("A") + String("B") // 문자는 String 타입이다String("A").concat(String("B")) // 문자의 더하기는 concat을 사용한다new String("AB") // String은 불변이므로 새로운 객체를 생성한다 두 문자를 더하는 경우 다음과 같이 동작한다.더 많은 문자를 더하는 경우에는String str = "A" + "B" + "C" + "D";/*String str = String("A") + String("B") + String("C") + String("D");String str = new String("AB") + String("C") + String("D");String str .. 2024. 8. 22.
[Java API] String 클래스 주요 메서드 정리 String 클래스는 문자열로 처리할 수 있는 다양한 기능을 제공한다. 기능이 방대하므로 필요한 기능이 있으면 그때마다 검색하거나 API 문서를 찾아보도록 하자.  - isEmpty(): 문자열이 비어 있는지 확인한다. (길이가 0)- isBlank(): 문자열이 비어 있는지 확인한다. (길이가 0이거나 공백(Whitespace)만 있는 경우), Java 11 - equals(Object anObject): 두 문자열이 동일한지 비교- equalsIgnoreCase(String anotherString): 두 문자열을 대소문자 구분 없이 비교 - compareTo(String anotherString): 두 문자열을 사전 순으로 비교- compareToIgnoreCase(String str): 두 문자열.. 2024. 8. 22.
[Java API] Object 클래스 주요 메서드: toString(), equals(), getClass(), hashCode(), notify(), notifyAll(), wait() "기본형을 제외한 모든 것은 객체다"자바에서 모든 클래스의 최상위 부모 클래스는 항상 java.lang 패키지에 있는 Object 클래스이며 명시적이 아닌 묵시적인 상속관계이다. (부모가 없어도 따로 extends를 안 해도 된다)※ Object 배열을 활용하면 세상 모든 타입의 객체를 다 담을 수 있다 [Object 클래스가 제공하는 대표적인 기능]1. 객체의 정보를 제공하는 toString()2. 객체의 같음을 비교하는 equals(Object obj)3. 객체의 클래스 정보를 제공하는 getClass()4. 객체의 해시 코드를 반환하는 hashCode()5. 멀티스레드 메서드 notify(), notifyAll(), wait()6. 객체를 복사하는 clone() - 잘 사용하지 않기에 다루지는 않겠.. 2024. 8. 20.