목록자바 (47)
종식당

GC(Garbage Collection)는 자바의 메모리 관리 방법의 하나이며, JVM의 힙 영역에서 동적으로 할당했던 메모리 중에서 필요 없어진 객체를 주기적으로 제거하는 것을 의미한다. GC는 특정 객체가 사용 중인지 아닌지 판단하기 위해서 도달 가능성(Reachability)이라는 개념을 사용 한다. 특정 객체에 대한 참조가 존재하면 도달할 수 있으며, 참조가 존재하지 않는 경우에 도달할 수 없는 상태로 간주한다. 이때, 도달할 수 없다는 결론을 내린다면 해당 객체는 GC의 대상이 된다.도달 가능성은 어떻게 판단하나요? 🤓힙 영역에 있는 객체에 대한 참조는 4가지 케이스가 존재하는데, 힙 내부 객체 간의 참조, 스택 영역의 변수에 의한 참조, JNI에 의해 생성된 객체에 대한 참조(네이티브 스택 ..

특정 메서드를 호출하는 경우 인자로 전달하는 방법은 크게 2가지가 존재한다. 값에 의한 호출 (Call By Value), 참조에 의한 호출(Call By Reference)이 이에 해당된다.🎋 Call By Value값에 의한 호출은 메서드를 호출할 때, 값 자체를 넘겨주는 방식이다. 메서드를 호출하는 함수의 변수와 호출된 함수의 파라미터는 서로 다른 변수이다.🎍 Call By Reference참조에 의한 호출은 메서드를 호출할 때, 참조를 직접 전달하는 방식이다. 참조를 직접 전달하기 때문에 호출하는 함수의 변수와 호출된 함수의 파라미터는 동일한 변수이다. 따라서, 파라미터를 수정하는 경우 그대로 원본에도 영향을 미친다.자바는 어떤 방식을 채택하나요? 🤓자바는 Call By Value만 존재한다..

https://www.acmicpc.net/problem/5427📝 문제 설명사람은 #(벽)을 이동할 수 없으며 *(불)을 피해서.(빈 공간)만을 이동할 수 있다. 사람은 불이 있는 칸과 이제 불이 번지려는 칸을 피해서 경계선에 도착해 탈출해야 한다. 사람은 불이 먼저 이동하고 그 후에 이동해야 한다. 이는 1초가 걸린다. 탈출하는데 가장 빠른 시간을 출력하고 탈출을 하지 못하면 IMPOSSIBLE을 출력하면 된다.✨ 제출 코드import java.io.*;import java.util.*;public class Main{ static int [] dx = {-1,1,0,0}; static int [] dy = {0,0,-1,1}; static int w,h; static char..

https://www.acmicpc.net/problem/14503📝 문제 설명방의 크기 N x M과 로봇 청소기가 있는 좌표 (r, c)가 주어지고 바라보는 방향 d가 주어진다. 해당 칸에 0이 적혀 있으면 청소가 되지 않은 빈칸이고 1이 적혀 있으면 벽이 있는 것이다. 로봇 청소기가 청소하는 영역의 개수를 출력하면 된다.✨ 제출 코드import java.io.*;import java.util.*;public class Main{ static int N; static int M; static int r,c,d; static int [][] graph; static boolean [][] visited; static int [] dx = {-1,0,1,0}; //북동남서..

https://www.acmicpc.net/problem/1931📝 문제 설명먼저 회의의 수가 주어지고 회의 수만큼의 회의의 시작 시간과 끝나는 시간이 각각 주어진다. 회의실을 사용하는데 회의가 겹치지 않으면서 최대한 얼마나 사용할 수 있는지 구하면 된다.✨ 제출 코드import java.io.*;import java.util.*;public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); ..