자바에서는 주로 많이 쓰이는 기능들에 대해 미리 구현된 클래스의 함수들이 있다.
자주 쓰이는 api들에 대해서 알아보자.


◆ API ( Application Programming Interface )

운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스로서, 라이브러리처럼 다운받아 쓰지 않고, 기본적으로 제공되는 기능


◆ Math 클래스

수학적 연산을 다루는 클래스.

▶ Math클래스 메서드

  • Math.random()
    0.0 <= x < 1.0 사이의 랜덤 double 값 반환 하는 메서드.
    => (int)(Math.random() * N) : 0 <=~< N-1 사이의 정수
    => S + (int)(Math.random() * N) : 0+S <=~< N+S 사이의 정수
  • Math.sqrt(n)
    루트값 계산
  • Math.pow(a,b)
    a의 b제곱을 구해주는 메서드.
  •  Math.max(n1, n2)
    n1,n2 중 큰 값을 반환
  • Math.abs(n)
    n의 절대 값을 계산해줌.


◆ String 클래스

문자열관리 클래스

▶ String클래스 메서드

  • new String (char[] , int , int)
    인자가 3개인 생성자 char배열의 (int)인덱스 ~ (int)개수까지를 String형 객체로 생성
  •  String형데이터.indexOf(String);
    인자인 해당 String문자열을 앞에서부터 맨 처음 찾은 인덱스 위치 int반환
    (인자가 두 개인 경우 두 번째는 int형, => 해당 인덱스부터 찾기 )
  • String형데이터.lastindexOf(String);
    indexOf()를 맨 끝 인덱스부터 찾는 메서드.
  •  String형데이터.contains(String);
    해당문자열이 있는지 boolean리턴
  • String s = Integer.toString(n, o);
    n을 o진수 String형으로 변환하는 메서드. ( n,o은 int형 )
  • String변수.charAt(인덱스번호)
    문자열에서 해당 인덱스에 해당하는 문자를 char형으로 반환
  • String.format();
    c언어의 printf와 같은 형식이 있는 문자열을 반환할 수 있음
    ex ) String.format(“머머 : %d “, i );
  • char[] ar = String데이터.toCharArray();
    문자열을 캐릭터형 문자배열로 반환
  • String변수.intern();
    해당 String객체와 같은 상태의 char[]상태인 객체를 String pool에서 뽑아내는 메서드

    new로 생성한 스트링 객체는 같은 문자열을 가지고 있더라도 다른 객체지만, intern()으로 뽑아낸 문자열이 같을 경우 같은 (주소)값을 가짐
    ( String객체는 특별히 new를 사용하지 않더라도 문자열만으로 객체를 생성할 수 있지만 그렇게 생성된 문자열객체는 String pool이란 특별한 곳에 저장되기 때문에 문자열이 같으면 같은 객체 값을 가진다. 따라서 intern을 이용하여 뽑아낸 문자열과 같다면 같은 객체 값을 가짐.)
    => String값을 비교할 때는 .equals()를 사용하지만 문자열이 긴 경우 intern()을 이용하여 비교하면 빠른 처리가 가능하다!!

  •  String형변수.split(문자열);
    매개변수로 받은 문자열을 기준으로 문자열을 쪼개서 String[]형 배열로 리턴.
    ( 매개변수로 받은 문자열은 포함하지 않은 배열이 리턴 된다. )

split(문자열, n) : n개 이상일 때는 그 미만만 분리하고 나머지는 하나로 묶음
split의 매개인자 문자열은 정규식으로 사용하기 때문에 “.” 으로 분리할 때는 \. 으로 적어준다.

  •  .toUpperCase()
    문자열을 대문자로 변경 리턴
  •  .toLowerCase()
    문자열을 소문자로 변경 리턴
  • .replace(문자열,문자열);
    호출한 문자열의 첫 번째 매개변수 문자열을 두 번째 매개변수 문자열로 변환 리턴
  • .startsWith(문자열)
    해당 문자열로 시작하는 문자열인가를 boolean리턴
  • .endsWith(문자열)
    해당 문자열로 끝나는 문자열인가를 boolean리턴
  • .matches(정규식);
    해당 문자열이 정규식과 일치하는지 검사 boolean리턴
  • .substring(n), or substring(n,m)
    인덱스 n부터 문자열반환.. n~m까지 반환
  • String.copyValueOf(char[] a);
    인자 char배열을 String형으로 반환


◆ StringBuilder 클래스

문자열 변경 등의 작업을 하는 클래스.
=> String클래스와 차이점 : 문자열의 수정이 가능하다.

▶ StringBuilder클래스 메서드

  • .insert(n,문자열(아무데이터))
    인덱스번호 n에 문자열을 삽입
  • .append(문자열)
    문자열 끝에 괄호 안 문자열을 더하기.
    => String클래스에서 += 하는 것과 같은 기능을 하지만 스트링 객체는 계속 생성되기 때문에 append()를 사용하는 것이 메모리관리에 효율적!!
  • delete(int,int)
    인덱스이상 인덱스미만 까지 삭제
  • deleteCharAt(n)
    n번 인덱스삭제
  • replace(int, int, String)
    인덱스~ 인덱스를 다른 문자열로 대체
  • setCharAt(int, char)
    인덱스를 다른 문자로 대체
  • reverse()
    문자열뒤집기
  • StringBuilder객체는 String객체는 아니기 때문에 equals로 스트링과 비교가 불가능하다.
    => .toString으로 String으로 변환 후 비교가능!


◆ Point 클래스

좌표 관리 클래스.

▶ Point클래스 메서드

  • new Point(x,y)
    x,y의 좌표를 가진 객체를 생성.
  • .translate(x,y)
    해당객체의 좌표를 x,y만큼 이동
  • .move(x,y)
    해당객체의 좌표를 x,y로 변경


◆ Rectangle 클래스

사각형 데이터 처리 클래스

▶ Rectangle클래스 메서드

  • new Rectangle(10,40,70,80)
    (x,y) 좌표상의 70x80 사각형 ( 좌표는 밑으로 커짐 )
  • .getMaxX()
    최대 x값=> x + width
  • .contains(15, 45)
    해당 좌표가 만들어진 객체 좌표 안에 포함(교차영역)되어 있는지 검사.
  • intersects(r2)
    객체를 통째로 넘겨주는 메서드로 괄호안의 객체가 호출한 객체 안에 포함되는지 검사


◆ Date 클래스

흐른 시간을 다루는 클래스

▶ Date클래스 메서드

  •  .getTime()
    아무 설정 없이 출력했을때 System.currentTimeMillis()와 같은 70년대~현재까지의 시간을 ms(long타입)로 반환
  • setYear(n), setMonth(n)
    등의 메서드로 현재시간설정 등을 통해서 설정한 시간부터 현재까지의 시간을 구할 수 있다.
  • Date 변수의 객체를 그냥 출력할 경우 현재 날짜가 나옴. ( toString() 호출 )


◆ Integer 클래스

int형 데이터를 객체로 다루는 클래스

▶ Integer클래스 메서드

  •  Integer.parseInt(문자열, n)
    해당 문자열을 n진수로 인식 후 10진수 int형변환 ( n이 없을 시10진수 )
  •  Integer.toString(n)
    int형 n을 String형으로 변환


◆ Number 클래스

Integer, Double, Long … 숫자관리 클래스들의 부모클래스
=> 추상클래스이기 때문에 객체 생성 불가.

  • intValue()
    숫자를 int형으로 변환해주는 메서드
    => DoubleValue(), FloateValue() …. 등등


◆ Arrays 클래스

배열객체를 편하게 다루기 위한 클래스.

▶ Arrays클래스 메서드

  • Arrays.toStriong(배열변수);
    배열의 내용을 출력 ( 0~ length-1 까지)
    => Arrays클래스 내부에서 각각의 데이터 형에 대한 오버로드가 되어있음.
  • Arrays.sort(배열)
    정렬


◆ Scanner 클래스

콘솔입력을 받기위한 클래스

▶ Scanner클래스 메서드

  • Scanner scan = new Scanner(System.in);
    객체 생성
  • scan.nextInt();
    int형 데이터를 입력받기위한 메서드.


◆ Console클래스

콘솔창의 입력 제어

▶ Console클래스 메서드

  • Console console = System.console();
    콘솔객체 생성
  • console.readLine(“account id> “);
    스트링읽기 ( 인자의 문자열은 메시지 )
  • console.readPassword(“account pass> “);
    안 보이는 스트링(또는 char[])읽기
  • ctrl + c
    콘솔 빠져나가기!


◆ 기타 API

  • JOptionPane.showMessageDialog(null, 문자열);
    다이얼로그 창으로 표시. (팝업)
  • int a = JOptionPane.showConfirmDialog(null, “Do you want to Exit?”);
    다이얼로그 창 (예(0), 아니오(1), 취소(2)) int형 반환
  • System.identityHashCode(n)
    n의 JVM상의 위치를 int형으로 반환해주는 메서드
    (n은 상수,변수,객체 등등이 올 수 있다.)
  • System.exit(0)
    강종
  •  System.currentTimeMillis()
    1970.01.01 00:00:00 부터 지금까지 흘러간 시간을 long형으로 반환
  • Thread.sleep(1000);
    강제지연 (단위 ms)


  • 클래스 소스 보기
    클래스 Ctrl + 좌 클릭 -> 경로설정을 jdk-> src.zip을 잡아주면댐
  • 클래스 정보보기
    java.oracle.com > java download > java APIS > java 8
  • 상속정보
    클래스 좌 클릭 -> f4
  •  java.lang소속의 클래스들은 import를 하지 않아도 사용 가능하다.