2 minute read

기본 API

Application Programming Interface
프로그램 개발 시 자주 사용되는 클래스, 인터페이스의 모음


String 클래스

  • 값 수정 불가(immutabnle 불변)
  • 수정 시, 수정된 문자열이 새로 할당되어 새 주소를 넘김
String str1 = "hello";
String str2 = "hello";

System.out.println("str1 == str2 ? : " + (str1 == str2));
// 출력 : true
  • 리터럴
    • StringPool 영역에 저장 - 중복 값 저장 불가
    • 기존에 동일한 값이 있으면 이미 존재하는 값의 주소를 전달
String str1 = "hello";
String str3 = new String("hello");

System.out.println("str1 == str3 ? : " + (str1 == str3));
// 출력 : false

같은 hello 문자 열을 저장했지만, 객체로 생성했을 때 다른 결과 출력


StringBuffer 클래스

  • 값 수정 가능(mutable 가변)
  • 수정, 삭제 등이 기존 문자열에 수정되어 적용
  • 기본 16문자 크기로 지정된 버퍼를 이용하며 크기 증가 가능
  • 쓰레드 safe기능 제공(성능 저하 요인)

StringBuilder 클래스

  • StringBuffer 클래스와 동일한 기능

StringTokenizer 클래스

  • split() 메서드와 동일한 기능
  • 생성 시 전달 받은 문자열을 구분자로 나누어 각 토큰에 저장

Wapper 클래스

  • 기본 자료형의 데이터를 객체화
  • 기본 자료형 > 객체 : AutoBoxing
  • 객체 > 기본 자료형 : Unboxing

boxing 1) 객체 생성 (Deprecated : 비권장)

int iNum = 10;
double dNum = 3.14;

Integer integer = new Integer(iNum);
Double double1 = new Double(dNum);
Double double2 = new Double(dNum);

System.out.println(integer);
System.out.println(double1);
System.out.println(double2);

System.out.println(double1 == double2);
System.out.println(double1.equals(double2));
System.out.println(double1.compareTo(double2)); // 두 값을 비교해서 앞쪽이 크면 1, 뒤가 크면 -1, 같으면 0

2) 정적 메서드

Integer integer2 = Integer.valueOf(3);
Double double3 = Double.valueOf("1.11"); // 문자열을 숫자화
System.out.println(integer2);
System.out.println(double3);

3) auto boxing
JDK 1.5 버전부터 지원. 타입이 동일할 때 바로 대입 가능

Integer integer3 = 5;
Double double4 = 3.555;
System.out.println();

unboxing 1) unboxing : wrapper > 기본자료형

int iNum2 = integer2.intValue();
int iNum3 = integer3.intValue();
System.out.println(iNum2 + iNum3);
System.out.println(iNum3);

2) auto unboxing

int iNum4 = integer3;
System.out.println(integer2 + integer3); // 객체끼리 더하기 연산자 사용 안 되지만 auto unboxing 때문에 가능
System.out.printf("%s, %d", "hi", 4);

문자열 <-> 기본 자료형

parse()

int iNum = Integer.parseInt(str1);
double dNum = Double.parseDouble(str2);
System.out.println(iNum + dNum); // 13.14 : 문자열이 아닌 각 자료형으로 변경 됐기 때문
System.out.println();

valueOf()

String str3 = String.valueOf(iNum);
String str4 = String.valueOf(dNum);
System.out.println(str3);
System.out.println(str4);

Date 클래스

시스템으로부터 현재 날짜, 시간 정보를 가져와 다룰 수 있는 클래스

Date today = new Date();
System.out.println(today); // Mon Sep 20 21:38:00 KST 2021

System.out.println(now.getTime()); // 1630993539530 밀리세컨으로 계산된 long 타입 리턴
System.out.println(now.getYear() + 1900); // 년도: 1900을 더해야 현재 년도 출력
System.out.println(now.getMonth() + 1); // 월: 1을 더해야 현재 월 출력
System.out.println(now.getDate()); // 일
System.out.println(now.getDay()); // 요일: 요일 0-일요일 1-월요일 ... 
System.out.println(now.getHours()); // 시간
System.out.println(now.getMinutes()); // 분
System.out.println(now.getSeconds()); // 초

시간 출력 기준 : 1970년 1월 1일 00시


SimpleDateFormat 클래스

  • Date의 날짜, 시간 정보를 원하는 format으로 출력하는 기능 제공
  • java.text 패키지에 속해있음
Date today = new Date();

SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");

String ftToday = ft.format(today);
//today에 포맷을 적용한 결과를 문자열로 리턴

Formatter 클래스

  • 값 출력 시 format 적용하여 출력
  • Formatter 객체 생성 시 변환된 결과를 보낼 곳의 정보를 생성자 인자로 전달
Formatter f = new Formatter(System.out);
f.format("%s, %d, %d \n", "String", 10, 20);
// System.out.printf("%s, %d, %d \n", "String", 10, 20);

Categories:

Updated: