JVM/Java

JVM/Java

[Java] List Null 체크 하는 방법들

🙄서론 리스트 null을 체크하는 방식이 여러 방법이 있어서 정리할 겸 작성한다. 소개할 List null 체크 방식은 아래와 같다. - xxxxList == null - xxxxList.size() == 0 - xxxxList.isEmpty() - CollectionUtils.isEmpty(xxxxList) 테스트 방식은 2가지로 나눠서 할 예정이다. 1. List가 null일 경우 2. List가 생성된 경우 😀테스트 코드 @Test @DisplayName("nullList체크") void nullListTest() { List nullList = null; assertTrue(); // 코드작성 } @Test @DisplayName("newList체크") void newListTest() { Lis..

JVM/Java

[Java] 자바10부터 나온 var

😉서론 회사 내 모든 프로젝트가 자바8에서 자바11로 올리게 되었다. 그래서 현재 자바8 기준으로 되어 있는 소스코드들이 많았고, 자바 8 이후에 나온 기술들을 하나하나 도입을 준비 중에 있다. 이후 sonarQube(소나큐브) 라는 소스코드 품질을 높여주는 툴을 도입하게 되었고, 여기 이슈에서 var 관련 이슈가 엄청 많이 나왔다. 그래서 도입 전 var가 뭔지 어떻게 쓰면 좋은지에 대해 알아보고 결정해야 하기에 알아보게 되었다. 🤷‍♂️자바8 이전과 자바10 이후 차이점 // 자바8 이전 String message = "Good bye, Java 9"; Map map = new HashMap(); // 자바10 이후 var message = "Hello Java 10"; var idToNameMap ..

JVM/Java

[Java] Optional – orElse() vs orElseGet() 차이점 알고 쓰자.

* 2022.03.01 내용 수정 - orElse() 를 사용하는 경우 추가 - orElse() orElseGet() 작동원리 수정 😉서론 자바 8부터 지원하게 된 optional은 NullPointerException 에 대한 문제를 해결하기 위해 나왔습니다. 하지만 그런데도 null이 발생할 수 있고, null 체크를 해야만 하는 경우가 빈번합니다. 그러므로 null일 시 default 값을 넣어줄 수 있는데 그중에서 orElse()와 orElseGet() 이 존재합니다. 이를 그냥 이것저것 사용할 수도 있지만, 알고 쓰는 것과 모르고 쓰는 것은 천지 차이기 때문에 한 번 정리해보았습니다. 🤔둘의 차이? public T orElse(T other) public T orElseGet(Supplier

JVM/Java

[Java] Map getOrDefault 를 활용하자.

getOrDefault 를 모르기 전까지 방식 1. 일단 get으로 원하는 값을 가져오고, 2. 있는지 없는지 null 체크 하고, 3. null 이면 새로 만들어준다. getOrDefault를 안 이후 1. 가져오고, 없으면 새로 만들어준다. 분명 잘 쓰고 있다고 생각했지만, 내가 모르는 많은 라이브러리등이 존재한다.. 계속 알아갈 때 마다 재밌넹

JVM/Java

[Java] ArrayList 조건 삭제 'removeIf'

서론 arrayList 경우 내가 삭제하고 싶은 애를 삭제하고 싶은 경우 for문을 돌리고, if문을 통해 삭제하는 경우가 있었다. 하지만 자바8부터 생긴 removeIf를 사용하면 람다식을 이용하여 간단하게 삭제할 수 있다. 본론 자바8에 생긴 람다 중 Predicate 를 사용하여 list에서 원하는 애를 삭제하는 방식을 이용하고 있다. 이는 stream에 있는 filter랑 같은 원리이다. 리턴 값은 boolean으로 하나라도 삭제가 되면 true, 삭제가 없으면 false를 반환한다. 예제 위처럼 removeIf를 통해 조건에 맞는 데이터들을 한 번에 정리할 수 있다.

JVM/Java

[Java]예외(Exception)관련 정리

- 첫 작성일 : 3월 20일 velog 블로그 서론 트랜잭션에 대해 공부하다보니 예외를 빼놓을 수 없어서 한 번 정리한다. 예외(Exception) 란? 예외는 크게 두 종류로 나뉘게 된다. Checked Exception 와 Unchecked Exception 그리고 예외와 별개로 오류(Error)가 있다. 예외란 개발자가 로직을 잘못 짰거나 혹은 사용자가 잘못된 값을 넘겨 정상적인 프로그램 흐름에 벗어나는 행위를 말한다. 그래서 미리 예측을 하여 예외를 잡을 수 있다. 오류는 하드웨어에서 문제가 발생하는 경우도 있고, 완전 잘못된 로직을 짠 경우 등 시스템 레벨에서 발생하는 비정상적인 행위이기 때문에 이를 미리 예측해서 막을 수도 신경을 쓸 필요도 없다. Checked Exception / Unch..

JVM/Java

[Java]BeanUtils.copyProperties를 사용해보자

- 첫 작성일 : 21년 2월 11일 velog 블로그 BeanUtils.copyProperties ? 스프링에서 제공해주는 메소드로서 객체를 쉽고 간결하게 복사할 수 있게 해준다. 언제 사용하지? 예를들어 객체를 수정하기 위해 파라미터로 값을 받았을 때 필드가 많으면 많을 수록 setter의 횟수가 늘어나고 코드의 길이도 늘어나기 때문에 가독성과 소요시간이 떨어지게 됩니다. 이때 BeanUtils.copyProperties 메소드를 통해 한줄로 해결할 수 있습니다. 또한, 그대로 복사하지 않고 변경하지 않은 것들을 선택해서 원하는 것만 복사하고 싶을 때에도 사용하면 좋습니다. 사용방법 copyProperties(Object source, Object target) source - 원본 객체 target..

JVM/Java

[Java]String Format 사용법

- 첫 작성일 : 21년 1월 17일 velog 블로그 Stirng Format 문자열의 형식을 원하는대로 표현해주는 메소드로 유용하게 사용되고 있다. 표현가능한 데이터 타입 모든 인수 적용 가능(ex - stirng, int, Integer, Boolean ...) %b (인수가 null이면 false 아니면 true 반환 / Boolean) %h (인수가 null이면 null 아니면 16진수 반환 / Integer.toHexString) %s (인수가 null이면 null 아니면 문자열 반환 / toString()) 숫자 (char, Character, byte, Byte, short, Short, int, Integer) %c (char, byte, short ... 을 받아 유니코드로 반환) 정수..

Hyo Kim
'JVM/Java' 카테고리의 글 목록 (3 Page)