기본 API클래스(1)

박승현·2022년 4월 9일
0

JAVA

목록 보기
15/16

API란?

자바 API(Application Programming Interface)는 자바에서 개발자들을 위해 기본적으로 제공하는 클래스이다.

예를 들어 출력을 위해 사용했던 System.out.println() 메서드도 java.lang 패키지가 기본적을 제공되기 때문에 사용할 수 있었던 일종의 API이다. 자바에서 제공하는 API를 확인하고 싶다면 http://docs.oracle.com/javase/8/docs/api/index.html 사이트에 접속해서 API문서를 확인한다.

문자열 클래스

문자열 클래스는 문자열에 대한 처리를 위한 다양한 메서드가 정의되어 있는 클래스이다.

Java에서는 String클래스를 통해 문자열에 대한 처리를 제공한다. 다양한 메서드들이 제공되기 때문에 Java는 문자열을 다루기에 상당히 편리한 언어이다.

String a = new String("Java");

String인스턴스를 생성할 때는 다른 객체의 생성과 마찬가지로 new 키워드로 메모리의 빈 공간을 확보하고 인스턴스를 생성해야한다. 하지만 보통의 클래스와는 다르게 문자열은 프로그래밍을 할 때 자주 사용되므로 작업을 더 쉽게 하기 위해 기본 자료형을 선언하는 것처럼 사용하는 것도 허용한다.

String a = "Java";
//기본 자료형처럼 사용
메서드의미
concat(문자열)문자열을 연결한다.
substring(인덱스,잘라낼 길이)문자열을 잘라낸다.
length()문자열의 길이를 반환한다.
toUpperCase()문자열을 대문자로 변경한다.
toLowerCase()문자열을 소문자로 변경한다.
charAt(인덱스)인덱스에 해당하는 글자를 반환한다.
indexOf(문자열)문자열의 위치를 반환한다.
equals(문자열)문자열이 같은지 boolean값으로 반환한다.
trim()문자열 앞,뒤에 있는 공백을 제거한다.
replace(바꾸고 싶은 문자열, 바꿀 문자열)문자열 내의 특정 부분을 다른 문자열로 변경한다.
replaceAll(변환할 문자열,변환될 문자열)문자열 내의 특정 부분을 다른 문자열로 변경한다.

시간 처리 Calender

Java에서는 시간에 대해 처리를 할 수 있도록 몇 가지 클래스를 제공한다. Java에서 시간을 다루는 자료형의 값은 long이며 java.util.Calendar클래스와 java.util.Date클래스가 있다.

System.currentTimeMills()

system 클래스의 currentTimeMills()메서드는 현재 운영체제의 시각을 long 타입으로 반환한다. 반환하는 시각은 1970년 1월 1일을 기준으로 했을 때 현재까지의 시간이며 1/1000초 단위까지 환산해서 보여준다.

public class Date1 {

	public static void main(String[] args) {
		
		long start = System.currentTimeMillis();
		System.out.println("시작시간 : " + start);
		int a = 0;
		for(int i = 1; i < 100000000; i++) {
			a++;
		}
		long end = System.currentTimeMillis();
		System.out.println("종료시간 : " + end);
		System.out.println("걸린 작업 시간 : " + (end-start));
	}
}
/*
실행 결과
시작시간 : 1649494054083
종료시간 : 1649494054086
걸린 작업 시간 : 3
*/

java.util.Calendar

Java에서는 날짜를 다루기 위한 Calendar클래스를 제공한다. 다만 Calendar는 추상 클래스이기 때문에 직접 인스턴스를 생성하지는 못하고 getInstance() 메서드를 통해서 GregorianCalendar 인스턴스를 생성해야 한다. 이방법을 싱글턴 패턴(Singleton Pattern)이라고 한다. 싱글턴 패턴은 객체를 사용할 때 각각 인스턴스를 생성해서 사용 하는 것이 아니라 하나의 인스턴스만을 가지고 사용하는 방법이다. Calendar 클래스는 싱글턴으로 만들어진 대표적인 클래스이다. 싱글턴 패턴을 사용하지 않는 방법으로는 직접 GregorianCalendar인스턴스를 생성하는 방법이 있다.

public class Date1 {

	public static void main(String[] args) {
		
		Calendar a = Calendar.getInstance();
		Calendar b = new GregorianCalendar();
		System.out.println(a.toString());
		System.out.println(b.toString());
	}

}

get() 메서드

Calendar 클래스에서 데이터를 얻어오려면 get() 메서드를 사용한다. get() 메서드의 반환타입은 int이며 한 가지 주의할 것은 월(MONTH) 반환 시 실제 월보다 1이 작은 값이 반환된다.(1월 => 0월, 12월 => 11월) 또한 반환타입이 int이므로 요일을 반환할 때도 정수의 형태로 반환하는데 일요일이 시작인 1이고 월요일이 2 그리고 토요일이 7이다.

public class Date1 {

	public static void main(String[] args) {
		Calendar a = Calendar.getInstance();
		
		int year = a.get(Calendar.YEAR);
		int month = a.get(Calendar.MONTH);
		int date = a.get(Calendar.DATE);
		
		System.out.println(year + "년" + month + "월" + date + "일");
		System.out.println(a.get(Calendar.DAY_OF_WEEK));
		System.out.print("이번 년도에서 오늘이 몇 일째인가? : ");
		System.out.println(a.get(Calendar.DAY_OF_YEAR));
		System.out.print("이번 달은 며칠까지 있는가? : ");
		System.out.println(a.getActualMaximum(Calendar.DATE));
	}
}
/*
2022년3월9일
7
이번 년도에서 오늘이 몇 일째인가? : 99
이번 달은 며칠까지 있는가? : 30
*/

set() 메서드

set() 메서드는 Calendar 인스턴스의 값을 변경할 때 사용한다. 두 개의 파라미터를 필요로 하며 첫 번째 파라미터는 바꿔야 할 항목, 두 번째 파라미터는 바꿀 값을 대입한다.

set(바꿔야할 항목, 바꿀 값);
set(,,);

java.util.Random

Random 클래스는 무작위의 값을 얻고 싶을 때 사용한다.

Random 클래스는 무작위의 값을 추출하기 위한 내부의 알고리즘을 가지고 있다. 이 알고리즘에는 종자 값이라는 수가 이용되는데 이 종자 값에 따라 값을 반환하게 된다. 만약 기본 생성자로 Random 인스턴스를 생성하면 현재의 시간 currentTimeMillis()를 종자 값으로 하여 무작위의 값을 추출한다.

  • Random() : 현재 시간을 종자 값으로 인스턴스 생성
  • Random(long seed) : seed를 종자 값으로 하는 인스턴스 생성

Random 인스턴스의 값을 받아오는 메서드는 다음과 같다.

  • int nextInt() : 무작위의 int 값 반환
  • int nextInt(int n) : 0보다 크고 n보다 작은 int 값을 반환
  • boolean nextBoolean() : 무작위의 boolean 값 반환
  • long nextLong() : 무작위의 long 값 반환
  • double nextDouble() : 무작위의 double 값 반환
  • float nextFloat() : 무작위의 float 값 반환
import java.util.Random;

public class Date1 {

	public static void main(String[] args) {
		Random random = new Random();
		Random random2 = new Random();
		Random random3 = new Random();
		for(int i = 0; i < 5; i++) {
			System.out.println("기본 생성자 : "+ random.nextInt());
		}
		
		for(int i = 0; i < 5; i++) {
			System.out.println("random2 : " + i + "번째 값" + random2.nextInt());
		}
		System.out.println("");
		
		for(int i = 0; i < 5; i++) {
			System.out.println("random3 : " + i + "번째 값" + random3.nextInt());
		}
	}
}
/*
기본 생성자 : -1442629362
기본 생성자 : 833486601
기본 생성자 : 762877079
기본 생성자 : -925352965
기본 생성자 : -964256892
random2 : 0번째 값580608899
random2 : 1번째 값444657732
random2 : 2번째 값199694394
random2 : 3번째 값2010712326
random2 : 4번째 값-2074125173

random3 : 0번째 값-956079021
random3 : 1번째 값1167424861
random3 : 2번째 값1710274122
random3 : 3번째 값-265286028
random3 : 4번째 값634602538

*/
profile
그냥 해보자 안되더라도 해보자 끝까지 해보자

0개의 댓글

관련 채용 정보