[java] 자바 기본 API
> java.lang package
기본 패키지라서 별도의 import 없이 사용 가능하다.
-
재정의 가능한 메소드
-
protected Object clone() throws CloneNotSupportedException()
객체의 참조(주소)값만 복사하는 얕은 복사가 아닌 참조대상값(메모리)을 복사하는 깊은 복사 -
public boolean equals(Object obj)
객체가 동일한지 확인하여 결과 반환 -
protected void finalize() throws Throwable
가비지 컬렉션이 수행될 때 자동으로 호출 -
public final Class getClass()
객체의 실행 클래스 반환 -
public int hashCode()
객체의 해시 코드 값 반환
메모리의 안정성을 위해 프로그램이 메모리에 직접 접근하는 것을 막고, new 연산자를 이용해 메모리를 할당할 때 메모리에 접근할 수 있는 코드인 해시코드를 생성한다. -
public String toString()
객체를 대표하는 문자열로 반환
-
-
재정의 불가능한 메소드
동기화와 관련된 스레드 제어 메소드 들이다.- public final void notify()
- public final void notifyAll()
- public final void wait()
- public final void wait(long timeout)
- public final void wait(long timeout, int nanos)
> String()
- charAt(int index) : char index 위치에 있는 문자 반환
- compareTo(String str) : int str보다 사전 순으로 앞이면 음수, 같으면 0, 뒤면 정수 값을 반환
- concat(String str) : String 기존 문자열에 str을 이어 새로운 String을 반환
- equals(String str) : boolean str과 같은 문자열이면(대소문자 구분) True, 아니면 False
- equalsIgnoreCase(String str) : boolean str과 같은 문자열(대소문자 무시) True, 아니면 False
- length() : int 문자 길이를 반환
- replace(char oldChar, char newChar) : String 문자열의 oldChar를 모두 newChar로 변경
- substring(int offset, int endIndex) : String offset 위치에서부터 endIndex-1까지에 걸친 문자열을 반환
- toLowerCase() String : 모든 대문자를 소문자로 변환
- toUpperCase() String : 모든 소문자를 대문자로 변환
> StringBuffer()
문자열 변경 시 새로운 객체를 생성하지 않고, 버퍼에 담겨있는 문자열 바로 수정, 동기화 지원
> StringBuilder()
StringBuffer()와 기본적인 동작 같으나 동기화(Thread safe) 지원안함
> Math()
- static int abs(int num) : 절대 값을 반환
- static double acos(double num) : arc cosine을 반환
- static double asin(double num) : arc sine을 반환
- static double atan(double num) : arc tangent를 반환
- static double cos(double num) : cosine을 반환
- static double sin(double num) : sine을 반환
- static double tan(double tan) : tangent를 반환
- static double ceil(double num) : 올림 값(ceiling)을 반환
- static double floor(double num) : 내림 값을 반환
- static double exp(double power) : 지정된 power만큼 e의 제곱 된 값을 반환
- static double pow(double num, double power) : num을 power 만큼 제곱한 값을 반환
- static double random() : 0.0(포함)과 1.0(미포함) 사이의 난수를 반환
- static double sqrt(double num) : 양수만 가능한 num의 제곱근을 반환
> Wrapper()
자바의 기본형 데이터타입을 클래스화하기 위해 사용하는 클래스로 기본형 데이터 타입을 클래스화하면 Object 클래스의 자식 클래스가 되어 데이터형에 상관없이 Object 클래스를 이용하여 처리할 수 있다.
public class WrapperEx {
public void printWrapper(Object obj) {
System.out.println("데이터 : " + obj);
System.out.println("데이터 클래스 : " + obj.getClass());
}
public static void main(String[] args) {
int i = 123;
double d = 3.14;
WrapperEx wp = new WrapperEx();
wp.printWrapper(i);
//데이터 : 123
//데이터 클래스 : class java.lang.Integer
wp.printWrapper(d);
//데이터 : 3.14
//데이터 클래스 : class java.lang.Double
}
박싱(Boxing)
기본형 데이터 타입을 객체화 시키는 작업
int i = 10;
Integer iValue1 = new Integer(i);
Integer iValue2 = new Integer(123);
double d = 1.123;
Double dValue1 = new Double(d);
Double dValue2 = new Double(5.323);
언박싱(Unboxing)
객체에 저장되어 있는 데이터를 기본형 데이터로 꺼내는 작업
Integer iValue = new Integer(4578);
int i = iValue.intValue();
Double dValue = new Double(44.241);
double d = dValue.doubleValue();
자동 박싱(Auto Boxing), 자동 언박싱(Auto Unboxing)
자바 JDK1.5 이상부터는 기본 타입과 Wrapper클래스 타입 간의 변환이 자동으로 이루어진다
int i = 10;
Integer iValue = i;
Double dValue = new Double(3.14);
double d = dValue;
그 외 유용한 클래스
> Objects()
Object 클래스와 유사한 이름을 가진 클래스로 객체 비교, 해시코드 생성, null 여부, 객체 문자열 리턴 등의 연산을 수행할 수 있다.
- int compare(T a, T b, Comparator c) : 두 객체 a와 b를 Comparator를 사용해 비교
- int hashCode(Object o) : 객체의 해시코드 생성
- Boolean isNull(Ojbect obj) : 널인지 확인
- Boolean nonNull(Ojbect obj) : 널이 아닌지 확인
- String toString(Object o) : 객체의 toString()값 리턴
> Random()
난수 발생 방법 ⇒ Math.random(), Random 클래스 이렇게 두가지가 있다.
Math.random()은 정적 메소드로 객체를 생성하지 않고 편하게 사용할 수있지만 double 형의 난수만 발생시킬 수 있다.
Random 클래스는 객체를 생성해야하는 불편함이 있지만 int, long, float, double, boolean 형의 난수를 발생시킬 수 있다.
public void testRandom() {
Random r = new Random();
System.out.println("nextInt() : "+ r.nextInt()); // -2^31 ~ 2^31-1 사이의 난수
System.out.println("nextInt(100) : "+ r.nextInt(100)); // 0~100 사이의 난수
System.out.println("nextBoolean() : "+ r.nextBoolean()); // true 또는 false
System.out.println("nextDouble() : "+ r.nextDouble()); // double형 표현범위의 난수
System.out.println("nextFloat() : "+ r.nextFloat()); // float형 표현범위의 난수
}
Author And Source
이 문제에 관하여([java] 자바 기본 API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kyy806/java-자바-기본-API저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)