반응형
- 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..
- BigDecimal 정리2024-01-07 23:44:15생성 BigDecimal로 생성할때는 생성자, factory method로 생성이 가능한데 방식에 따라 유의해야할 부분이 있다. 생성자 생성 방식 String num = "3140.000001"; double numDouble = Double.parseDouble(num); BigDecimal numDecimal = new BigDecimal(num); BigDecimal numDoubleDecimal = new BigDecimal(numDouble); System.out.println(numDecimal); System.out.println(numDoubleDecimal); 생성자 생성방식은 String 값으로 생성하는 것을 권장 생성자 파라미터로 소수점 값을 그대로 넘기기 때문에 결과 또한 기대값과 ..
- Java Functional하게 사용하기 - 52022-02-17 00:38:53함수형 프로그래밍을 공부하면서 scope에 대한 내용을 언급하는데 보통 scope는 변수에 접근할 수 있는 범위로 생각을 하죠 lexical scope는 뭘까요 그럼? 이는 함수 안에 함수가 있을 때 내부 함수에서 외부 함수에 있는 변수에 접근이 가능한 범위를 lexical scope라고 합니다. 위에서 처럼 내부함수에서 외부함수의 변수를 사용해서 "Hello World"라는 문자열을 만들어서 반환했는데 이렇게 내부 함수가 사용한 외부 함수의 변수들은 계속 존재하게 되고 이렇게 lexical scope를 포함하는 함수를 closure라고 한다. 이때 내부 함수가 사용한 외부 함수의 변수들은 내부 함수 선언 시점에서 변할 수 없어서 final로 만들지 않아도 암묵적인 final이 된다. 이런 closure..
반응형