전체 글 282

가비지 컬렉션 요약

Garbage Collection(GC) 이란?가비지 컬렉션(Garbage Collection, 이하 GC)은 자바의 메모리 관리 방법 중의 하나로 JVM(자바 가상 머신)의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체(garbage)를 모아 주기적으로 제거하는 프로세스를 말한다.  C / C++ 언어에서는 이러한 가비지 컬렉션이 없어 프로그래머가 수동으로 메모리 할당과 해제를 일일이 해줘야 했었다.반면 Java에서는 가비지 컬렉터가 메모리 관리를 대행해주기 때문에 Java 프로세스가 한정된 메모리를 효율적으로 사용할수 있게 하고, 개발자 입장에서 메모리 관리, 메모리 누수(Memory Leak) 문제에서 대해 관리하지 않아도 되어 오롯이 개발에만 집중할 수 있다는 장점이 있다.

기술면접 준비 2024.08.06

가비지 컬렉션 동작 원리 & GC 종류 총정리

Garbage Collection(GC) 이란?가비지 컬렉션(Garbage Collection, 이하 GC)은 자바의 메모리 관리 방법 중의 하나로 JVM(자바 가상 머신)의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체(garbage)를 모아 주기적으로 제거하는 프로세스를 말한다.  C / C++ 언어에서는 이러한 가비지 컬렉션이 없어 프로그래머가 수동으로 메모리 할당과 해제를 일일이 해줘야 했었다.반면 Java에서는 가비지 컬렉터가 메모리 관리를 대행해주기 때문에 Java 프로세스가 한정된 메모리를 효율적으로 사용할수 있게 하고, 개발자 입장에서 메모리 관리, 메모리 누수(Memory Leak) 문제에서 대해 관리하지 않아도 되어 오롯이 개발에만 집중할 수 있다는 장점이 있..

기술면접 준비 2024.08.06

클래스와 인스턴스의 차이

📖 클래스(Class)란?Java에서 객체를 생성하기 위한 일종의 설계도이다.흔히 붕어빵(객체)를 만들기 위한 붕어빵 틀(클래스)이라고 비유를 한다.객체가 가지는 속성(필드)와 동작(메서드)으로 이루어져 있다.이들은 생략될 수도 있고 하나 이상 작성될 수도 있다.Java를 실행 시 클래스는 JVM 메모리의 클래스 영역(Class Area)에 로드된다. 📖 인스턴스(Instance)란?클래스가 붕어빵 틀이라면, 그 틀을 통해 생성된 객체(붕어빵) 하나하나를 해당 클래스의 인스턴스라 한다.클래스를 사용하여 힙 영역(Heap Area)에 새로운 인스턴스(객체)를 생성할 수 있다.즉, 인스터스란 현실의 객체를 소프트웨어 내에서 구현한 실체라고 볼 수 있다.📖 요약객체(Object)란 자신 고유의 속성을 가..

기술면접 준비 2024.08.06

그림으로 보는 자바 코드의 메모리 영역(스택 & 힙)

자바의 메모리 영역이번 포스팅에선 자바(JAVA)를 사용하는 입장에서 알아야 할 메모리 구조 및 특징에 대해서 알아보려고 한다.자바 프로그램이 실행되면 JVM(자바 가상 머신)은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라서 여러 영역으로 나누어 관리를 한다.JVM의 메모리 공간(Runtime Data Area)은 크게 Method(Static) 영역, Stack 영역, Heap 영역으로 구분되고 데이터 타입(자료형)에 따라 각 영역에 나눠서 할당 되게 된다. https://blog.naver.com/chlwlstjd10/222239136195  컴퓨터의 메모리는 사용할 수 있는 공간이 한정되어 있기 때문에 어떻게 관리하느냐에 따라서 프로그램의 성능(속도 등)이 좌우된다.그래서 메모리 설계가 ..

기술면접 준비 2024.08.06

항해99 리부트코스 알고리즘 3주 4일차 백준 31926 밤양갱

https://www.acmicpc.net/problem/31926 def min_time_to_create_song(n): # 초기값 설정 ans = 10 # n이 1일 때 기본적으로 필요한 시간 # 복사 가능한 크기의 기준점 cri = 1 while n >= cri * 2: ans += 1 cri *= 2 return ansdef main(): import sys input = sys.stdin.read n = int(input().strip()) result = min_time_to_create_song(n) print(result)if __name__ == "__main__": main() 달..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 4일차 백준 2847 게임을 만든 동준이

https://www.acmicpc.net/problem/2847 def minimum_decreases(levels): decreases = 0 # 뒤에서 두 번째 요소부터 시작하여 앞쪽으로 탐색 for i in range(len(levels) - 2, -1, -1): if levels[i] >= levels[i + 1]: # 현재 레벨의 점수가 다음 레벨의 점수보다 크거나 같으면 감소시킴 decreases += (levels[i] - levels[i + 1] + 1) levels[i] = levels[i + 1] - 1 return decreasesdef main(): import sys ..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 4일차 백준 14916 거스름돈

https://www.acmicpc.net/problem/14916 def min_coins(n): # 5원 동전을 최대한 많이 사용 count_5 = n // 5 # 남은 금액을 2원 동전으로 거슬러 줄 수 있는지 확인 while count_5 >= 0: remaining = n - (count_5 * 5) if remaining % 2 == 0: count_2 = remaining // 2 return count_5 + count_2 count_5 -= 1 return -1 # 거슬러 줄 수 없는 경우def main(): import sys input = sys.stdin..

카테고리 없음 2024.08.01