본문 바로가기

728x90

Java

(28)
제어자 (static과 final) 제어자는 클래스, 메서드, 혹은 변수 선언부 앞에 붙어서 사용하며 부가적인 의미를 부여하는 역할을 합니다. 제어자는 접근 제어자와 그 외 제어자, 이렇게 크게 2가지로 나눌 수 있습니다. 접근 제어자: 멤버 또는 클래스에 사용되어, 해당하는 멤버 혹은 클래스를 외부에서 접근하지 못하도록 제어하는 역할 public: 접근 제한이 전혀 없어 어디서든 접근가능 protected: 같은 패키지 내, 혹은 다른 패키지의 자손 클래스에서 접근가능 default: 같은 패키지 내에서만 접근가능 private: 같은 클래스 내에서만 접근가능 그 외: static, final, abstract, volatile, transient, native, synchronized, strictfp 위의 여러 가지 제어자들 중, s..
JVM의 메모리 구조 Application이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당 받습니다. 그리고 이 메모리를 역할에 따라 여러 영역으로 나누어서 관리를 합니다. 그 중 3가지 주요 영역(method area, call stack, heap)에 대해서 알아보겠습니다. JVM 메모리 구조 1. 메서드 영역 (method area) 프로그램 실행 중에 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일을 읽어서 분석하여 클래스에 대한 정보를 이 영역에 저장합니다. 물론, 클래스의 클래스 변수도 이 영역에 함께 저장됩니다. 2. 힙(heap) 인스턴스가 생성되는 공간입니다. 즉, 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성됩니다. 인스턴스 변수도 이 영역에 생성이 되는 ..
가변인자(varargs) JDK1.5 이전에는 메서드의 매개변수 개수가 고정적이었습니다. 하지만 JDK 1.5 이후부터는 매개변수 개수를 동적으로 지정할 수 있게 되었고 이 기능은 '가변인자'를 통해 가능합니다. 이번 포스팅을 통해 가변인자를 이용한 메서드에 대해서 알아보겠습니다. 가변인자 사용법 가변인자는 메서드의 매개변수로 으로 선언하면 됩니다. 즉 예시로 보면, Java에서 제공하는 printf 함수는 아래와 같이 매개변수로 가변인자를 사용하고 있습니다. public PrintStream printf(String format, Object ... args) { return format(format, args); } 가변인자 정의 시 주의할 점 매개변수로 가변인자를 사용하고자 한다면, 매개변수 중에서 제일 마지막에 선언을 해..
자바의 변수 (종류 및 초기화) 이번 포스팅은 Java의 기초 개념 중 하나인 변수의 종류와 초기화 방법에 대해서 작성해 보았습니다. 클래스를 이용하여 객체를 생성하고, 객체마다 속성을 정의해 주는 멤버변수(클래스 영역에 선언된 변수)를 이용할 때 어떤 종류의 변수를 이용하는 것이 좋은지 숙지하여 적재적소에 변수의 종류를 잘 선택하여 사용하는 것이 중요할 것 같습니다. 자바에서는 변수의 종류가 크게 3가지가 있습니다. 이 변수들은 선언 위치에 따라 구분할 수 있는데 아래에서 살펴보겠습니다. 선언 위치에 따른 변수 종류 1. 클래스 변수 멤버변수 중 static이 붙은 변수 즉, 인스턴스 변수 앞에 static을 붙여서 선언합니다. 클래스 변수는 클래스가 메모리에 로딩될 때 생성되므로, 인스턴스를 생성하지 않아도 "클래스 이름.클래스 변..

728x90
반응형