자바 2/6 요약 (2)

KIHYUK MOON·2023년 2월 5일
0
post-thumbnail
post-custom-banner

자바 API

API는 라이브러리 라고도 불린다. JDK에서 제공하는 많은 API를 활용하면 프로그램을 더욱 효율적으로 구현할 수 있다.

java.lang

자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합
import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있다.

java.util

컬렉션 클래스들이 대부분이다.

Object 클래스

  • 모든 자바 클래스의 최고 조상 클래스이다.
  • 모든 클래스는 Object 클래스를 상속 받는다.
  • 모든 클래스는 Object 클래스의 모든 메소드를 바로 사용할 수 있다.
  • 필드를 가지지 않는다

StringBuffer, StringBuilder

StringBuffer

문자열을 추가하거나 변경할 때 사용되는 자료형

  • append 를 활용하여 계속해서 문자열을 추가해 나갈 수 있다.
  • 문자열 추가나 변경 등의 작업이 많을 경우에 StringBuffer를 사용한다.
  • StringBuffer sb = new StringBuffer(); 로 생성한다

StringBuilder

  • StringBuffer와 사용법이 동일하다
  • StringBuffer는 멀티스레드 환경에서 안전하다는 장점이 있고 StringBuilder는 성능이 우수하다는 장점이 있다.

append()

  • 문자열 추가에 사용

delete()

  • 전달된 인덱스에 해당하는 문자열 제거

insert()

  • 특정 위치에 원하는 문자열 삽입

substring

StringBuffer sb = new StringBuffer();
sb.append("Hello jump to java");
System.out.println(sb.substring(0, 4)); 

Math 클래스

수학에서 자주 사용하는 상수들과 함수들을 미리 구현해 놓은 클래스
Math 클래스의 모든 메소드는 클래스 메소드 (static method)이므로, 객체를 생성하지 않고도 바로 사용할 수 있다. (java.lang 패키지에 포함)

Random()

0.0이상 1.0미만의 범위에서 임의의 double형 값을 하나 생성하여 반환

abs()

전달한 값을 모두 양수로 바꾼다.

floor(), ceil(), round()

  • floor() = 소수점 이하를 무조건 날림
  • ceil() = 소수점 이하를 무조건 올림
  • round() = 반올림

max(), min()

전달된 두 값을 비교할 때 큰값을 반환하는 max()와 작은값을 반환하는 min()이 있다.

Date, Calendar 클래스

Date 클래스

  • Date : 1970년1월1일0시0초로부터 msec 단위로 경과 시간을 운영체제로부터 얻어낸다.
  • SimpleDateFormat : 날짜를 원하는 포맷으로 파싱

Calender 클래스

  • Calendar의 정적메소드인 getInstance() 메소드를 이용하면 현재 운영체제에 설정되어 있는시간을 기준으로 Calendar 하위 개체를 얻을 수 있습니다.
  • Calendar 클래스는 추상 클래스이므로 new 연산자를 사용해 인스턴스를 생성 할 수 없습니다. 그 이유는 날짜와 시간을 사용하는 방법이 각 나라마다 다르기 때문 입니다.

Calendar now = Calendar.getInstance
System.out.println(now.get(Calendar.YEAR));

Wrapper 클래스

프로그램에 따라 기본타입의 데이터를 객체로 취급해야 하는 경우가 있다(제네렉, 컬렉션 프레임워크). 이때 기본타입의 데이터를 먼저 객체로 변환한 후 작업을 수행한다.

Arrays 클래스

binarySearch()

전달받은 배열에서 특정 객체의 위치를 이진검색 알고리즘을 사용하여 검색한 후 해당 위치를 반환한다.

  • 이 메소드는 이진 검색 알고리즘을 사용하므로, 매개변수로 전달되는 배열이 sort() 메소드 등을 사용하여 미리 정렬되어 있어야만 제대로 동작한다

System.out.println(Arrays.binarySearch(arr, 5));

sort()

전달받은 배열의 모든 요소를 오름차순으로 정렬한다.

오름차순 정렬

int[] arr = {5, 3, 4, 1, 2};
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}

내림차순 정렬

Arrays.sort(arr, Collections.reverseOrder());

System 클래스

exit()

프로그램 강제 종료

  • System.exit()
  • System.gc() // 쓰레기 수집기 실행

현재시간 읽기

  long time = System.currentTimeMillis();
    long timeNano = System.nanoTime();
  • currentTimeMilis() : 1970년1월1일 기준으로 현재 시간까지의 차이를 반환 (1/1000초 단위)
  • nanoTime() : 10억분의 1초를 의미함

시스템 프로퍼티 읽기

System.out.println(System.getProperty("os.name"));
System.out.println(System.getProperty("user.name"));
System.out.println(System.getProperty("os.home"));

StringTokenizer

문자열이 특정 구분자로 연결되어 있는 경우 사용한다

countTokens()

  • 꺼내지 않고 남아 있는 토큰의 수

hasMoreTokens()

  • 남아 있는 토큰이 있는지 여부

nextToken()

  • 토큰을 하나씩 꺼내 옴
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("이름을 /기준으로 연속 입력 하세요 : ");
    String names = sc.nextLine();
    StringTokenizer st = new StringTokenizer(names, "/");
    String[] nameStr = new String[st.countTokens()];
    int idx = 0;
    while(st.hasMoreTokens()) {
        nameStr[idx++] = st.nextToken();
    }
    for(int i = 0; i < nameStr.length; i++) {
        System.out.print(nameStr[i] + " ");
    }
    System.out.println();
}
profile
개발자 전직중..
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 2월 5일

시험 파이팅!!!❤️

답글 달기