[JAVA] ch.15 API 클래스
자바 API (Application Programming Interface)
- 자바에서 자주 사용되는 클래스 및 인터페이스의 모음
- 라이브러리 라고 한다.
💡java.base패키지💡
- requires 하지 않고 사용가능하다.
- java.lang, java.util, java.io 등
💡java.lang 패키지💡
- 자바 프로그램의 기본적인 클래스를 담고 있는 패키지
- import없이 클래스와 인터페이스를 사용할 수 있다.
- 종류 : Object, System, String, StringBuffer/StringBuilder, Math
- Object : 자바의 최상위 클래스로 사용, 모든 클래스가 상속 받는다.
- System : 시스템의 표준 입력/출력 장치로부터 데이터의 입출력하기 위해 사용한다.
- String : 문자열을 저장하고 여러가지 정보를 얻을 때 사용한다.
- StringBuffer/StringBuilder : 문자열을 저장하고 내부 문자열을 조작할 때 사용한다.
- Math : 수학 관련 라이브러리(반올림, 랜덤 등)
Object 클래스
- 자바의 최상위 클래스
- 대표 메서드 : protected Object clone(), boolean equlas(), int hashCode(), String toString()
equlas()
- 객체의 데이터를 비교할 때 사용하는 메서드
- '==' 비교 연산자를 객체에서 사용할 시 메모리 위치를 비교하기 때문에 객체 비교 연산에 적합하지 않다.
- equlaslgnoreCase() : 대소문자 구분없이 비교
hashCode()
- 객체를 식별할 수 있는 정수값을 hashCode(JVM이 기억하는 위치값)라고 한다.
- hashCode를 반환하는 메서드
toString()
- 객체의 문자 정보를 반환해주는 메서드
- print문을 사용할 경우 해당 메서드가 자동으로 실행된다.
String 클래스
- 문자열을 처리하는 객체형 데이터 타입
- String인스턴스는 한 번 생성되면 변경이 불가능하다.
- 대표 메서드 : length(), charAt(), indexOf(), replace(), substring()
charAt()
- 문자열에서 원하는 위치의 문자를 추출하는 메서드
- index를 사용하기 위함
- str.charAt(1)
indexOf()
- 문자열서 특정 단어 또는 문장의 시작 위치를 알려주는 메서드
- 찾는 문자가 없으면 -1반환
- lastIndexOf() : 문자열에서 찾는 단어의 마지막 위치를 반환하는 메서드
replace()/ replaceAll()
- 특정 문자 및 문자열을 원하는 단어로 변경해 주는 메서드
- replacAll(변경 대상, 변경할 단어);
String str = "Hello";
String str2 = str.replace("H",""); //H만 변경
String str3 = str.replaceAll("[Hl]",""); //H와 l을 변경
substring()
- 원하는 위치에서 문자열을 잘라서 사용할 수 있는 메서드
- substring(자를 시작 인덱스번호) : 시작 번호 부터 끝까지 추출
- substring(자를 시작 인덱스 번호, 끝 인덱스 번호) : 시작 부터 지정한 끝 번호까지 추출
split()
- 구분자를 기준으로 문자열을 나눠 배열로 반환하는 메서드
- str.split(구분자)
- 구분자를 비워둘 수 없다.
String str = "Hello World";
String[] arr = str.split(" ");
//출력방법
for(String x : arr){
Ststem.out.println(x);
}
StirngBuffer/ StringBuilder
- 문자열 최초 지정후에 값이 추가되면 새로운 메모리를 할당한다. => 문자열 많이 사용할 수록 메모리 늘어남
- 내부에 여유공간을 둬 문자열을 합칠 때 메모리 생성과정을 생략할 수도 있다.
- StringBuffer : thead safty 기능이 있음, 비동기 상황에서 순서를 유지, 속도 느림
- StringBuilder : thead safty 기능이 없음, 순서 없음 , 속도 빠름
- 대표 메서드 : append(), delete(), insert(), reverse()
StringBuilder str = new StirngBuilder("Hello");
str.append("World"); //기존 문자열 뒤에 삽입
str.delete(0, 5); // 0번째 인덱스부터 5-1번째 인덱스까지 삭제
str.insert(0, "Hello"); //0번째 인덱스부터 Hello삽입
str.reverse() // 문자열 반대로 출력
Math클래스
- 수학 계산이 필요할 때 사용하는 메서드
- 모두 정적 메서드로 이루어져 객체 선언을 하지 않고 바로 사용할 수 있다.
- abs() : 절대값계산
- ceil() : 올림 계산
- floor() : 버림 계산
- round() : 반올림 계산
- max() : 최대값 / min() : 최소값
- random() : 랜덤값 반환
Wrapper클래스
- 기본 자료형을 객체로 다루기 위한 클래스
- byte, short, int, long, float, double, char, boolean
- 오토박싱 : 기본타입의 데이터를 wrapper클래스의 인스턴스로 변환하는 과정(자바 컴파일러가 자동으로 처리해줌)
- 오토언박싱 : wrapper클래스의 인스턴스에 저장된 값을 기본 타입의 데이터로 꺼내는 과정
- int와 char만 이름이 다르고 나머지는 자신의 이름에서 앞글자만 대문자로 바꾼다.
Integer num1 = 10;
Double num2 = 1.2;
Character ch = 'A';
문자 타입 데이터를 숫자 타입 데이터로 변환하기
- parse + 기본 타입 이름
Byte.parseByte("10");
Short.parseShort("10");
Integer.parseInt("70");
Long.parseLont("100");
Float.parseFloat("10.33");
Double.parseDouble("30.23");
Boolean.parseBoolean("true");
💡java.util 💡
- Date, Calendar 클래스
Calendar 클래스
- 추상 클래스
- new 키워드를 이용해 선언하지 않고 생성된 인스턴스를 받아오는 형식(getInstence);
Calendar cal = new Calendar; // 오류
Calendar cal = Calendar.getInstance();
- 속성은 구글에 많으니 넘어감
StringTokenizer 클래스
- 문자열을 특정 구분자로 분리해 토큰 단위로 반환한다.
- 사용 방법 : StringTokenizer 객체명 = new StringTokenizer(문자열, 구분자);
- 구분자를 입력하지 않으면 띄어쓰기 기준으로 분리한다.
String txt = "서울/부산/대구/인천/광주/대전/울산";
StringTokenizer tokens = new StringTokenizer(txt,"/");
System.out.println(tokens);
System.out.println("nextTokens() 호출 전 : " + tokens.countTokens());
while (tokens.hasMoreElements()) {
System.out.print(tokens.nextToken() + " ");
}
System.out.println("nextTokens() 호출 후 : " + tokens.countTokens());
- hasMoreElments() : 남아있는 토큰이 있으면 true, 더 이상 토큰이 없으면 false 반환
- nextToken() : 객체에서 다음 토큰을 반환
- countTokens() : 토큰의 개수 반환, 모든 토큰을 호출했으면 0 출력