자바 API 도큐먼트
- API : 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음
- API 도큐먼트 : 우리가 원하는 API를 쉽게 찾아 이용할 수 있도록 도와줌
- API 도큐먼트에서 클래스 페이지 읽는 방법
Object 클래스
- 자바의 최상위 부모 클래스
- 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스이다.
- Object 클래스의 메소드는 모든 자바 객체에서 사용할 수 있다.
- 객체 비교( equals() )
public boolean equals(Object obj) { ••• }
- equals() 메소드의 매개타입은 Object인데, 이것은 모든 객체가 매개값으로 대입될 수 있음을 말함
- 모든 객체는 Object 타입으로 자동 타입 변환될 수 있기 때문
- 비교 연산자인 ==과 동일한 결과를 리턴
- 동일한 객체라면 true를 리턴하고 그렇지 않으면 false를 리턴
- 논리적으로 동등하다는 것은 같은 객체이건 다른 객체이건 상관없이 객체가 저장하고 있는 데이터가 동일
함을 뜻함.
- 객체 해시코드( hashCode() )
- 객체를 식별하는 하나의 정수값
- 객체의 메모리 번지를 이용해서 해시코드를 만들어 리턴하기 때문에 객체마다 다른 값을 가지고 있음
- 객체 문자 정보( toString() )
- Object 클래스의 toStringO 메소드는 객체의 문자 정보를 리턴
- 객체의 문자 정보 : 객체를 문자열로 표현한 값
- 기본적으로 Object 클래스의 toString() 메소드는 '클래스이름@16진수해시코드'로 구성된 문자 정보를 리턴
System 클래스
- System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있음
- 프로그램 종료, 키보드로부터 입력, 모니터로 출력, 현재 시간 읽기 등이 가능
- System 클래스의 모든 필드와 메소드는 정적 필드와 정적 메소드로 구성되어 있음.
- 프로그램 종료 ( exit() )
- JVM을 강제적으로 종료시킬 때 호출
- 종료 상태값: int 매개값을 지정하도록 되어 있음
- 일반적으로 정상 종료일 경우 0값을 준다
- 현재 시각 읽기(currentTimeMillis(), nanoTime())
- 컴퓨터의 시계로부터 현재 시간을 읽어서 밀리세컨드 단위와 나노세컨드 단위의 long값을 리턴
- 리턴값은 주로 프로그램의 실행 소요 시간 측정에 사용
Class 클래스
- 자바는 클래스와 인터페이스의 메타 데이터를 Class 클래스로 관리
- 메타 데이터 : 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보를 말한다
Class 객체 얻기((getClass(), forName())
- 클래스로부터 얻는 방법
Class clazz = 클래스이름.class
Class clazz = Class.forName("패키지…클래스이름")
- 객체로부터 얻는 방법
Class clazz = 참조변수.getClass( );
- 클래스로부터 객체가 이미 생성되어 있을 경우 사용하는 방법
// 1
Class clazz = String.class;
// 2
Class clazz = Class.forName("java.lang.String");
String str = "감자바";
// 3
Class clazz = str.getClass();
클래스 경로를 활용해서 리소스 절대 경로 얻기
- Class 객체는 해당 클래스의 파일 경로 정보를 가지고 있기 때문에 이 경로를 활용해서 다른 리소스
파일(이미지, XML, Property 파일)의 경로를 얻을 수 있음.
String 클래스
- 문자열 리터럴은 String 객체로 자동 생성되지만, String 클래스의 다양한 생성자를 이용해서 직접 String 객체를 생성가능
- String 객체는 문자열 조작을 위한 많은 메소드를 가지고 있다.
- String 메소드
문자 추출( charAt() )
- 매개값으로 주어진 인덱스의 문자를 리턴
문자열 비교( equals() )
- 문자열 비교할 때 사용
strVarl.equals(strVar2)
바이트 배열로 변환( getBytes() )
- 문자열을 암호화할 때 문자열을 바이트 배열로 변환하는 경우
byte[] bytes = "문자열".getBytes();
byte[] bytes = "문자열".getBytes(Charset charset);
문자열 찾기( indexOf() )
- 매개값으로 주어진 문자열이 시작되는 인덱스를 리턴한다
- 주어진 문자열이 포함되어 있지 않으면 -1을 리턴
문자열 길이( length() )
- 문자열의 길이(문자의 수)를 리턴
문자열 대치( replace() )
- 첫 번째 매개값인 문자열을 찾아 두번째 매개값인 문자열로 대치한 새로운 문자열을 생성하고 리턴한다
문자열 잘라내기( substring() )
- 주어진 인덱스에서 문자열을 추출
- substring(int beginlndex, int endindex) : 주어진 시작과 끝 인덱스 사이의 문자열을 추출
- substring(int beginlndex) : 주어진 인덱스부터 끝까지 문자열을 추출
알파벳 소 ,대문자 변경(toLowerCase(), toUpperCase())
- toLowerCase() : 문자열을 모두 소문자로 바꾼 새로운 문자열을 생성한 후 리턴
- toUpperCase() : 문자열을 모두 대문자로 바꾼 새로운 문자열을 생성한 후 리턴
문자열 앞 뒤 공백 잘라내기( trim() )
- 문자열의 앞 뒤 공백을 제거한 새로운 문자열을 생성하고 리턴
문자열 변환( valueOf() )
- 기본 타입의 값을 문자열로 변환하는 기능
Wrapper(포장) 클래스
- 기본 타입의 값을 갖는 객체를 포장 객체라고 한다
- 포장 객체는 외부에서 변경할 수 없음
- 기본 타입의 값을 포장 객체로 만드는 것을 박싱이라고 하고, 반대로 포장 객체로부터 기본 타입의 값을 얻는 것을 언박싱이라고 한다.
- 자동 박싱 : 포장 클래스 타입에 기본값이 대입될 경우 발생
- 자동 언박싱 : 기본 타입에 포장 객체가 대입되는 경우와 연산에서 발생
- 문자열을 기본 타입 값으로 변환할 때에도 많이 사용
- 직접 내부 값을 언박싱해서 비교하거나, equals() 메소드로 내부 값을 비교하는 것이 좋음
Math 클래스
- 수학 계산에 사용할 수 있는 메소드를 제공
- Math 클래스가 제공하는 메소드는 모두 정적 메소드이므로 Math 클래스로 바로 사용할 수 있다.
[확인 문제]
④ Object의 toString() 메소드는 객체의 필드값을 문자열로 리턴한다.
- haschCode(), equals()
package yeong.verify.exam03;
public class Student {
private String studentNum;
public Student(String studentNum) {
this.studentNum = studentNum;
}
public String getStudentNumQ {
return studentNum;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Student) {
Student student = (Student) obj;
if(studentNum.equals(student.getStudentNum())) {
return true;
}
}
return false;
}
package yeong.verify.exam04;
public class Member {
private String id;
private String name;
public Member(String id. String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return id + ": " + name;
}
}
④ 클래스, class로 Class 객체를 얻을 수 없다.
package yeong.verify.exam06;
public class BytesToStringExample {
public static void main(String[] args) {
byte[] bytes = { 73, 32, 108, 111, 118, 101, 32, 121, 111, 117 };
String str = new String(bytes);
System.out.println( str );
}
package yeong.verify.exam07;
public class FindAndReplaceExample {
public static void main(String[] args) {
String str = "모든 프로그램은 자바 언어로 개발될 수 있다.";
int index = str.indexOf("자바");
if(index == -1) {
System.out.println("자바 문자열이 포함되어 있지 않습니다.");
} else {
System.out.println("자바 문자열이 포함되어 있습니다.");
str = str.replace("자바", "Java");
System.out.println("—>” + str);
}
}
}
-> 값의 범위가 -128〜 127이면 ==은 값을 비교하고 그 이외에는 번지를 비교하기 때문
① Integer.parselnt(strDatal)
② String.value0f(intData2)
'JAVA' 카테고리의 다른 글
멀티 스레드 (0) | 2022.12.05 |
---|---|
java.util 패키지 (0) | 2022.11.30 |
익명 객체 (0) | 2022.11.15 |
중첩 클래스와 중첩 인터페이스 (0) | 2022.11.15 |
타입 변환과 다형성 (0) | 2022.11.09 |