(18) - API

3387 단어 JavaJava

Java API

JAVA는 다른 언어에 비해서 접하기 쉽고, 배우기 쉽다고 한다다. 그 이유는 개발자 들이 편리하게 이용할 수 있는 풍부한 클래스들이 많다. 이러한 클래스들을 이용해서 개발자들은 깊은 지식이 없이, 그냥 사용만 하면 되고, 이러한 기능들을 정의해둔 클래스들을 API(Application Programming Interface)라고 한다. 그냥 쉽게 말하자면, API란, 누군가가 만들어 놓은 기능들이라고 생각하면 된다.

String API

//원래는 아래와 같이 사용했다. 하지만 String은 엄연히 API이다. 
//java에서 String을 쓰기 편하게 하기 위해 이렇게 변수선언과 같은 형태로 이루어진 것이다.

String string = “HelloWorld~~”;
//원래형태
String string = new String(“HelloWorld~~”);

String 단점

Stirng클래스는 많이 쓰이고, 좋은 기능(메소드)를 많이 가지고 있다. 이렇게 좋은 클래스가 치명적인 단점이 있다. 바로 메모리를 과소비 하는 것이다. String객체의 경우 처음 초기화된 데이터에 변화가 생기면 기존 것을 재활용 하기보다는 새것을 찾는다. 무슨 얘기인지 아래 그림을 보시면 이해가 쉽다.

원래는 위처럼 문자열을 이어 붙이는 형식이 떠오를 것 이다. 하지만 String은 그런 형식이 아닌 새로운 것을 만든다. 그러힉 때문에 메모리 과소비가 심한 현상이 나타난다.

그래서 나온 것들이 바로 StringBuffer와 StringBuilder이다.

StringBuffer 주요기능

Append : 문자열 추가
insert : 특정 위치에 문자열 추가
delete : 문자열 삭제
deleteCharAt : 특정 문자 하나 삭제

선언

StringBuffer strbf = new StringBuffer("abcde");

//문자열 추가
strbf.append("hij");
// 특적 위치에 문자열 추가
strbf.insert(3, "AAA");
//문자열 삭제
strbf.delete(3, 5);
//특정 문자열 삭제
strbf.deleteCharAt(3);

출력

abcdehij
abcAAAdehij
abcAdehij
abcdehij

StringBuffer와 StringBuilder는 동일하다고 생각 하면 된다. 단, StringBuffer가 StringBuilder보다 먼저 세상에 등장 한 클래스이다. 기능은 같고, 단지 StringBuilder가 속도 면에서 좀더 빠르다.

날짜 API

날짜와 시간을 표현할 때 많이 쓰이는 Calendar클래스 이다. 예제를 보자.

package com.javalec.calendarex;

import java.util.Calendar;

public class MainClass {
	public static void main(String[] args) {
		
		Calendar calendar = Calendar.getInstance();
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH) + 1;
		int day = calendar.get(Calendar.DAY_OF_MONTH);
		int hour = calendar.get(Calendar.HOUR_OF_DAY);
		int minute = calendar.get(Calendar.MINUTE);
		int second = calendar.get(Calendar.SECOND);
		
		System.out.println(year + "년 " + month + "월 " + day + "일");
		System.out.println(hour + "시 " + minute + "분 " + second + "초");
		
	}
}

출력

2021년 9월 2일
19시 21분 31초

System.currentTimeMillis()

System.currentTimeMillis()는 현재의 시간을 1/1,000초 단위로 표시합니다. 거의 속도 테스트 용도로 쓰인다.

package com.javalec.dateex;

public class MainClass {
	public static void main(String[] args) {
		
		System.out.println(System.currentTimeMillis());
		
		String str = "A";
		long startNum = System.currentTimeMillis();
		
		for (int i = 0; i < 50000; i++) {
			str = str + "A";
		}
		
		long endNum = System.currentTimeMillis();
		System.out.println("경과 시간" + (endNum - startNum));
		
		
		StringBuilder stringBuilder = new StringBuilder("A");
		long startNum1 = System.currentTimeMillis();
		
		for (int i = 0; i < 50000; i++) {
			stringBuilder = stringBuilder.append("A");
		}
		
		long endNum1 = System.currentTimeMillis();
		System.out.println("경과 시간" + (endNum1 - startNum1));
	}
}

출력

1630578188396
경과 시간419
경과 시간2

오늘은 여기까지..

간단하게 API 몇가지를 알아보았다. 가장 많이 사용되니까 잘 숙지 해야겠다.

좋은 웹페이지 즐겨찾기