본문 바로가기

JAVA

자바8 이상의 주요 문법

람다 표현식 

  • 임시로 사용할 임시 함수를 위한 표현식
  • 자바 기본 문법에선, 함수만 따로 선언할 수 없고 클래스 선언한다음 그 안에 함수를 선언해야 그 전체를 메서드로 구동할 수 가 있는데, 이러한 불편한 점을 보완하기 위해 등장 했다
  • (var 1, var 2  . .) -> { 동작 1; 동작2; } 이런 형태!

스트림 API

  • 컬렉션에 담긴 데이터를 처리하는 존재로써, 컬렉션에 추가된 메서드의 집합을 의미한다
  • 주요 메서드로는 forEach(), filter(), distinct(), map(), collect(), toList() 등이 있다

Optional

  • null 이 들어 있는 래퍼런스 변수의 멤버(필드나 메서드) 에 접근하려고 할 때 발생하는 예외인 NullPointerException을 유연하게 해결하기 위해 등장했다
  • if문으로 null을 체크하는 코드를 깔끔하게 개선할 수 있다
  • 예) var.ifPresent(value -> 동작());   : Optional객체로 정의된 var에 값이 존재하는경우, ifPresent의 인자로 들어간 람다 표현식을 실행하고, 비어있는 경우엔 실행되지 않는다
  • 안티패턴 : 디자인패턴과 반대되는 의미로 비효율적인 패턴을 의미한다
  • 예)  if (str.isPresent() )  {  System.out.println(str.get().toUpperCase()); } : isPresent()메서드를 마치 if문처럼 잘못 사용하고 있다!!
  • 다음과 같이 개선한다. str.ifPresent((string) -> System.out.println(str.get().toUpperCase()));

'JAVA' 카테고리의 다른 글

equals()  (0) 2024.11.01
컬렉션 : List  (0) 2024.11.01
다형성 : 상속과 인터페이스  (0) 2024.11.01
Cache, RAM, HDD/SSD  (0) 2024.10.14
JVM의 영역별 저장  (0) 2024.06.29