든 자바 클래스의 최상위 클래스로, 자바에서 생성되는 모든 객체는 기본적으로 Object 클래스의 하위 클래스이다.
주요 메서드 및 용도
public class Example {
public static void main(String[] args) {
Object obj = new Object();
String objString = obj.toString();
System.out.println(objString);
}
}
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);
}
}
public class Example {
public static void main(String[] args) {
Object obj = new Object();
int hashCode = obj.hashCode();
System.out.println("HashCode: " + hashCode);
}
}
public class Example {
public static void main(String[] args) {
Object obj = new Object();
Class<?> objClass = obj.getClass();
System.out.println("Class: " + objClass.getName());
}
}
문자열을 나타내는 데 사용되며, Java에서는 문자열 조작과 처리에 매우 중요한 역할을 수행한다.
주요 메서드 및 용도
public class Example {
public static void main(String[] args) {
String str = "Hello, World!";
int length = str.length();
System.out.println("Length: " + length);
}
}
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);
}
}
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);
}
}
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);
}
}
public class Example {
public static void main(String[] args) {
String str = "Programming";
String subStr = str.substring(5);
System.out.println("Substring: " + subStr);
}
}
String str = "Hello, World!";
if (str.contains("World")) {
System.out.println("The string contains 'World'");
}
가변(mutable)한 문자열을 나타내며, 문자열의 변경이 필요한 경우에 사용
둘 다 사용하는 방법은 동일.
StringBuilder는 StringBuffer와 유사하지만, 스레드 동기화 처리가 되어 있지 않아 멀티스레드 환경에서 사용할 때 StringBuffer보다 빠름.
StringBuilder는 단일 스레드 환경에서 문자열 조작이 필요한 경우에 사용되며, StringBuffer보다 빠른 성능을 제공
주요 메서드 및 용도
public class Example {
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer("Hello");
stringBuffer.append(" World");
System.out.println(stringBuffer);
}
}
public class Example {
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer("Hello");
stringBuffer.insert(5, " Java");
System.out.println(stringBuffer);
}
}
public class Example {
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer("Hello World");
stringBuffer.delete(5, 11);
System.out.println(stringBuffer);
}
}
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);
}
}
public class Example {
public static void main(String[] args) {
StringBuilder stringBuilder = new StringBuilder("Java");
stringBuilder.reverse();
System.out.println(stringBuilder);
}
}
public class Example {
public static void main(String[] args) {
StringBuilder stringBuilder = new StringBuilder("Hello World");
int length = stringBuilder.length();
System.out.println("Length: " + length);
}
}
날짜 및 시간 정보를 다루는 추상 클래스로, 자바에서 날짜와 시간을 처리하는 데 사용
getInstance() 메서드를 통해 Calendar 클래스의 인스턴스를 얻을 수 있으며, 싱글톤 패턴을 사용하여 현재의 로컬 및 타임존에 대한 Calendar 객체를 반환
주로 날짜 및 시간의 계산, 비교, 형식화 등의 작업에 활용
주요 메서드 및 용도
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);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2023);
calendar.set(Calendar.MONTH, Calendar.DECEMBER);
calendar.set(Calendar.DAY_OF_MONTH, 25);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 7); // 현재 날짜에서 7일 뒤로 이동
Calendar calendar = Calendar.getInstance();
Date currentDate = calendar.getTime();
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.toString());
날짜 및 시간을 다루기 위한 다양한 클래스와 메서드를 포함하고 있으며, 이 패키지는 불변(immutable)하며, 스레드 안전성이 보장되어 있어 복잡한 날짜 및 시간 연산을 보다 안전하게 수행
주요 클래스 및 용도
생성자:
now(): 현재 날짜를 반환
of(int year, int month, int dayOfMonth): 지정된 연, 월, 일로 날짜를 생성
메서드:
getYear(): 연도를 반환
getMonth(): 월을 반환
getDayOfMonth(): 일을 반환
plusDays(long daysToAdd): 지정된 일 수를 더한 새로운 날짜를 반환
minusDays(long daysToSubtract): 지정된 일 수를 뺀 새로운 날짜를 반환
생성자:
now(): 현재 시간을 반환
of(int hour, int minute): 지정된 시간과 분으로 시간을 생성
메서드:
getHour(): 시를 반환
getMinute(): 분을 반환
plusHours(long hoursToAdd): 지정된 시간을 더한 새로운 시간을 반환
minusMinutes(long minutesToSubtract): 지정된 분을 뺀 새로운 시간을 반환
now(): 현재 날짜와 시간을 반환
of(int year, int month, int dayOfMonth, int hour, int minute):
지정된 연, 월, 일, 시간, 분으로 날짜와 시간을 생성
메서드:
getYear(): 연도를 반환
getMonth(): 월을 반환
getDayOfMonth(): 일을 반환
getHour(): 시를 반환
getMinute(): 분을 반환
plusDays(long daysToAdd): 지정된 일 수를 더한 새로운 날짜와 시간을 반환
minusHours(long hoursToSubtract): 지정된 시간을 뺀 새로운 날짜와 시간을 반환
now(): 현재의 에포크 시간을 반환
ofEpochSecond(long epochSecond): 지정된 에포크 초로 Instant 객체를 생성
메서드:
getEpochSecond(): 에포크 초를 반환
plusSeconds(long secondsToAdd): 지정된 초를 더한 새로운 Instant를 반환
minusMillis(long millisToSubtract): 지정된 밀리초를 뺀 새로운 Instant를 반환
생성자:
between(Temporal startInclusive, Temporal endExclusive):
두 시각 사이의 지속 시간을 계산
메서드:
getSeconds(): 초를 반환
toMinutes(): 분으로 변환된 값을 반환
plusHours(long hoursToAdd): 지정된 시간을 더한 새로운 Duration을 반환
minusDays(long daysToSubtract): 지정된 일 수를 뺀 새로운 Duration을 반환
날짜와 시간을 특정한 형식으로 출력하거나 문자열을 날짜로 파싱하는 데 사용되는 추상 클래스
이 클래스는 날짜와 시간을 다양한 지역 및 언어에 맞는 형식으로 표현할 수 있도록 지원
주요 메서드 및 용도
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);
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);
주요 패턴 문자
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);
숫자를 형식화하거나 파싱하는 데 사용되는 클래스로, 특정 패턴에 따라 숫자를 문자열로 변환하거나 문자열을 숫자로 파싱
이 클래스는 소수점 이하 자릿수의 표현이나 통화, 백분율 등과 같은 다양한 형식으로 숫자를 표현
주요 메서드 및 용도
import java.text.DecimalFormat;
double number = 1234567.89;
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
String formattedNumber = decimalFormat.format(number);
import java.text.DecimalFormat;
double number = 1234567.89;
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
String formattedNumber = decimalFormat.format(number);
import java.text.DecimalFormat;
double number = 1234567.89;
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
String formattedNumber = decimalFormat.format(number);
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();
Calendar 클래스의 구현 중 하나로, 그레고리력(Gregorian calendar)을 따르는 날짜와 시간을 나타낸다.
그레고리력은 현재 세계적으로 가장 널리 사용되는 달력으로, 윤년을 포함한 날짜를 정확하게 나타낸다.
주요 메서드 및 용도
import java.util.GregorianCalendar;
GregorianCalendar currentCalendar = new GregorianCalendar();
GregorianCalendar customCalendar = new GregorianCalendar(2023, 11, 31, 23, 59);
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();
import java.util.GregorianCalendar;
int year = 2024;
boolean isLeapYear = GregorianCalendar.isLeapYear(year);
Wrapper 클래스들은 기본 데이터 타입을 객체로 감싸는 역할을 한다.
Java에서는 기본 데이터 타입(primitive types)과 이에 대응하는 Wrapper 클래스를 제공하여, 기본 데이터 타입을 객체로 다룰 수 있게 한다.
Wrapper 클래스들은 주로 컬렉션 프레임워크, 제네릭스, 메서드 오버로딩 등의 상황에서 필요하며, 기본 데이터 타입을 객체로 다룰 수 있는 메서드 및 유틸리티를 제공한다.
주요 메서드:
parseInt(String s): 문자열을 정수로 변환
valueOf(int i): 정수를 Integer 객체로 변환
// 문자열을 정수로 변환
int intValue = Integer.parseInt("123");
// 정수를 Integer 객체로 변환
Integer integerValue = Integer.valueOf(123);
주요 메서드:
parseDouble(String s): 문자열을 실수로 변환
valueOf(double d): 실수를 Double 객체로 변환
// 문자열을 실수로 변환
double doubleValue = Double.parseDouble("3.14");
// 실수를 Double 객체로 변환
Double doubleObject = Double.valueOf(3.14);
주요 메서드:
parseBoolean(String s): 문자열을 논리값으로 변환
valueOf(boolean b): 논리값을 Boolean 객체로 변환
// 문자열을 논리값으로 변환
boolean booleanValue = Boolean.parseBoolean("true");
// 논리값을 Boolean 객체로 변환
Boolean booleanObject = Boolean.valueOf(true);
주요 메서드:
toString(char c): 문자를 문자열로 변환
valueOf(char c): 문자를 Character 객체로 변환
// 문자를 문자열로 변환
String charString = Character.toString('A');
// 문자를 Character 객체로 변환
Character charObject = Character.valueOf('A');
// Auto-boxing: int -> Integer
Integer intValue = 42;
// Auto-unboxing: Integer -> int
int unboxedValue = intValue;
수학적인 연산을 수행하는 데 사용되는 유틸리티 클래스로, Java에서 제공하는 기본 수학 함수 및 상수를 포함하고 있다.
Math 클래스는 모든 메서드가 static이므로 객체 생성 없이 직접 클래스 이름을 통해 사용할 수 있다.
주요 메서드 및 용도
double absoluteValue = Math.abs(-5.5);
double squareRoot = Math.sqrt(25);
double cubeRoot = Math.cbrt(27);
double exponential = Math.exp(2);
double naturalLog = Math.log(10);
double power = Math.pow(2, 3);
double sineValue = Math.sin(Math.PI / 2);
double cosineValue = Math.cos(0);
double tangentValue = Math.tan(Math.PI / 4);
double randomValue = Math.random();
double piValue = Math.PI;
double eValue = Math.E;