본문 바로가기
728x90

java9

[Java] 클래스로더(Class loader) 자바 애플리케이션 실행 과정 컴파일러를 통하여 자바 소스파일인. java를 바이트코드(.class) 파일로 변환한다. 클래스 로더가 요청에 의한 바이트코드(.class)를 JVM 메모리에 로드한다. 실행 엔진이 JVM 메모리에 실행하고자 하는 바이트코드가(.class)를 실행하며 만약 바이트코드(.class)가 없으면 클래스 로더에게 요청하여 바이트코드(.class)를 로드한다. 클래스 로드 과정 첫번째. 로딩 과정 바이트코드(.class) 파일을 메모리에 로드하는 것으로 클래스 로드의 가장 주요한 작업이다. 사용시점(필요 시점)에 의해 바이트코드를 JVM 메모리에 로드한다. 두 번째. 링킹 과정 로드된 클래스나 인터페이스 등을 검증하고 준비하고 해석하는 과정을 거치는 단계이다. 검증 단계 : 바이트코드.. 2022. 11. 10.
[Spring] Amazon MQ (Active MQ) : 개발 [Spring] Amazone MQ (Active MQ) : 개념편을 이어서 실제 Spring Boot + Active MQ 개발에 대해서 기록해보겠다. 우선적으로 Active MQ 서버가 이미 구성되어 있다는 가정하에 Spring Framework에서 어떻게 설정하고 개발했는지에 대해 살펴보겠다. AWS Amazon MQ Document에 예제가 있으니 참고해도 좋다. Gradle 설정 먼저 gradle에 dependncies를 아래와 같이 'activemq-client'와 'activemq-pool'를 설정해준다. implementation 'org.apache.activemq:activemq-client:5.15.8' implementation 'org.apache.activemq:activemq-.. 2022. 11. 9.
[Java] JDK11 특징 Amazon Linux2에서 JDK8을 지원하지 않을뿐더러 앞으로도 JDK8은 더 이상 지원되지 않으며 사용자는 JDK11로 전환을 권고하고 있다. Amazon Linux1도 deprecated 되므로 Amazon Linux2로 변경을 하면서 자연스럽게 JDK11로 업그레이드를 해야 했다. Amazon Linux2 & JDK11로 변경하면서 다행히 아무런 문제 없이 전환을 완료되었다. 아마 JDK8에서 사용되었던 API 및 패키지에 대한 변경 건은 없어 보였다. 이번 전환 작업을 하면서 문뜩 든 생각이 JDK11에 대한 특징을 잘 알지 못한 것이었다. 그래서 이 참에 특징에 대해서 스터디 후 기록해야겠다. 중요한 특징부터 살펴보면 ZGC (Z Garbage Collectors) 이번 JDK11에서 GC에.. 2022. 11. 9.
[Java] Reflection으로 객체 비교 개발을 진행하다 보면 두 개의 객체가 같은지 비교를 해야 할 경우가 많다. PrimitiveType(기본 자료형) 또는 ReferenceType(참조 자료형) 객체를 비교할 경우 equals 또는 ==으로 비교를 한다. ex) PrimitiveType(기본 자료형) int a = 10; int b = 10; a == b // true ex) ReferenceType(참조 자료형) String s1 = "hello"; String s2 = "hello"; s1.equals(s2); // true 그렇다면 많은 자료형들을 가지고 있는 객체 간의 비교는 어떻게 하는게 좋을까? 예를 들어, 사람 정보가 담긴 사람 클래스가 있다고 가정해보자 사람 클래스에는 이름, 나이, 사는 곳, 성별이 있다. ex) Perso.. 2022. 11. 8.
300x250