Java/자바의 신 VOL.2

18. Java 11은 얼마나 달라졌을까?

h2boom 2024. 7. 10. 17:05

Java 11

  • Java 11은 LTS 버전

Java 파일 실행 방법의 변화

  • 이전까지는 java 파일을 실행하기 위해서 컴파일을 해야 실행할 수 있었다.
  • 별도의 패키지를 명시할 필요도 없이 실행할 수 있다.
  • 클래스가 있는 해당 디렉토리에서 javac가 아닌 java 명령어로 실행 가능하다.
  • 셔빙 파일 (shebang file)
    • 맨 앞에 "#!"로 시작하고 실행 파일이 정의되어있어야 한다.
    • 쉘 스크립트 같이 필요한 기능을 만들어 사용할 수 있도록 돕는 용도
// Shebang 파일
#!/usr/bin/java --source 11
public class NoCompile {
	public static void main(String [] args){
		System.out.println("This is script with java!!");
	}
}

Lambda - Var

  • 이전에는 람다 표현식에서 var를 사용할 수 없었다.
// 일반적인 람다 표현식
private void getSum() {
	List<Integer> numbers = Arrays.asList(1,2,3,4,5);
    	BinaryOperator<Integer> sumNumber = (Integer x, Integer y) -> x+y;
        // Integer 타입인 것이 명확하므로 var로 표현 가능
        BinaryOperator<Integer> sumNumber2 = (var x, var y) -> x+y;
        int sum = numbers.stream().reduce(0, sumNumber);
        System.out.println(sum);
}
  • 타입이 확실한 람다 표현식에서 불필요하게 각 타입을 일일이 타이핑 할 필요 없이 var를 사용할 수 있다.
  • 향후에 타입이 변경되었을 때 var를 사용해 두면 변경해야하는 코드의 양도 줄어든다.

출처: 이상민, <자바의 신 VOL.2> 로드북