java.lang 패키지

  • 자바 프로그래밍에 필요한 기본 클래스를 제공
  • import문이 필요 없음
  • Object, System. Math, String, StringBuffer, Thread, Exception, Throwable, Error 등

  1. Object 클래스
    • 자동으로 모든 클래스의 조상이 되는 클래스
    • 클래스 계층 구조에서 루트가 되는 클래스
    • 모든 클래스는 자동으로 Object 클래스가 상속받음

  2. Object의 주요 메소드
    1) toString()
    - 객체의 문자열 표현을 반환
    - 클래스이름@16진수해시코드 로 표현
    - 문자열의 +연산, System.out.print() 등에서 필요함
    - 자식 클래스에서 재정의할 수 있음
    2) boolean equals(Object obj)
    - 두 객체 변수를 비교해서 두 변수의 참조값이 같을 때 true를 반환
    - Object 클래스에서 equals()의 의미
    - obj1.equals(obj2)의 결과는 obj1==obj2와 같음
    - 자식 클래스에서 재정의할 수 있음
    3) Object clone()
    - 객체를 복제하여 리턴함
    - ‘Cloneable 인터페이스를 구현한 클래스’의 객체만 clone() 메소드를 호출할 수 있음
    - 예외(CloneNotSupportedException)처리를 해 주어야 함

  3. String 클래스
    • 문자열을 표현하고 처리하기 위한 클래스
    • 기본 자료형처럼 다룰 수 있음
    • String 객체는 내용이 변하지않는(immutable) 상수 객체
    • 생성자
      • public String()
      • public String(String original)
      • public String(char[] value)
      • public String(char[] value, int offset, int count)

  4. String 메소드
    • 비교 메소드
      1) int compareTo(String anotherString)
      • 같으면 0을 리턴하고 다르면 0이 아닌 정수값을 리턴
        2) int compareTolgnoreCase(String anotherString)
        3) boolean equals(Object anObject)
      • 문자열이 같으면 true를 리턴하고, 다르면 false를 리턴함
        4) boolean equalsIgnoreCase(String anotherString)

    • 검색 메소드
      1) int indexOf(String str), int indexOf(String str, intfromIndex)
      • 처음 위치부터 문자열 str을 찾아 처음 등장하는 위치(인덱스)를 리턴함. 없으면 -1
        2) int lastIndexOf(String str), int lastIndex(String str, int fromIndex)
      • 마지막 위치부터 앞 방향으로 찾음

    • 추출 메소드
      1) char charAt(int index)
      • index 위치에 있는 문자를 리턴
        2) String subString(int beginIndex)
      • beginIndex 위치부터 마지막까지의 문자열을 리턴
        3) String substring(int beginIndex, int endIndex)
      • beginIndex 위치부터 (endIndex-1)까지의 문자열을 리턴함

    • 변환 메소드
      원본 문자열을 변경되지 않고 새로운 객체가 만들어짐
      1) String replace(char oldChar, char newChar)
      • oldChar 문자를 newChar 문자로 변환하여 리턴함
        2) String trim()
      • 문자열 앞과 뒤에 나오는 화이트 스페이스 문자를 제거하여 리턴함
        3) String toUpperCase()
        4) String toLowerCase()
        5) String concat(String str)
      • 두 문자열을 연결함
        6) String.valueOf
      • 주어진 값을 String으로 형변환

    • 기타 메소드
      1) boolean startWith(String prefix)
      • prefix로 시작하면 true를 리턴함
        2) boolean endsWith(String suffix)
      • suffix로 끝나면 true를 리턴함
        3) char[] toCharArray()

StringBuffer 클래스

  • 객체 생성 이후 문자열을 수정할 수 있는 기능을 제공
    • StringBuffer는 내용 변경이 가능한 mutable 클래스
  • 내부적으로 문자열을 저장하기 위해 크기가 조절되는 버퍼를 사용함

  1. 생성자
    • StringBuffer() : 초기 버퍼의 크기는 16
    • StringBuffer(int length)
    • StringBuffer(String str) : 초기 버퍼의 크기는 (str의 길이+16)

  2. 주요 메소드
    1) int capacity(), int length()
    2) char charAt(int index), int indexOf(String str)
    3) String substring(int start, int end)
    4) StringBuffer append(char c)
    - 인자를 String 표현으로 바꾸고 원 문자열 끝에 추가하여 반환함
    - 인자는 char[], Object, String, 기본 자료형도 가능함
    5) StringBuffer delete(int start, int end)
    - start 위치에서 (end-1)까지의 문자열을 삭제
    6) StringBuffer insert(int offset, String s)
    - offset 위치부터 s를 삽입
    7) StringBuffer replace(int start, int end, String s)
    - start 위치부터 (end-1)까지의 문자열을 s로 교체
    8) StringBuffer reverse()
    - 문자열을 역순으로 변경

  3. String 클래스를 사용할 때의 문제점
    • String 은 immutable 클래스
    • 문자열을 빈번하게 변경하는 프로그램이라면 기존 String 객체는 놔둔 채 새로운 String 객체가 계속 생성 됨
    • 메모리 낭비가 발생

포장 클래스

  • 기본형을 참조형으로 표현하기 위한 클래스
  • 기본형의 값을 가지고 객체로 포장함
  • 사용목적
    • 메소드의 인자로 객체가 필요할 때
    • 클래스가 제공하는 상수를 사용할 때
    • 클래스가 제공하는 다양한 메소드를 사용할 때

기본형 참조형
byte Byte
short Short
int Integet
long Long
float Float
double Double
char Character
boolean Boolean
  1. Number 클래스
    포장 클래스의 추상 부모 클래스
    • Number의 자식 클래스에서 구현된 주 메소드
      1) byte byteValue(), short shortValue();
      • 객체를 해당 기본형의 숫자로 변환
        2) int compareTo(Byte anoterByte)
      • this와 인자를 비교하여 같으면 0을 리턴
        3) boolean equals(Object obj)
      • 같은 유형이고, 값이 같으면 true를 리턴

  2. String과 기본형 데이터 간의 변환
    포장 클래스가 제공하는 static 메소드를 사용함
    1) String을 int(또는 long) 형으로 변환할 때
    - int n = Integer.parseInt(“123”);
    - long l = Long.parseLong(“1234”);
    2) int형(또는 long)을 String 형으로 변환
    - String s1 = Integer.toString(4);
    - String s2 = Long.toString(5);
    - String s3 = String.valueOf(123);

  3. Integer 클래스 (이외 Number 타입도 유사한 기능 제공)
    1) static int parseInt(String s) : String을 int로
    2) static String toString(int i) : int를 String으로
    3) static Integer valueOf(int i) : int를 Integer로
    4) String toString : Integer를 String으로
    5) static Integer valueOf(String s) : String을 Integer로

  4. 박싱
    • 기본형 데이터를 포장 클래스의 객체로 변환하는 것
    • 기본형에서 포장 클래스의 객체로 자동 변환되는 것
    • 인자에 전달되거나 변수에 대입될 때 적용됨
    • ex) Double radius = new Double(2.59); // 구식방식
    • ex) Double radius = Double.valueOf(10.4) // 직접 valueOf() 사용
    • ex) Double radius = 2.59 // 자동 박싱. 제일 많이 사용

  5. 언박싱
    • 포장 클래스의 객체를 기본형 데이터로 변환하는 것
    • 포장 클래스에서 기본형Value() 메소드를 사용
    • 인자에 전달되거나 변수에 대입될 때 적용
    • ex) double r = radius.doubleValue(); // 직접 객체.기본형value() 사용
      • radius가 Double형 객체라고 가정
    • ex) double r = radius; // 자동 언박싱
    • ex) System.out.println(new Integer(3)%2); // 연산되면서 자동 언박싱

  6. System 클래스
    • Java 플랫폼 및 시스템과 관련된 기능 제공
    • 유용한 클래스 필드와 메소드를 가짐
    • 모든 멤버는 static, 사용 시 객체를 생성할 필요 없음
    • 주요기능
      • 표준 입출력
      • JVM 또는 운영체제 속성과 시스템 환경 변수의 사용
      • 배열 복사
      • 기타…

      1) System.in
      - 표준 입력 스트림으로 InputStream 유형
      - 키보드로부터 입력을 받을 때 사용
      - System.in.read()는 키보드로부터 1바이트 문자를 입력 받음
      2) System.out
      - 표준 출력 스트림으로 PrintStream 유형
      - 화면에 데이터를 출력할 때 사용
      3) System.err
      - 표준 에러 출력 스트림으로 PrintStream 유형
      - 오류 메시지를 화면에 출력할 때 사용

Updated: