본문 바로가기
Work/Java

[Java] java.lang 패키지 - 정리

Java . Lang 패키지

자바는 기본적으로 다양한 패키지를 지원한다.

그중 java.lang 패키지는 Import없이 사용가능한 기본이되는 가장 중요한 패키지이다.

  1. java.lang 패키지의 클래스는 import를 하지 않고도 사용할 수 있다.
  2. java.lang 패키지에는 기본형타입을 객체로 변환시킬때 사용하는 Wrapper클래스가 있다.Boolean, Byte, Short, Integer, Long, Float, Double 클래스
  3. 모든 클래스의 최상위 클래스인 Object도 java.lang패키지
  4. 문자열과 관련된 String, StringBuffer, StringBuilder도 모두 java.lang패키지
  5. 화면에 값을 출력할때 사용했던 System 클래스도 java.lang패키지
  6. 수학과 관련된 Math 클래스도 java.lang패키지
  7. Thread와 관련된 중요 클래스들이 java.lang패키지
  8. 이외에도 다양한 클래스와 인터페이스가 java.lang패키지에 속해 있다.

 

lang 패키지에 포함되는 클래스들 

String, StringBuffer
Process, Runtime, Thread Math, StrictMath
Exception Throwable, Error Package, Class, ClassLoader
Wrapper, System, Stream

 

Object 클래스 

Object클래스는 모든 클래스의 최상위 클래스이며, 아무것도 상속받지 않으면 자동으로 Object를 상속한다.  가장 많이 사용하는 메소드로는 toString(), equals(), hashCode(), 등이 있다.

 

Object클래스의 상세한 내용은 아래글을 통해 확인

2021.06.24 - [일/Java] - [Java] 기본 Class - Object

 

[Java] 기본 Class - Object

Object Object클래스는 모든 클래스의 최상위 클래스 아무것도 상속받지 않으면 자동으로 Object를 상속 Object가 가지고 있는 메소드는 모든 클래스에서 다 사용할 수 있다는 것을 의미 가장 많이 사

bangu4.tistory.com

 

 

 

 

Class 클래스 

클래스와 관련된 여러 정보를 탐색할 수 있는 클래스이다.

  • Class 클래스는 객체나 인터페이스의 런타임 상태를 저장한다.
  • Class 타입의 객체는 클래스가 로드 될 때 자동으로 생성된다.
  • Class 객체를 명시적으로 선언할 수 없으며,
  • 일반적으로 Object 클래스의 getClass() 메소드를 이용하여 Class 객체를 얻는다.

 

forName() : 파라메터로 넘어온 클래스명의 객체를 찾아 Class 클래스를 반환한다.
genName() : 객체의 클래스명을 반환한다.
newInstance() : 객체의 클래스 인스턴스를 생성하여 반환한다.
getSuperclass() : 슈퍼(부모)클래스명을 반환한다.
getFields() : 클래스내에 변수(필드)들을 필드 리스트로 반환한다.
class Class1 {
	int a = 1;
	int b = 2;
}

class Class2 extends Class1{
	int c = 3;
}

public class ClassTest {
	public static void main(String[] args) {
		Class1 c1 = new Class1();
		Class2 c2 = new Class2();

		Class parent = c1.getClass();
		Class child = c2.getClass();

		System.out.println(parent.getName());
		System.out.println(parent.getSuperclass().getName());
		
		System.out.println(child.getName());
		System.out.println(child.getSuperclass().getName());
		
	}
}

 

 

 

 

 

 

String 클래스 

문자열 데이터를 관리하는데 사용되는 클래스로, 각종 관리 시스템을 구축할 때 많이 사용된다. 한 번 String에 저장되면 데이터는 고정되어 수정할 수 없다. 생성자에 의해 만들어지면 메모리의 힙 영역에, 리터럴 객체로 생성(A='B' 형식으로 생성되는 방식)되면 메모리의 스택 영역에 저장된다.

compareTo() : 값을 비교하여 같으면 0, 다르면 다른 값을 반환
indexOf() : 문자열 내에서 특정 문자열을 찾을 때 사용
charAt() : 특정 위치의 문자 한 개를 반환
substring() : 특정 구간의 문자열을 반환
replace() : 특정 문자를 다른 문자로 변환
toUpperCase(), toLowerCase() : 문자열 내의 문자 전체를 대문자나 소문자로 변환
valueOf() : 임의의 자료형을 String으로 변환하여 반환
equals() : 비교하는 대상이 같은 객체를 참조하는지에 대한 결과를 true 또는 false로 반환
toString() : 형변환을 통해 객체를 텍스트로 반환할 수 있게 해준다.
               숫자형 데이터를 문자로 나타내야 할 때 많이 이용

 

 

 

StringBuffer 클래스

String처럼 문자열 관리에 이용되는 클래스로, 수정이 가능하고 크기가 자동으로 조절되는 버퍼를 제공한다.

	public static void main(String[] args) {
		//StringBuffer 의 다양한 메소드
		StringBuffer sb = new StringBuffer();
		sb.append("bang ");				
		sb.append("jihoon");			
		System.out.println(sb.capacity());		// 할당 크기
		sb.insert(0,"handsome ");				
		System.out.println(sb);
		System.out.println(sb.capacity());		// 1.5배로 커짐
		System.out.println(sb.indexOf("bang"));	// 문자열 시작위치
		System.out.println(sb.charAt(0));		// 해당위치에 Char문자
		System.out.println(sb.length());		// 문자열 길이
		System.out.println(sb.reverse());		// 문자열 뒤집기
		System.out.println(sb.reverse());
		System.out.println(sb.lastIndexOf("n"));// n 위치를 맨뒤에서 찾기	
		System.out.println(sb.substring(7));	// 문자열 자르기
		System.out.println(sb.delete(0, 7));	// 해당위치만큼 삭제
		System.out.println(sb.equals("bang"));	// 문자열 비교
	}

String, StringBuffer, StringBuilder에 차이점을 아직 모르신다면 아래글을 통해 꼭 숙지하시기 바랍니다.

2021.06.28 - [일/Java] - [Java] Char, String, StringBuffer, StringBuilder 차이점

 

[Java] Char, String, StringBuffer, StringBuilder 차이점

1. char 문자는 단일 문자값 하나를 갖는 자료형으로 거의 사용되지않으며, 단일 인용부호 ' ' (싱글 코텐션)을 사용한다. char a1 = 'a'; char a2 = 97; char a3 = '\u0061'; System.out.println(a1); System.out..

bangu4.tistory.com

 

 

 

Wrapper클래스

기본형 변수를 객체화 시켜주는 클래스로, 형변환 메소드를 포함하며 그 외에 다양한 메소드를 제공하고 있다.

해당 클래스에서는 JAVA 1.5 이후로 자동 박싱 / 오토 언박싱 기능을 제공한다.

이는 Wrapper변수와 기본형 변수 사이에 귀찮은 변환과정을 허물어주었다.

// 기존 객체  생성문
Integer obj1 = new Integer();
obj = 100;

// 1.5 이후 자동박싱
Integer obj2 = 100; // 100이라는 int형값을 자동으로 객체에 박싱

// 자동 언박싱 (Integer객체 -> int자료형)
int val1 = obj;
parseInt() : String을 기본 자료형으로 변환
valueOf() : 기본형을 Number형으로 변환

 

 

 

System 클래스 

운영체제 시스템과 관련된 기능을 제공하는 클래스로, 모든 멤버가 기본 static이기 때문에 별도의 인스턴스 객체를 생성할 필요가 없다.  표준 입출력 관리와, 환경 변수 접근, 시스템 속성 , 현재 ms / ns 시각 확인 , 객체 복사 등에 사용된다.

 

따로 정리 해두었으니,  아래 글을 참조

2021.06.29 - [일/Java] - [Java] System 클래스 정리

 

[Java] System 클래스 정리

JAVA.LANG 패키지에 포함되어있는 클래스 System 클래스 (매우 중요) 운영체제 시스템과 관련된 기능을 제공하는 클래스로, 모든 멤버가 기본 static이기 때문에 별도의 인스턴스 객체를 생성할 필요

bangu4.tistory.com

 

 

 

 

Stream 클래스 

입력 장치나 출력장치를 프로그램과 연결해주는 역할을 하는 것으로, JAVA의 모든 입출력은 Stream을 통해 이루어진다.

InputStream in : 표준 입력 스트림
PrintStream out : 표준 출력 스트림
PrintStream err : 표준 에러출력 스트림

https://futurecreator.github.io/2018/08/26/java-8-streams/index.html

 

Java 스트림 Stream (1) 총정리

이번 포스트에서는 Java 8의 스트림(Stream)을 살펴봅니다. 총 두 개의 포스트로, 기본적인 내용을 총정리하는 이번 포스트와 좀 더 고급 내용을 다루는 다음 포스트로 나뉘어져 있습니다. Java 스트

futurecreator.github.io

 

 

 

 

Math 클래스 

수학적인 통계와 계산 이외에도 싸인, 싸인, 탄젠트, 절대값, 랜덤값 등 다양한 기능을 제공하는 클래스

  • Math클래스는 생성자가 private으로 되어 있기 때문에 new 연산자를 이용하여 객체를 생성할 수 없다.
  • 객체를 생성할 수는 없지만 모든 메소드와 속성이 static으로 정의되어 있기 때문에 객체를 생성하지 않고도 사용할 수 있다
  • Math 클래스는 기하학 삼각법, 부동 수수점과 같은 수학과 관련된 메소드를 제공한다.
  • Math 클래스는 final 클래스 이기 때문에 상속이 불가능하다.
   public static void main(String[] args) {
        System.out.println("abs(10.6) :" + Math.abs(10.6));
        System.out.println("ceil(10.3) : " + Math.ceil(10.3));
        System.out.println("floor(10.3) : " + Math.floor(10.3));
        System.out.println("max(3, 5) : " + Math.max(3, 5));
        System.out.println("min(3, 5) : " + Math.min(3, 5));
        System.out.println("random() : " + Math.random());
        System.out.println("round(10.5) : " + Math.round(10.5));
        System.out.println("rint(10.3) : " + Math.rint(10.3));
    }

Math 주요 메소드

 

static int abs(int a) a의 절대값을 int로 반환한다.
static double ceil(double a) a의 소수점 이하를 올림을 한 값을 반환한다.
static double floor(double a) a의 소수점 이하를 버림을 한 값을 반환한다.
static int max(int a, int b) a, b 값 중 큰 값을 int로 반환한다.
static int min(int a, int b) a, b 값 중 작은 값을 int로 반환한다.
static double random() 임의의 값을 반환한다.
static double round(double a) a의 소수점 이하를 반올림을 한 값을 반환한다.
static double rint(double a) a에 가장 가까운 정수를 반환한다.
static double sin(double a) a의 싸인 값을 반환한다.
static double cos(double a) a의 코싸인 값을 반환한다.
static double tan(double a) a의 탄젠트 값을 반환한다.
static double sqrt(double a) a의 제곱근 값을 반환한다.

참조 : http://www.devkuma.com/books/pages/73

 

프로그램 개발 지식 공유, devkuma

데브쿠마는 프로그래밍 개발에 대한 지식을 공유합니다.

www.devkuma.com

 

 

 

 

Runtime 클래스

  • Runtime 클래스는 실행 환경을 객체화하기 위해서 사용한다.
  • Runtime 객체를 이용해 현 운영체제 시스템간의 상호 작용이 가능하다.
  • JVM(자바 머신)이 작동하는 시스템과의 인터페이스를 제공하며.
  • 자바 클래스가 아닌 운영체제 기반의 프로그램을 실행시키거나 운영체제에 대한 정보를 제공한다.

 

Runtime 주요 메소드

Process exec(String command) 명령(command)을 실행시키고, 실행시킨 프로세스의 래퍼런스를 반환한다.
static Runtime getRuntime() Runtime 객체의 레퍼런스를 반환한다.
void exit(int status) 상태 값(status) 반환하면서 JVM을 종료시킨다.
long freeMemory() JVM이 사용 가능한 메모리 양(bytes)을 반환한다.
long totalMemory() JVM이 사용하고 있는 전체 메모리를 반환한다.
long maxMemory() JVM이 사용할 수 있는 최대 메모리 양을 반환한다.

http://www.devkuma.com/books/pages/75

 

프로그램 개발 지식 공유, devkuma

데브쿠마는 프로그래밍 개발에 대한 지식을 공유합니다.

www.devkuma.com