목록언어/Java (12)
Monday
1. Optional이란? Optional이란 Null 참조 문제를 해결하기 위해 Java8에 추가된 개념입니다. Optional 형식으로, 어떤 값을 Optional이 감싸고 있는 형태로 사용됩니다. Optional로 감쌌다는 것은 T라는 값이 있을 수도 있고 없을 수도 있다는 의미를 나타냅니다. 즉, 포함할 수 있는 값은 1개 이하이며 T가 null일 수도 있고 null이 아닐 수도 있음을 의미하는데, 이를 적용함으로써 null 참조 오류를 줄일 수 있습니다. 예를 들어, Optional에서 String 값이 null이라면 Optional은 null인 값을 감싸고있는 Optional 객체입니다. 따라서, String 값이 null이라도 개발자는 Optional 객체를 참조하는 것이고, 이를 통해서 n..
1. Stream이란? 스트림(stream)이란 자바8 API에 새로 추가된 기능입니다. 스트림을 이용하면 sql 구문처럼 무엇을해야하는지를 컴퓨터에게 알려주면 결과를 받아볼 수 있습니다. 즉, 내부 구현 방법에는 관심을 갖지 않아도 결과를 얻을 수 있습니다. 이런 방식을 선언형 처리 방식이라고 합니다. 또한, 스트림은 복수 개의 연산(sql로 예를 들면, select, from, where 등)들을 이을 수 있다. 이 뿐만 아니라, 스트림을 이용하면 데이터를 투명하게 병렬로 처리할 수 있습니다. 스트림을 1줄로 표현하면 "데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소"라고 할 수 있습니다. 여기서 위 문장의 의미에 대해 더 자세히 살펴보겠습니다. 연속된 요소 : 컬렉션과 마찬가지로 스트림은..
1. 함수형 인터페이스란? 함수형 인터페이스란 "오직 하나의 추상 메소드"를 갖는 인터페이스를 말합니다. 즉, 인터페이스 안에 1개의 추상메소드만 있으면 함수형 인터페이스라고 부를 수 있습니다. 예를 들어, 인터페이스 안에 자바8에 추가된 디폴트 메서드가 있더라도 추상 메소드가 1개면 함수형 인터페이스입니다. 그리고 함수형 인터페이스를 선언 할 때 @FunctionalInterface 어노테이션을 붙여주면 컴파일러가 올바르게 정의되어 있는지 확인해주므로 꼭 붙여주는 게 좋습니다. // 함수형 인터페이스 예제 1 - 추상 메소드가 1개 public interface Adder{ int add(int a, int b); } // 함수형 인터페이스 예제 2 - 디폴트 메소드가 있지만, 추상 메소드가 1개 @F..
자바8 이전까지는 Unsigned가 없었지만, Java 8 이후부터는 Unsigned 관련 메소드가 추가되었습니다. 주의해야 할 점은, Unsigned 자료형이 아닌 메소드란 점입니다. int unsigned = Integer.parseUnsignedInt("230000000"); System.out.println(Integer.toUnsignedString(unsigned)); // 반드시 toUnsigneString를 사용해서 출력해야 함. parseUnsignedInt 와 toUnsignedString을 사용해서 Unsigned를 표현할 수 있습니다. 꼭 메소드를 이용해서 변환해주는 작업이 필요하기 때문에 불편한 점이 존재합니다. 따라서, 큰 값을 사용할 목적이라면 Unsigned 대신 BigInt..