JVM/Java

JVM/Java

[java] BigDecimal의 equals 와 compareTo with kotlin

😲 서론 BigDecimal 을 통해 연산자를 통해 값을 비교하다가 조심해야될 것을 발견했다. 🫡 본론 결과의 값이 1인지를 확인하려고 했는데, 내 생각과 다르게 false가 나왔다. fun main() { val result = BigDecimal("1.00") println(result == BigDecimal.ONE) // false } equals의 java doc 확인해보니 아래와 같은 설명이 적혀있었다. equals Javadoc Compares this BigDecimal with the specified Object for equality. Unlike compareTo, this method considers two BigDecimal objects equal only if they a..

JVM/Java

[Gradle] 버전 별 Java, Kotlin 호환 버전 확인

빌드툴인 gradle 또한 java, kotlin이 호환되는 버전이 버전 별로 달랐다.. https://docs.gradle.org/7.6/userguide/compatibility.html Compatibility Matrix Gradle is tested with Android Gradle Plugin 4.1, 4.2, 7.0, 7.1, 7.2, 7.3 and 7.4. Alpha and beta versions may or may not work. docs.gradle.org https://gradle.org/releases/ Gradle | Releases Find binaries and reference documentation for current and past versions of Gradl..

JVM/Java

[Java] Gradle, Groovy Gradle, Kotlin Gradle

🙂 서론 이번 Project 에서 코드는 java를 사용하고, 빌드툴은 Kotlin Gradle DSL 을 사용하기로 하였습니다. Gradle에 대해서도 한 번 정리하면 좋을 것 같아서 글을 적어봅니다. 😁 본론 Gradle 이란? https://github.com/gradle/gradle Gradle 은 빌드 자동화 및 다국어 개발 지원에 중점을 둔 빌드 도구입니다. 모든 플랫폼에서 소프트웨어를 Building, Testing, publishing, deploying 하는 경우 Gradle 은 코드 컴파일 및 패키징에서 웹 사이트 게시에 이르기까지 전체 개발 수명 주기를 지원할 수 있는 유연한 모델을 제공합니다. Gradle은 Java, Scala, Android, Kotlin, C/C++ 및 Gro..

JVM/Java

[Java] GC Implementations - 가비지 컬렉션 구현

😎 서론 이전 글을 통해 JVM 내에서 GC가 어떻게 동작하는지를 학습하였다. 하지만, GC도 여러 종류로 구현을 한 것을 알게 되었고, 그 부분에 대해서 다뤄보려 한다. 이전글 - [Java] GC (Garbage Collection) ?? [Java] GC (Garbage Collection) ?? 😎서론 Java가 유명해진 큰 이유 중 하나로는 역시 다른 언어와는 다르게 GC라는 녀석이 있기 때문이다. 그렇기에 Java를 제대로 이해하고 사용하려면 GC가 무엇이고, 어떤 걸 하는지, 어떻게 무엇 kdhyo98.tistory.com 😁 본론 JVM에서 GC 구현은 5가지의 유형이 존재합니다. - Serial Garbage Collector - Parallel Garbage Collector - CMS..

JVM/Java

[Java] GC (Garbage Collection) ??

😎서론 Java가 유명해진 큰 이유 중 하나로는 역시 다른 언어와는 다르게 GC라는 녀석이 있기 때문이다. 그렇기에 Java를 제대로 이해하고 사용하려면 GC가 무엇이고, 어떤 걸 하는지, 어떻게 무엇을 튜닝해야 할지를 알아야 Java 개발자로서 성장하는 데에 필수 조건이라 생각하기에 한번 정리를 해본다! 😏본론 GC(Garbage Collection) ? 직역하자면, 쓰레기 수거를 의미합니다. 결국 불필요한 즉, 사용되지 않는 메모리에 할당된 객체들을 직접 정리해주는 역할을 하고 있습니다. 한 줄로 정의하자면, Heap 영역에서 더이상 사용되지 않는 객체들을 메모리에서 제거합니다. GC가 왜 필요하지? GC가 없는 다양한 언어들에서는 메모리를 직접 정리해주어야 합니다. 그렇기 때문에 객체를 하나하나 연..

JVM/Java

[Java] 22년 부터는 Integer 타입을 사용할 때 조심하자!

😲서론 21년까지 잘 작동하던 Integer.valueOf() 에서 NumberFormatException이 발생했다. 🤔본론 (코드는 보기 쉽게 하기 위해 실제 코드와 다르게 작성하였습니다.) public static void main(String[] args) { String value = "2201060002"; String defaultValue = "221060001"; Optional.ofNullable(value) .map(Integer::valueOf) .map(num -> num += 1) .map(String::valueOf) .orElse(defaultValue); } 간단한 패턴 값을 만드는 로직이었다. 패턴 - YYMMDDXXXX 해당일자의 고유한 값을 저장하기 위해서, value..

JVM/Java

[Java] static inner class 는 언제 로드가 될까? 로드와 초기화?

😣서론 최근 싱글톤을 직접 구현하여 사용하게 되었고, 스레드 세이프를 하기 위해서 static inner class를 사용하게 되었다. public class LottoTicketBooth { private LottoTicketBooth() { } private static class LottoTicketBoothHolder { private static final LottoTicketBooth LOTTO_TICKET_BOOTH = new LottoTicketBooth(); } public static LottoTicketBooth getInstance() { return LottoTicketBoothHolder.LOTTO_TICKET_BOOTH; } } 위와 같이 사용하게 된다면 LottoTicketB..

Hyo Kim
'JVM/Java' 카테고리의 글 목록