☕ Java

    [Kotlin] Optional vs Kotlin Nullable 문법 비교하기

    번외 Optional을 안쓰고 전부 Kotlin 문법으로 하기 val user = userRepository.findByUsername(username) .orElseThrow { CannotFindUserException(username) } val user = userRepository.findByUsername(username) ?: throw CannotFindUserException(username) Optional optionalValue = // Optional 타입의 값 String result = optionalValue.orElse("default"); // 값이 존재하면 해당 값을 사용하고, 값이 없으면 "default"를 사용 Optional optionalValue = // Opt..

    java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter

    문제 java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 해결방법 gradle implementation 'javax.xml.bind:jaxb-api:2.3.0' maven javax.xml.bind jaxb-api 2.3.0 이유 DatatypeConverter가 해당 모듈에 있을만한 기능이 아니고 JAXB에 있을 기능이라서 모듈간의 분리를 위해서 기능이 분리가 되었다. 그러므로 Java 9 이후부터는 DatatypeConverter 사용을 위해선 jaxb를 위처럼 추가해준다.

    [Java] JVM Warmup

    이 글은 아래의 카카오 테크 유튜브에 나온 영상을 기반으로 정리해본 것이다.소개 위의 영상의 요지는 Java Application을 시작할 때 초기에 JIT Compiler가 충분히 캐시되지 않은 상태에서 실 사용자들의 인입이 너무 많아 쓰레드가 묶여서 속도 저하가 발생된다는 것이다. JVM 흐름자바 애플리케이션의 프로세스 흐름은 글로 설명하면 아래와 같다. 우선 .java 파일을 자바 컴파일러를 통해 컴파일을 하면 바이트 코드 형식의 .class 파일이 생긴다. 그리고 .class 파일이 묶인 .war나 .jar 파일을 JVM이 실행할 수 있는데 해당 파일 안에있는 .class 파일을 위의 그림처럼 Class Loader가 처음 실행시키고 후에 Execution Engine에 의해 Interpreter..

    [Java] Object, Objects 차이

    Object와 Objects를 비교하는 것은 올바르지 않을 수 있습니다. 왜냐면 두 개는 서로 비슷하게 사용되지 않기 때문입니다. 그럼에도 불구하고 비교를 하게 되는 이유는 간혹 블로그 글이나 정보성 글을 보다보면 Objects를 Object로 쓴다거나 혹은 그 반대로 사용해서 혼동을 주는 경우가 다분히 있기 때문입니다. Object Object 클래스는 Java의 모든 클래스의 기본 클래스를 말합니다. Objects Objects 클래스는 Java 7에서 추가된 유틸리티 클래스입니다. Objects 클래스는 null-safe한 메서드들을 제공하여, 객체 비교, null 처리 등에 편리하게 사용할 수 있도록 합니다. Objects 클래스에서 제공하는 메서드에는 requireNonNull(), equals..