자바 Java/자바 공부 java study(21)
-
생성자(constructor)
생성자란 객체가 생성될때(new) 반드시 한번 수행되는 메소드 생성자의 특징 public 클래스명 (매개변수){} 1) 수식어는 우선 public (생성자 앞에는 접근 제어자 - public만 올 수 있다. ) 메소드는 static 올 수 있다. 2) 문법적으로 반환 유형 자체가 없음(void나 자료형을 작성할 수 없다. ) 메소드는 void나 자료형이 있어야한다. 3) 메소드이기 때문에 오버로딩 가능 4) 생성자 메소드의 이름은 크래스 명과 완벽하게 동일하게 정의해야한다. 5) 생성자는 인스턴스를 초기화 시킨다. *2,4번이 반드시 지켜져야 컴파일러가 생성자로 인식 인스턴스를 생성할때 반드시 생성자를 호출한다고 하였는데 생성자를 따로 정의하지않을때는 어떻게 호출 된 것일가? 그 이유는 클래스를 정의할때..
2020.03.10 -
garbage collector(GC)
garbage란 정리되지 않은 메모리, 유효하지 않은 메모리 주소를 말한다. -프로그래밍 언어로는 "Dangling Object" 이라고 한다. c/c++언어와 달리 자바는 개발자가 명시적으로 객체를 해제할 필요가 없다. 사용하지 않는 객체는 메모리에서 삭제(해제) 하는 작업을 garbage collector(GC)라 부르며, JVM에서 GC를 수행한다. 기본적으로 JVM의 메모리는 총 5가지 영역(클래스, 스택, 힙, 네이티브 메서드, pc레지스처)으로 나뉘는데 GC는 heap 영역만 다룬다. garbage collector 가 실행되는 때 : JVM이 프로그램을 실행하다가 메모리가 부족해지면 OS추가로 메모리를 더 요청하게 된다. 바로 이때 실행 된다. 가비지의 대상이 되는 경우 : 프로그램이 실행되..
2020.03.10 -
정적 변수(static variables)
static 변수는 메모리에 고정적으로 할당 되어, 프로그램이 종료될 때 해제 되는 변수이다 . class 는 컴파일 시 static 영역에 생성되고, new 연산자를 통해 생성한 객체는 heap영역에 생성된다. 즉, static 변수와 static 메소드는 static 메로리 영역에 존재 하기 때문에 객체가 생성되기 이전 컴파일 시 이미 할당 되어있다. static 변수의 특징 1) 메모리에 한번 할당 되므로 여러 객체가 해당 메모리를 공유하게 된다 -하나의 클래스에 하나만 존재하는 것이고 그 클래스의 모든 객체들에 의하여 공유된다. -보통 변수의 static 키워드는 프로그래밍시 메모리의 효율 보다는 공유하기 위한 용도로 사용하는 것이다. 2) 멤버 변수와 다르게 객체의 생성 여부와 상관 없이 딱 하..
2020.03.10