[Java] chapter8

Ryong·2023년 12월 15일
0

Java

목록 보기
9/12
post-thumbnail

API(Object)

든 자바 클래스의 최상위 클래스로, 자바에서 생성되는 모든 객체는 기본적으로 Object 클래스의 하위 클래스이다.

주요 메서드 및 용도

  1. toString()
    설명: 객체의 문자열 표현을 반환.
    용도: 객체의 문자열 표현을 얻는 데 사용되며, 주로 디버깅이나 로깅에서 활용
public class Example {
    public static void main(String[] args) {
        Object obj = new Object();
        String objString = obj.toString();
        System.out.println(objString);
    }
}
  1. equals(Object obj)
    설명: 객체의 동등성 비교를 수행
    용도: 두 객체가 동일한지 여부를 판단하는데 사용되며, 주로 컬렉션에서 중복된 객체를 제거하거나 검색할 때 활용
public class Example {
    public static void main(String[] args) {
        Object obj1 = new Object();
        Object obj2 = new Object();
        boolean areEqual = obj1.equals(obj2);
        System.out.println("Objects are equal: " + areEqual);
    }
}
  1. hashCode()
    설명: 객체의 해시 코드를 반환
    용도: 해시 기반의 자료구조에서 객체를 식별하는데 사용되며, equals() 메서드와 함께 사용될 때 유용
public class Example {
    public static void main(String[] args) {
        Object obj = new Object();
        int hashCode = obj.hashCode();
        System.out.println("HashCode: " + hashCode);
    }
}
  1. getClass()
    설명: 객체의 클래스 정보를 반환
    용도: 실행 중에 객체의 클래스를 동적으로 알아내는 데 사용되며, 리플렉션과 같은 기술에서 활용
public class Example {
    public static void main(String[] args) {
        Object obj = new Object();
        Class<?> objClass = obj.getClass();
        System.out.println("Class: " + objClass.getName());
    }
}

API(String)

문자열을 나타내는 데 사용되며, Java에서는 문자열 조작과 처리에 매우 중요한 역할을 수행한다.

주요 메서드 및 용도

  1. length()
    설명: 문자열의 길이를 반환
    용도: 문자열의 길이를 알아내는 데 사용
public class Example {
    public static void main(String[] args) {
        String str = "Hello, World!";
        int length = str.length();
        System.out.println("Length: " + length);
    }
}
  1. charAt(int index)
    설명: 지정된 인덱스 위치의 문자를 반환
    용도: 문자열에서 특정 인덱스 위치의 문자를 얻는 데 사용
public class Example {
    public static void main(String[] args) {
        String str = "Java";
        char charAtIndex = str.charAt(1);
        System.out.println("Character at index 1: " + charAtIndex);
    }
}
  1. concat(String str)
    설명: 문자열을 이어붙임
    용도: 두 문자열을 결합하여 새로운 문자열을 생성하는 데 사용
public class Example {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "World";
        String concatenatedStr = str1.concat(str2);
        System.out.println("Concatenated String: " + concatenatedStr);
    }
}
  1. equals(Object anObject)
    설명: 두 문자열의 내용이 동일한지 확인
    용도: 문자열 간의 내용 비교를 위해 사용
public class Example {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "hello";
        boolean areEqual = str1.equals(str2);
        System.out.println("Strings are equal: " + areEqual);
    }
}
  1. substring(int beginIndex)
    설명: 지정된 인덱스부터 끝까지의 부분 문자열을 반환
    용도: 문자열을 잘라내어 새로운 부분 문자열을 얻는 데 사용
public class Example {
    public static void main(String[] args) {
        String str = "Programming";
        String subStr = str.substring(5);
        System.out.println("Substring: " + subStr);
    }
}
  1. contains(문자열)
    설명 : 문자열이 특정 부분을 포함하고 있는지 확인
    용도 : 주로 문자열이나 컬렉션(리스트, 집합 등) 내에 특정 요소나 문자열이 포함되어 있는지를 확인하는 데 사용
String str = "Hello, World!";
if (str.contains("World")) {
    System.out.println("The string contains 'World'");
}

API(StringBuffer / StringBuilder)

가변(mutable)한 문자열을 나타내며, 문자열의 변경이 필요한 경우에 사용
둘 다 사용하는 방법은 동일.

StringBuilder는 StringBuffer와 유사하지만, 스레드 동기화 처리가 되어 있지 않아 멀티스레드 환경에서 사용할 때 StringBuffer보다 빠름.

StringBuilder는 단일 스레드 환경에서 문자열 조작이 필요한 경우에 사용되며, StringBuffer보다 빠른 성능을 제공

주요 메서드 및 용도

  1. append(String str)
    설명: 문자열을 뒤에 추가
    용도: 기존 문자열 뒤에 새로운 문자열을 추가하는 데 사용
public class Example {
    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer("Hello");
        stringBuffer.append(" World");
        System.out.println(stringBuffer);
    }
}
  1. insert(int offset, String str)
    설명: 지정된 위치에 문자열을 삽입
    용도: 특정 위치에 새로운 문자열을 삽입하는 데 사용
public class Example {
    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer("Hello");
        stringBuffer.insert(5, " Java");
        System.out.println(stringBuffer);
    }
}
  1. delete(int start, int end)
    설명: 지정된 범위의 문자를 삭제
    용도: 특정 범위의 문자를 삭제하여 문자열을 수정하는 데 사용
public class Example {
    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer("Hello World");
        stringBuffer.delete(5, 11);
        System.out.println(stringBuffer);
    }
}
  1. toString()
    설명: StringBuffer / StringBuilder 를 String으로 변환
    용도: StringBuffer / StringBuilder에서 작업을 수행한 후 최종 결과를 String으로 변환하는 데 사용
public class Example {
    public static void main(String[] args) {
        StringBuilder stringBuilder = new StringBuilder("Hello");
        stringBuilder.append(" World");
        String result = stringBuilder.toString();
        System.out.println(result);
    }
}
  1. reverse()
    설명: 문자열을 뒤집음
    용도: 문자열을 역순으로 만들 때 사용
public class Example {
    public static void main(String[] args) {
        StringBuilder stringBuilder = new StringBuilder("Java");
        stringBuilder.reverse();
        System.out.println(stringBuilder);
    }
}
  1. length()
    설명: 문자열의 길이를 반환
    용도: 문자열의 길이를 알아내는 데 사용
public class Example {
    public static void main(String[] args) {
        StringBuilder stringBuilder = new StringBuilder("Hello World");
        int length = stringBuilder.length();
        System.out.println("Length: " + length);
    }
}

API(Calendar)

날짜 및 시간 정보를 다루는 추상 클래스로, 자바에서 날짜와 시간을 처리하는 데 사용
getInstance() 메서드를 통해 Calendar 클래스의 인스턴스를 얻을 수 있으며, 싱글톤 패턴을 사용하여 현재의 로컬 및 타임존에 대한 Calendar 객체를 반환
주로 날짜 및 시간의 계산, 비교, 형식화 등의 작업에 활용

주요 메서드 및 용도

  1. get(int field)
    설명: 지정된 필드(년, 월, 일 등)의 값을 반환
    용도: 특정 필드의 값을 얻어오는 데 사용
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1; // 월은 0부터 시작하므로 1을 더함
int day = calendar.get(Calendar.DAY_OF_MONTH);
  1. set(int field, int value)
    설명: 지정된 필드에 값을 설정
    용도: 특정 필드에 원하는 값을 설정하는 데 사용
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2023);
calendar.set(Calendar.MONTH, Calendar.DECEMBER);
calendar.set(Calendar.DAY_OF_MONTH, 25);
  1. add(int field, int amount)
    설명: 지정된 필드의 값을 주어진 양만큼 증가 또는 감소
    용도: 특정 필드의 값을 증가 또는 감소시키는 데 사용
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 7); // 현재 날짜에서 7일 뒤로 이동
  1. getTime()
    설명: Date 객체로 현재의 날짜 및 시간을 반환
    용도: Date 객체로 변환하여 날짜 및 시간을 다루거나 출력하는 데 사용
Calendar calendar = Calendar.getInstance();
Date currentDate = calendar.getTime();
  1. toString()
    설명: Calendar 객체의 문자열 표현을 반환
    용도: 디버깅이나 로깅 등에서 Calendar 객체의 내용을 살펴볼 때 사용
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.toString());

API(Time)

날짜 및 시간을 다루기 위한 다양한 클래스와 메서드를 포함하고 있으며, 이 패키지는 불변(immutable)하며, 스레드 안전성이 보장되어 있어 복잡한 날짜 및 시간 연산을 보다 안전하게 수행

주요 클래스 및 용도

  1. LocalDate 클래스
    설명: 날짜 정보를 표현하는 클래스로, 연, 월, 일 정보를 담고 있습니다.
    용도: 특정 날짜를 나타내거나 날짜 연산을 수행하는 데 사용됩니다.
생성자:
now(): 현재 날짜를 반환
of(int year, int month, int dayOfMonth): 지정된 연, 월, 일로 날짜를 생성

메서드:
getYear(): 연도를 반환
getMonth(): 월을 반환
getDayOfMonth(): 일을 반환
plusDays(long daysToAdd): 지정된 일 수를 더한 새로운 날짜를 반환
minusDays(long daysToSubtract): 지정된 일 수를 뺀 새로운 날짜를 반환
  1. LocalTime 클래스
    설명: 시간 정보를 표현하는 클래스로, 시, 분, 초, 나노초 정보를 담고 있음
    용도: 특정 시간을 나타내거나 시간 연산을 수행하는 데 사용
생성자:
now(): 현재 시간을 반환
of(int hour, int minute): 지정된 시간과 분으로 시간을 생성

메서드:
getHour(): 시를 반환
getMinute(): 분을 반환
plusHours(long hoursToAdd): 지정된 시간을 더한 새로운 시간을 반환
minusMinutes(long minutesToSubtract): 지정된 분을 뺀 새로운 시간을 반환
  1. LocalDateTime 클래스
    설명: 날짜와 시간 정보를 함께 표현하는 클래스로, LocalDate와 LocalTime을 합친 형태
    용도: 특정 날짜와 시간을 나타내거나 날짜 및 시간 연산을 수행하는 데 사용
now(): 현재 날짜와 시간을 반환
of(int year, int month, int dayOfMonth, int hour, int minute): 
지정된 연, 월, 일, 시간, 분으로 날짜와 시간을 생성

메서드:
getYear(): 연도를 반환
getMonth(): 월을 반환
getDayOfMonth(): 일을 반환
getHour(): 시를 반환
getMinute(): 분을 반환
plusDays(long daysToAdd): 지정된 일 수를 더한 새로운 날짜와 시간을 반환
minusHours(long hoursToSubtract): 지정된 시간을 뺀 새로운 날짜와 시간을 반환
  1. Instant 클래스
    설명: 에포크 시간을 나타내는 클래스로, 특정 시점의 타임스탬프를 표현
    용도: 시간 측정이나 타임스탬프 관리 등에 사용
now(): 현재의 에포크 시간을 반환
ofEpochSecond(long epochSecond): 지정된 에포크 초로 Instant 객체를 생성

메서드:
getEpochSecond(): 에포크 초를 반환
plusSeconds(long secondsToAdd): 지정된 초를 더한 새로운 Instant를 반환
minusMillis(long millisToSubtract): 지정된 밀리초를 뺀 새로운 Instant를 반환
  1. Duration 클래스
    설명: 두 시간 사이의 지속 시간을 나타내는 클래스로, 시간의 길이
    용도: 두 시간 사이의 차이를 계산하거나 시간에 대한 연산을 수행하는 데 사용
생성자:
between(Temporal startInclusive, Temporal endExclusive): 
두 시각 사이의 지속 시간을 계산

메서드:
getSeconds(): 초를 반환
toMinutes(): 분으로 변환된 값을 반환
plusHours(long hoursToAdd): 지정된 시간을 더한 새로운 Duration을 반환
minusDays(long daysToSubtract): 지정된 일 수를 뺀 새로운 Duration을 반환

API(Dateformat)

날짜와 시간을 특정한 형식으로 출력하거나 문자열을 날짜로 파싱하는 데 사용되는 추상 클래스
이 클래스는 날짜와 시간을 다양한 지역 및 언어에 맞는 형식으로 표현할 수 있도록 지원

주요 메서드 및 용도

  1. format(Date date)
    설명: 주어진 Date 객체를 형식화된 문자열로 변환
    용도: Date 객체를 문자열로 표현하여 특정 형식으로 출력할 때 사용
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

Date currentDate = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = dateFormat.format(currentDate);
  1. parse(String source)
    설명: 주어진 문자열을 Date 객체로 파싱
    용도: 특정 형식의 문자열에서 날짜와 시간 정보를 추출하여 Date 객체로 변환할 때 사용
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

String dateString = "2023-12-01 14:30:00";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parsedDate = dateFormat.parse(dateString);
  1. SimpleDateFormat 클래스
    DateFormat 클래스의 구현 중 하나로, 날짜와 시간을 지정된 패턴에 따라 형식화하거나 파싱하는 데 사용
주요 패턴 문자
y: 연도
M: 월
d: 일
H: 시 (24시간 형식)
h: 시 (12시간 형식)
m: 분
s: 초
S: 밀리초

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

Date currentDate = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = dateFormat.format(currentDate);

String dateString = "2023-12-01 14:30:00";
Date parsedDate = dateFormat.parse(dateString);

API(DecimalFormat)

숫자를 형식화하거나 파싱하는 데 사용되는 클래스로, 특정 패턴에 따라 숫자를 문자열로 변환하거나 문자열을 숫자로 파싱
이 클래스는 소수점 이하 자릿수의 표현이나 통화, 백분율 등과 같은 다양한 형식으로 숫자를 표현

주요 메서드 및 용도

  1. format(double number)
    설명: 주어진 숫자를 형식화된 문자열로 변환
    용도: 숫자를 특정 패턴에 따라 형식화하여 문자열로 표현할 때 사용
import java.text.DecimalFormat;

double number = 1234567.89;
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
String formattedNumber = decimalFormat.format(number);
  1. parse(String source)
    설명: 주어진 숫자를 형식화된 문자열로 변환
    용도: 숫자를 특정 패턴에 따라 형식화하여 문자열로 표현할 때 사용
import java.text.DecimalFormat;

double number = 1234567.89;
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
String formattedNumber = decimalFormat.format(number);
  1. parse(String source)
    설명: 주어진 숫자를 형식화된 문자열로 변환
    용도: 숫자를 특정 패턴에 따라 형식화하여 문자열로 표현할 때 사용
import java.text.DecimalFormat;

double number = 1234567.89;
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
String formattedNumber = decimalFormat.format(number);
  1. parse(String source)
    설명: 주어진 문자열을 숫자로 파싱
    용도: 특정 패턴의 문자열에서 숫자를 추출하여 숫자로 변환할 때 사용
import java.text.DecimalFormat;

String numberString = "1,234,567.89";
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
double parsedNumber = decimalFormat.parse(numberString).doubleValue();
주요 패턴 문자
0: 숫자 (없는 자리는 0으로 채움)
#: 숫자 (없는 자리는 표시하지 않음)
.: 소수점
,: 그룹 구분자

import java.text.DecimalFormat;

double number = 1234567.89;
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
String formattedNumber = decimalFormat.format(number);

String numberString = "1,234,567.89";
double parsedNumber = decimalFormat.parse(numberString).doubleValue();

API(GregorianCalendar)

Calendar 클래스의 구현 중 하나로, 그레고리력(Gregorian calendar)을 따르는 날짜와 시간을 나타낸다.
그레고리력은 현재 세계적으로 가장 널리 사용되는 달력으로, 윤년을 포함한 날짜를 정확하게 나타낸다.

주요 메서드 및 용도

  1. 생성자
    GregorianCalendar(): 현재의 날짜와 시간을 나타내는 객체를 생성
    GregorianCalendar(int year, int month, int dayOfMonth): 지정된 연, 월, 일로 날짜와 시간을 나타내는 객체를 생성
    GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute): 지정된 연, 월, 일, 시간, 분으로 날짜와 시간을 나타내는 객체를 생성
import java.util.GregorianCalendar;

GregorianCalendar currentCalendar = new GregorianCalendar();
GregorianCalendar customCalendar = new GregorianCalendar(2023, 11, 31, 23, 59);
  1. 메서드
    get(int field): 지정된 필드(년, 월, 일, 시간 등)의 값을 반환
    set(int field, int value): 지정된 필드에 값을 설정
    add(int field, int amount): 지정된 필드의 값을 주어진 양만큼 증가 또는 감소
    getTime(): Date 객체로 현재의 날짜와 시간을 반환
import java.util.GregorianCalendar;
import java.util.Date;

GregorianCalendar calendar = new GregorianCalendar();
int year = calendar.get(GregorianCalendar.YEAR);
calendar.set(GregorianCalendar.MONTH, GregorianCalendar.DECEMBER);
calendar.add(GregorianCalendar.DAY_OF_MONTH, 7);
Date currentDate = calendar.getTime();
  1. 그레고리력 관련 메서드
    isLeapYear(int year): 주어진 연도가 윤년인지 여부를 반환
import java.util.GregorianCalendar;

int year = 2024;
boolean isLeapYear = GregorianCalendar.isLeapYear(year);

API(Wrapper)

Wrapper 클래스들은 기본 데이터 타입을 객체로 감싸는 역할을 한다.
Java에서는 기본 데이터 타입(primitive types)과 이에 대응하는 Wrapper 클래스를 제공하여, 기본 데이터 타입을 객체로 다룰 수 있게 한다.
Wrapper 클래스들은 주로 컬렉션 프레임워크, 제네릭스, 메서드 오버로딩 등의 상황에서 필요하며, 기본 데이터 타입을 객체로 다룰 수 있는 메서드 및 유틸리티를 제공한다.

  1. Integer
    기본 데이터 타입: int
주요 메서드:
parseInt(String s): 문자열을 정수로 변환
valueOf(int i): 정수를 Integer 객체로 변환

// 문자열을 정수로 변환
int intValue = Integer.parseInt("123");

// 정수를 Integer 객체로 변환
Integer integerValue = Integer.valueOf(123);
  1. Double
    기본 데이터 타입: double
주요 메서드:
parseDouble(String s): 문자열을 실수로 변환
valueOf(double d): 실수를 Double 객체로 변환

// 문자열을 실수로 변환
double doubleValue = Double.parseDouble("3.14");

// 실수를 Double 객체로 변환
Double doubleObject = Double.valueOf(3.14);
  1. Boolean
    기본 데이터 타입: boolean
주요 메서드:
parseBoolean(String s): 문자열을 논리값으로 변환
valueOf(boolean b): 논리값을 Boolean 객체로 변환

// 문자열을 논리값으로 변환
boolean booleanValue = Boolean.parseBoolean("true");

// 논리값을 Boolean 객체로 변환
Boolean booleanObject = Boolean.valueOf(true);
  1. Character
    기본 데이터 타입: char
주요 메서드:
toString(char c): 문자를 문자열로 변환
valueOf(char c): 문자를 Character 객체로 변환

// 문자를 문자열로 변환
String charString = Character.toString('A');

// 문자를 Character 객체로 변환
Character charObject = Character.valueOf('A');
  1. Auto(un)boxing
    자동 박싱(auto-boxing)과 자동 언박싱(auto-unboxing)을 지원
    기본 데이터 타입과 Wrapper 객체 간의 자동 변환을 의미하며, Java에서 편리한 기능 중 하나이다.
// Auto-boxing: int -> Integer
Integer intValue = 42;

// Auto-unboxing: Integer -> int
int unboxedValue = intValue;

API(Math)

수학적인 연산을 수행하는 데 사용되는 유틸리티 클래스로, Java에서 제공하는 기본 수학 함수 및 상수를 포함하고 있다.
Math 클래스는 모든 메서드가 static이므로 객체 생성 없이 직접 클래스 이름을 통해 사용할 수 있다.

주요 메서드 및 용도

  1. 기본 수학 함수
    abs(double a): 주어진 값의 절댓값을 반환
    sqrt(double a): 주어진 값의 제곱근을 반환
    cbrt(double a): 주어진 값의 세제곱근을 반환
double absoluteValue = Math.abs(-5.5);
double squareRoot = Math.sqrt(25);
double cubeRoot = Math.cbrt(27);
  1. 지수 및 로그 함수
    exp(double a): 주어진 값의 지수 함수(e^x)를 반환
    log(double a): 주어진 값의 자연 로그를 반환
    pow(double a, double b): a의 b제곱을 반환
double exponential = Math.exp(2);
double naturalLog = Math.log(10);
double power = Math.pow(2, 3);
  1. 삼각 함수
    sin(double a): 주어진 각도의 사인 값을 반환
    cos(double a): 주어진 각도의 코사인 값을 반환
    tan(double a): 주어진 각도의 탄젠트 값을 반환
double sineValue = Math.sin(Math.PI / 2);
double cosineValue = Math.cos(0);
double tangentValue = Math.tan(Math.PI / 4);
  1. 랜덤 함수
    random(): 0.0에서 1.0 사이의 난수를 반환
double randomValue = Math.random();
  1. 상수
    PI: 원주율(π)을 나타냄
    E: 자연 로그의 밑인 오일러 상수를 나타냄
double piValue = Math.PI;
double eValue = Math.E;
profile
새로운 시작. 그리고 도약

0개의 댓글