[JAVA] 가비지 컬렉션(Garbage Collection)
·
Programming Language/JAVA
가비지 컬렉션(Garbage Collection, GC) 자바의 메모리 관리 방법 중의 하나로 JVM의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체를 모아 주기적으로 제거하는 프로세스 가비지 컬렉터(Garbage Collector) 가비지 컬렉션을 수행하는 주체 가비지 컬렉션의 필요성 가비지 컬렉션을 이용하게 되면 프로그래머가 동적으로 할당한 메모리 영역 전체를 완벽하게 관리하지 않아도 되고, 버그나 불필요한 작업을 해소할 수 있는 장점 하지만, 동적으로 할당된 메모리가 사용되지 않는 경우엔 문제가 발생 메모리 해제 시점을 추적해야 하는데 비용이 들게 되고, 프로그래머가 수동으로 메모리 할당과 해제를 일일이 해줘야함. 그러므로 가비지 컬렉션이 필요 가비지 컬렉션의 동작 매커니..
[JAVA] JVM
·
Programming Language/JAVA
JVM(Java Virtual Machine) 자바 가상 머신 운영체제에 종속적이다. 자바와 운영체제 사이에서 중개자 역할을 수행하며, 자바가 운영체제에 구애받지 않고 프로그램을 실행할 수 있도록 도와줌 가비지 컬렉터를 사용한 메모리 관리도 자동으로 수행하며, 다른 하드웨어와 다르게 레지스터 기반이 아닌 스택 기반으로 동작 자바 프로그램의 실행 단계 자바 컴파일러에 의해 자바 소스 파일은 바이트 코드로 변환됨 바이트 코드를 JVM에서 읽어 들인 다음에, 복잡한 과정을 거쳐 어떤 운영체제 간에 프로그램을 실행할 수 있도록 만드는 것 ⇒ 만약, 자바 소스 파일은 리눅스에서 만들었고 윈도우에서 이 파일을 실행하고 싶다면, 윈도우용 JVM을 설치만 하면 됨 JVM 메모리 구조 자바 프로그램의 실행 단계 Garb..
[프로그래머스 Lv0.] 181927번 마지막 두 원소 (JAVA)
·
Coding Test/프로그래머스[JAVA]
1. 문제 문제 설명 정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num_list의 길이 ≤ 10 1 ≤ num_list의 원소 ≤ 9 입출력 예 num_list result [2, 1, 6] [2, 1, 6, 5] [5, 2, 1, 7, 5] [5, 2, 1, 7, 5, 10] 2. 풀이과정 class Solution { public int[] solution(int[] num_list) { int[] answer = new int[num_list.length + 1]; for(int ..
[프로그래머스 Lv0.] 120923번 연속된 수의 합 (JAVA)
·
Coding Test/프로그래머스[JAVA]
1. 문제 연속된 수의 합 문제 설명 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요. 제한사항 1 ≤ num ≤ 100 0 ≤ total ≤ 1000 num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다. 입출력 예 num total result 3 12 [3, 4, 5] 5 15 [1, 2, 3, 4, 5] 4 14 [2, 3, 4, 5] 5 5 [-1, 0, 1, 2, 3] 2. 풀이과정 class Solution { public int[] solution(int num, i..
[프로그래머스 Lv0.] 120924번 다음에 올 숫자 (JAVA)
·
Coding Test/프로그래머스[JAVA]
1. 문제 문제 설명 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. 제한사항 2 < common의 길이 < 1,000 -1,000 < common의 원소 < 2,000 common의 원소는 모두 정수입니다. 등차수열 혹은 등비수열이 아닌 경우는 없습니다. 등비수열인 경우 공비는 0이 아닌 정수입니다. 입출력 예 common result [1, 2, 3, 4] 5 [2, 4, 8] 16 2. 풀이과정 class Solution { public int solution(int[] common) { int answer = 0; if((common[1] - common[0]) == (common[2] - com..
[프로그래머스 Lv0.] 120863번 다항식 더하기 (JAVA)
·
Coding Test/프로그래머스[JAVA]
1. 문제 문제 설명 한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다. 제한사항 0 < polynomial에 있는 수 < 100 polynomial에 변수는 'x'만 존재합니다. polynomial은 양의 정수, 공백, ‘x’, ‘+'로 이루어져 있습니다. 항과 연산기호 사이에는 항상 공백이 존재합니다. 공백은 연속되지 않으며 시작이나 끝에는 공백이 없습니다. 하나의 항에서 변수가 숫자 앞에 오는 경우는 없습니다. " + 3xx ..