Books

Books/Java의 정석

[Java] 오버로딩(overloading)

오버로딩이란? 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩' 또는 '오버로딩(overloading)'이라 한다. 보통 하나의 메서드 이름에 하나의 기능만을 구현해야 하는데, 여러 기능을 구현하기 때문에 붙여진 이름이다. 오버로딩의 조건 메서드의 이름이 같아야 한다. 매개 변수의 개수 또는 타입이 달라야 한다. 위의 조건을 만족시키지 못하는 메서드는 중복 정의로 간주되어 컴파일 시에 에러가 발생한다. 오버로딩된 메서드들은 매개변수에 의해서만 구별될 수 있으므로 반환 타입은 오버로딩을 구현하는데 아무런 영..

Books/Java의 정석

[Java] 클래스 메서드(static 메서드)와 인스턴스 메서드

메서드 앞에 static이 붙어 있으면 클래스 메서드이다. 클래스 메서드도 클래스 변수처럼, 객체를 생성하지 않고도 '클래스이름.메서드이름(매개변수)'와 같은 식으로 호출이 가능하다. 반면에 인스턴스 메서드는 반드시 객체를 생성해야만 호출할 수 있다. static 메서드는 언제 사용할까? 클래스는 '데이터(변수)와 데이터에 관련된 메서드의 집합'이므로, 같은 클래스 내에 있는 메서드와 멤버 변수는 아주 밀접한 관계가 있다. 인스턴스 메서드는 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드이다. 반면에 메서드 중에서 인스턴스와 관계없는(인스턴스 변수나 인스턴스 메서드를 사용하지 않는) 메서드를 클래스 메서드(static 메서드)로 정의한다. 클래스를 ..

Books/Java의 정석

[Java] 선언 위치에 따른 변수의 종류 (static)

변수는 클래스변수, 인스턴스 변수, 지역 변수 총 세 종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 '변수의 선언된 위치'이므로 변수가 어느 영역에 선언되었는지를 확인하는 것이 중요하다. 멤버 변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버 변수 중 static이 붙은 것은 클래스 변수, 붙지 않은 것은 인스턴스 변수이다. class Variables { int iv;//인스턴스 변수 static int cv;//클래스 변수(static변수, 공유변수) void method() { int lv = 0;//지역 변수 } } 인스턴스 변수(instance variable) 클래스 영역에 선언. 클래스의 인스턴스를 생성할 때 만들어짐. 인스턴스 변수의 값을 읽어 오거나 저장하기 위해서 인스턴스 생..

Books/Java의 정석

[Java] JVM 구조

응용 프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 다라 여러 영역으로 나누어 관리한다. 메서드 영역(method area) 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일(*. class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이때, 그 클래스의 클래스 변수(class varaible)도 이 영역에 함께 생성된다. 힙(heap) 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다. 인스턴스 변수들이 생성되는 공간이다. 호출 스택(call stack 또는 execution stack) 호출 스택은 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 호출되..

또 고민 중
'Books' 카테고리의 글 목록 (3 Page)