Yeji's Tech Notes
반응형
article thumbnail
[JAVA] 가비지 컬렉터(GC) 동작원리
언어/JAVA 2023. 4. 13. 20:40

가비지 컬렉터(Garbage Collector)란? 가비지 컬렉터는 사용되지 않는 메모리를 대신 회수해주는 프로세스 입니다. 가비지 컬레션은 JVM 힙 공간에서 사용할 수 있는 모든 객체를 추적하고 사용하지 않는 객체들은 제거합니다. 가비지 컬렉터는 기본적으로 Mark and Sweep 두가지 단계로 동작합니다. Mark - 가비지 컬렉터에서 사용 중인 메모리와 사용하지 않는 메모리를 식별 Sweep - Mark에서 확인한 사용하지 않는 메모리를 제거 사용되지 않는 메모리 공간은 GC에서 자동으로 처리되므로 molloc/free의 별도 메모리 할당,해제 처리를 하지 않아도 됩니다. C언어 같은 경우에는 malloc, free를 통해 개발자가 직접 메모리 공간할당을 합니다. https://www.geeks..

[Java] 우선순위 큐 (PriorityQueue) 개념 , Comparable
언어/JAVA 2023. 2. 2. 21:50

우선순위 큐 (Priority Queue) 우선 순위 힙을 기반으로 하는 무제한 우선 순위 대기열입니다. 우선순위 대기열의 요소는 사용되는 생성자에 따라 natural ordering에 따라 정렬되거나 대기열 구성시 제공되는 Comparator에 의해 정렬됩니다. 우선 순위 대기열에서는 null 요소를 허용하지 않습니다. natural ordering에 의존하는 우선 순위 큐는 또한 비교할 수 없는 객체의 삽입을 허용하지 않습니다. 우선순위 큐 선언 import java.util.PriorityQueue; //import //int형 priorityQueue 선언 (우선순위가 낮은 숫자 순) PriorityQueue priorityQueue = new PriorityQueue(); //int형 prior..

[Java] 객체 정렬하기 - Comparable
언어/JAVA 2023. 2. 1. 15:34

안녕하세요! 알고리즘을 풀다보면 좌표를 정렬하거나 객체를 정렬해야되는 경우가 있습니다. 예) (x,y)좌표 값에서 x 좌표를 기준으로 정렬하기, 키 몸무게가 입력된 학생들 중 키 순으로 정렬하기 이런 경우 키값, x좌표 기준으로 정렬하기 위해서 반복문을 사용해 정렬하는 경우도 있지만 이번 글에서는 Comparable을 이용해 정렬하는 방법을 정리해보았습니다! 클래스 생성 해당 예시는 좌표정렬을 예시로 들었습니다. 우선 x,y좌표를 넣을 Point 객체를 생성해줍니다. class Point { int x; int y; Point(int x, int y){ this.x = x; this.y = y; } } 테스트할 데이터도 미리 생성해줍니다. 예시로 List안에 5개 정도의 좌표값을 넣어주었습니다. clas..

[RemindJAVA]-오버로딩vs오버라이딩
언어/JAVA 2022. 1. 17. 03:09

* 이 글은 자바의정석에서 읽은 내용을 제가 정리한 글입니다. 오버로딩(Overloading) - 오버로딩? : 한 클래스 내에 같은 이름의 메서드를 여러개 정의하는 것 - 오버로딩(Overloading)의 사전적의미 : '과적하다' 즉 많이 싣는 것, 하나의 메서드 이름으로 여러기능을 구현 조건 1. 메소드 이름이 같아야한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. * 오버로딩 된 메서드 들은 매개변수에 의해서만 구별될 수 있으므로 반환타입은 오버로딩을 구현하는데 아무런 영향을 주지 못함. - 오버로딩의 예 println메서드 println 메서드를 호출할때 매개변수로 지정하는 값의 타입에 따라서 호출되는 println메서드가 달라진다. PrintStream클래스에는 어떤종류의 매개변수를 지정..

java - 시간, 분 차이 구하기
언어/JAVA 2021. 3. 28. 11:02

1. 가정 주어진 시간(LocalDateTime)으로 현재시간 +-5분사이에 존재하는지 판단하는 케이스 2. 특이사항 날짜는 다를 수 있다. 시간으로만 판단해야된다.. 처음엔 단순하게 LocalDateTime.getMinute() 5 으로 판단하였다.. 이럴때 생기는 문제는 8시00분일때가 문제가 됐다.. 00분일때는 55분 05분 사이일때를 판단해야되는데 이 상황판단이 불가능 했을뿐만아니라 시간도 같이 판단해줘야되기 때문에 불가능한 케이스라고 판단하였다.. 밀리세컨즈, 아니면 calendar를 사용해서 차이를 구하려고 했지만, 날짜가 다르다는 변수가 존재해 이또한 불가능 했다... 그래서, LocalTime의 .isBefore(), .isAft..

반응형