Java ㅤㅤㅤㅤㅤ By gobukgol JMH 사용해보기 이펙티브 자바를 읽던도중 JMH 라는 용어가 나왔다. 책에서는 간단하게 '자바코드의 상세한 성능을 알기 쉽게 보여주는 마이크로 벤치마킹 프레임워크다.' 라고 설명한다. 새로운 녀석이 등장하기도 하였고 JMH에 대한 이펙티브 자바 질문 이슈가 달렸기에 JMH에 대해 간단하게 알아보고 적용하기로 하였다. JMH란? JMH는 OpenJDK에서 개발한 성능 측정 툴이다. 특정 메소드의 성능을 측정하는 식으로 사용할 수 있고 실제 테스트하기전 워밍업 과정과 실제 측정 과정을 수행하는데 각 과정의 실행 수를 제어할 수 있고, 측정 후 결과로 나오는 시간의 단위를 지정하는 기능도 제공한다. 적용하기 JMH 적용을 gradle을 이용하여 적용하기로 하였다. 다음부터 설명할 JMH gradle 적용은 다음을 참고하여 적.. 스터디/자바 2020. 6. 28. ㅤㅤㅤㅤㅤ By gobukgol 자바의 스레드(Thread) 저번 java.concurrent 패키지의 동기화 장치들을 살펴보면서 스레드에 대해 다시 한번 봐야겠다는 생각이 들었다. 스레드에 대해 간단하게 알아보자. 1. 프로세스와 스레드 프로세스란 운영체제에서 실행 중인 하나의 어플리케이션을 의미한다. 프로그램을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당 받아 해당하는 코드를 실행하는 작업의 단위를 프로세스라 한다. 그렇다면 스레드는 무엇일까? 스레드는 프로세스 안에서 독립적으로 실행되는 흐름의 단위를 말한다. 그리고 하나의 프로세스가 여러 스레드를 실행하는 것을 멀티 스레드라고 한다. 2. 스레드 생성과 실행 스레드의 생성방법은 크게 2가지가 있다. 1. Thread 클래스를 상속받아 생성 public class ExtendThread extends .. 스터디/자바 2020. 4. 27. ㅤㅤㅤㅤㅤ By ds_chanin 아이템[14] - Comparable을 구현할지 고려하라 아이템[14] - Comparable을 구현할지 고려하라 Comaparable을 구현하면 compareTo를 재정의 하여 손쉽게 컬렉션을 정렬할 수 있다. 따라서 알파벳, 숫자, 연대와 같이 순서가 명확한 클래스를 작성한다면 반드시 Comparable을 구현하도록 하자. Comparable은 compareTo만 가지고 있어 Functional Interface로 착각할 수 있지만 그렇지 않다. Functional Interface은 람다식에 적합한 구조여야 하기 때문이다. * 람다식은 객체 내부의 멤버변수를 우선 순위에 따라 비교하는 Comaprable을 구현하기에 적합하지 않기때문이다. compareTo 메서드의 일반 규약 앞장에서 살펴본 equals의 규약과 비슷하다. 먼저 짚고 넘어갈 compare.. Reading Record/이펙티브자바 2020. 2. 7. ㅤㅤㅤㅤㅤ By gobukgol 자바 Garbage Collection Java Garbage Collection 이펙티브 자바의 [아이템7]을 읽고 스터디원들과 얘기하면서 가비지 콜렉터의 메모리 해제 대상이 무엇인지 궁금하게 되었다. 그래서 자바의 가비지 콜렉션에 대해 알아보았다. Garbage Collection 가비지 콜렉션이란 JVM의 힙 영역에서 사용 중인 객체와 그렇지 않은 객체를 식별하고 사용하지 않는 객체를 삭제하는 프로세스를 말한다. 여기서 사용하지 않는 객체는 어떻게 판별할까? 여기서 자바의 GC는 'Reachability' 라는 개념을 사용한다. 어떤 객체에 유효한 참조가 존재하면 'Reachable' 로 그렇지 않다면 'Unreachable'로 구별하고 Unreachable한 객체를 GC의 대상으로 본다. 객체는 다른 여러 객체를 참조하고 그 객체들도 .. 스터디/자바 2020. 1. 31. 이전 1 다음