본문 바로가기
📚 Stack/Java

[JAVA] 자바 8버전 주요 문법

by 개발한 너굴씨 2024. 4. 22.
728x90

 

 

 

 

 

 

자바 8버전의 필요성 

 

자바에는 수많은 버전이 존재한다. 그 많은 버전 중 8버전을 소개하려는 이유가 무엇일까? 그것은 바로 자바의 기능과 문법이 8 버전을 기준으로 많이 변하기 떄문이다. 다음은 8버전의 주요 문법과 사용 예시에 대해 알아보겠다. 

 

 

 

 

자바 8버전 주요 문법 

 

1. 람다 표현식(Lambda Expression)

 

람다 표현식이란 메서드로 전달할 수 있는 익명 함수를 단순한 문법으로 표기한 것을 의미한다.

 

자바 8버전 이전에는 코드에서 잠깐 사용되고 마는 메서드를 추가하기 위해 익명으로 클래스를 선언해야 했다.

 

불필요한 코드 떄문에 가독성이 떨어지는 결과를 낳았고 람다 표현식으로 통해 이를 해결 할 수 있다. 

 

//익명 클래스와 람다 표현식 비교 예시 
import java.util.ArrayList;
import java.util.Comparator;
improt java.util.List;

public Class Main{
	public static void main(String[] args) {
    	List list = new ArrayList<String>();

			list.add("Happy");
			list.add("New");
			list.add("Year");
            
            //익명 클래스
			list.sort(New Comparator<String>){
				@Override
    			public int comparator(String str1, String str2){
    				return str1.compareTo(str2);
    		}
    }

	//람다 표현식 
	list,sort(((Comparator<String>) (str1, str2) -> str1.compareTo(str2));

	}
}

 

 

 

 

 

2. 스트림API(Stream API)

 

for문과 if문이 함께 들어간 코드 혹은 반복문으로 컬렉션을 사용하기 위해 for 문을 사용했던 코드를 스트림API를 통해 가독성을 높일 수 있다.  

 

//for문을 통한 ArrayList 출력 예시
import java.util.ArrayList;
import java.util.List;

public class Main{
	public static void main(String[] args) {

		List list = new ArrayList<String>();

			list.add("Happy");
			list.add("New");
			list.add("Year");

			for (int i = 0; i<list.size(); i++){ //list.size는 리스트 크기 반환 
				System.out.println(list.get(i)); //i번째 요소 출력 

}

 

//스트림 API를 이용한 출력 예시
import java.util.ArrayList;
import java.util.List;

public class Main{
	public static void main(String[] args) {

		List list = new ArrayList<String>();

			list.add("Happy");
			list.add("New");
			list.add("Year");

			list.stream().forEach(str -> System.out.println(str));

}

 

 

 

 

 

3. Optional

 

자바 8버전 이전에는 사용하려는 변수 값이 null인지 아닌지를 체크하기 위한 if문 때문에 코드가 복잡했다.

 

그러나 Optional은 null을 if문 없이 처리해서  코드의 가독성을 높일 수 있다. 

 

//null값 반환 예시 
public Class Main {
	private static String getSomeString{
    	return null; 
    }
    
    public static void main(String[] args){
    	String isThisNull = getSomeString();
    }
    
    if(null != isThisNull){
    	System.out.println(isThisNull.toUpperCase());
    }
}

 

//Optional 사용 예제 
import java.util.Optional;

public Class Main{
	private static Optional<String> getSomeString(){
    	return.Optional.empty();  //null값을 반환하는 것이 아닌, 비어 있는 Optional을 반환 
    }
    
public static void main(String[]) args{
	Optional<String> isThisNull = getSomeString();
    
    isThisNull.ifPresent(str -> System.out.println(str.toUpperCase()));
} 
}

 

 

 

 

728x90

댓글