My Profile Photo

DongChanS's blog


수학과 학생의 개발일지


Java (5) - Java Lang API

1) Java Lang API

자바의 기본적인 클래스를 제공함. => Import하지 않아도 됩니다!

1-1. Object class

클래스 구조의 root위치에 있는 가장 기본적인 클래스

  • methods

    1. object.clone() : 객체를 카피

      => shallow copy임.

      1

    2. equals(Object obj) : 두 객체가 같은지를 판단함.

    3. hashCode() : 객체의 hash code를 반환함.

    4. toString() : 객체의 string representation을 반환함.

1-2. Array

기본적인 배열을 다룰 수 있는 클래스.

  • methods
    1. array.get(int index) : 특정한 인덱스의 값을 받아옴.
    2. array.set(int index, Object value) : 특정 인덱스의 값을 value로 설정함.
  • variables
    1. length : array의 길이를 가져옴.

1-3. String

문자열을 다룰 수 있는 클래스.

  1. String Class는 Reference type이다!

    => 그렇지만 new를 안 쓰고 생성할 수 있는 유일한 객체

  2. 하지만 Immutable이다!

    => StrungBuffers 클래스가 mutable string을 지원함.

  3. 문자열을 +연산을 통해서 더할 수 있음

    • 그렇지만 약간 비효율적이기 때문에 StringBuilder 클래스가 등장함.

    • 어떤 객체든 문자열과 +연산을 하면 자동으로 문자열로 변환됨.

  4. Methods : concat, replace, charAt, substring, indexOf 등등…

1-4. StringBuffers

A thread-safe, mutable sequence of characters.

  1. thread-safe

    multiple thread 환경에서도 안정적으로 돌아감. 왜냐하면 모든 StringBuffers 인스턴스들이 동기적으로 작동하기 때문.

  2. mutable string

    기본적으로 string을 그 자체로 보는게 아니라 char 값들의 sequence로 보기 때문에 mutable일 수 있다.

    • 문자열을 추가하거나 변경할 때 매우 유용함.

    • 하지만 기본적으로 무거운 자료구조이기 때문에 리스크도 있음.

  3. methods ( 참고링크 : 점프 투 자바 )

    1. append : 왠만한 자료형은 거의 가능함.
    2. insert : 특정 위치에 끼워넣기
    3. substring : 부분수열
        public static void main(String[] args){
            StringBuffer sb = new StringBuffer();
            sb.append(1);
            sb.append('2');
            sb.append(" Hello World! ");
            System.out.println(sb.toString());
            sb.insert(6, "Good");
            System.out.println(sb.toString());
            System.out.println(sb.substring(0, 3));
        }
    
    12 Hello World! 
    12 HelGoodlo World! 
    12 
    

1-4. StringBuilder

A mutable sequenece of characters, but with no guarantee of synchronization

  1. 기본적으로 성능은 StringBuffer보다 좋으나(2.6배정도??), 멀티쓰레드 환경에서는 동기화를 지원하지 않으므로 불안정합니다.

  2. Method들은 StringBuffer와 거의 유사합니다.

1-5. Math : 수학과 관련된 메서드

  • 필요한 수학 함수가 있을 때 검색해보면 됩니다. (외울필요 없음!)

1-6. Wrapper

  • 기본형 데이터 타입을 객체화시켜주는 클래스(인터페이스)

    => 아무래도 객체면 멤버변수나 멤버메서드를 사용할 수 있으니 좋겠죠..?

  • 사용예시

    Integer iobject = new Integer(300);
    int ip = iobject.intValue();
    
  • 가능한 자료형들

    byte, short, int, long, float, double, boolean, char

    int 제외하고는 그냥 capitalize만 하면 됨.

comments powered by Disqus