반응형
- Optional 사용에 대한 고민2024-01-21 23:17:04java에서 optional은 null이 아닌 값을 포함하거나 포함하지 않는 container object인데 값이 있으면 isPresent()같은 멤버 메서드를 통해 값이 존재할 경우 값을 return 받는 등의 방식으로 사용할 수 있다. empty() : 값이 없다는 것을 표현하기 위한 optional of(): non-null value에 대한 표현을 위한 optional(null일시 NPE) ofNullable(): null일수도 있는 value에 대한 표현을 위한 optional 이러한 optional를 사용하는 것에 대한 비용이 발생하는 것도 무시하지 못하기 때문에 어느 상황에서 사용할지에 대해 고민이된다. 풀고자 하는 문제가 무엇인가? optional은 자바 에서 NPE를 감소시키기 위한 시..
- java exception performance2024-01-14 18:22:19java로 코드를 작성할때 try-catch를 상당히 많이 사용하는데 이 try-catch문에서 발생하는 퍼포먼스 문제에 대해 알아보았다. 참고 링크 비교 상황 1 예외가 발생하지 않은 상황 2 예외를 던지고 잡는 상황 3 예외를 던지는 상황 4 에외를 던지고 잡지만 예외를 Stack Trace에 포함시키지는 않는 상황 5 예외를 던지고 잡아서 Stack Trace를 풀어보는 상황 Benchmark Mode Cnt Score Error Units ExceptionBenchmark.createExceptionWithoutThrowingIt avgt 10 16.605 ± 0.988 ms/op ExceptionBenchmark.doNotThrowException avgt 10 0.047 ± 0.006 ms/o..
- Java Functional하게 사용하기 - 52022-02-17 00:38:53함수형 프로그래밍을 공부하면서 scope에 대한 내용을 언급하는데 보통 scope는 변수에 접근할 수 있는 범위로 생각을 하죠 lexical scope는 뭘까요 그럼? 이는 함수 안에 함수가 있을 때 내부 함수에서 외부 함수에 있는 변수에 접근이 가능한 범위를 lexical scope라고 합니다. 위에서 처럼 내부함수에서 외부함수의 변수를 사용해서 "Hello World"라는 문자열을 만들어서 반환했는데 이렇게 내부 함수가 사용한 외부 함수의 변수들은 계속 존재하게 되고 이렇게 lexical scope를 포함하는 함수를 closure라고 한다. 이때 내부 함수가 사용한 외부 함수의 변수들은 내부 함수 선언 시점에서 변할 수 없어서 final로 만들지 않아도 암묵적인 final이 된다. 이런 closure..
- Java Functional하게 사용하기 - 42022-02-17 00:13:19Stream의 종결 처리 중간처리를 통과한 Stream 데이터들을 종결 처리로 합을 구하거나 , 최대 최소 값을 구하건, 리스트로 다시 모으는 등의 종결 작업을 할 수 있는데 이번에는 Stream의 종결 처리에 대해 알아 보겠습니다. 우선 최대, 최소, 개수를 얻을 수 있는 종결 처리 메서드를 보면 이렇게 Comparator를 람다식으로 파라미터로 전달해 Optional 반환값을 받을 수 있습니다. min 또한 마찬가지이고 count를 보자면 이런식으로 filter를 통과한 Stream 데이터들의 개수를 반환하는 것을 볼 수 있습니다. 다음은 allMatch, anyMatch를 보겠습니다. allMatch는 Stream 안의 모든 데이터가 predicate을 만돈해야 true를 반환하고 anyMatch는..
반응형