본문 바로가기
728x90

Programming/JAVA10

가비지 컬렉터(Garbage Collector) 동작 원리 ● 가비지 컬렉터(Garbage Collector) - 메모리 관리를 위해 힙영역에서 더 이상 사용되지 않는 객체를 메모리에서 제거하는 것 ● 동작 원리 JVM에서 GC의 스케줄링을 담당하여 Java 개발자에게 메모리 관리의 부담을 덜어준다. GC는 background에서 데몬 쓰레드로 돌며 더 이상 사용되지 않는 객체들을 메모리에서 제거하여 효율적인 메모리 사용을 돕는다. 객체는 힙 영역에 저장되고 스택 영역에 이를 가리키는 주소값이 저장되는데 참조되진 않는객체를 메모리에서 제거한다. ● 물리적 공간 (Heap 영역) - Young Generation - Eden 새로 생성된 객체들이 위치 Minor GC 발생 - Survivor 1, 2 Eden 영역에서 GC 실행 후 살아남은 객체들이 위치 Mino.. 2022. 11. 21.
접근자 프로퍼티란? 접근자란 객체 지향 프로그래밍에서 객체가 가진 프로퍼티 값을 읽거나 사용 할 수 있도록 제공하는 메서드이다. 객체의 프로퍼티를 객체 바깥에서 직접 조작하는 행위는 데이터의 유지 보수성을 해치는 주요한 원인이다. 접근자 프로퍼티의 본질은 함수인데, 이 함수는 값을 획득(Get)하고 설정(Set)하는 역할을 한다. 접근자 프로퍼티는 'getter' 'setter' 메소드로 표현된다. 객체 리터럴 안에서 getter와 setter 메소드는 get과 set으로 나타낸다. ● Getter : 특정 값을 조회하고자 할 때 사용한다. ● Setter : 특정 값을 설정하고자 할 때 사용한다. public class User { private String name; private int age; public Strin.. 2022. 10. 31.
static 변수와 static 메소드 자바에서는 static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미한다. ● static의 메모리 일반적으로 우리가 만든 Class는 static 영역에 생성되고, new 연산을 통해 생성된 객체는 Heap영역에 생성된다. 객체의 생성시 할당된 Heap영역의 메모리는 Garbage Collector를 통해 수시로 관리를 받는다. 하지만 static 키워드를 통해 static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, Garbage Collector의 관리 영역 밖에 존재하므로 static을 자주 사용하면 프로그램의 종료시 까지 메모리에 할당된 채로 존재하게 된다. ● static 변수 특징 static 변수는 클래스 변수다. 객체.. 2022. 10. 30.
프로세스와 스레드 (Process vs Thread) ● 프로그램(Program) - 사전적 의미 : 어떤 작업을 위해 실행할 수 있는 파일 ● 프로세스(Process) - 사전적 의미 : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 즉, 동적인 개념으로는 실행된 프로그램을 의미한다. - 참고 할당받는 시스템 자원의 예 CPU 시간 운영되기 위해 필요한 주소 공간 Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 ● 특징 - 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당 받는다. - 기본적으로는 프로세스당 1개 이상의 스레드를 가지고 있다. - 각 프로세스.. 2022. 10. 29.
728x90