본문 바로가기

참고자료

자바 8 과 자바 11의 특징

간단한 표

출처:https://innovation-communication.tistory.com/m/42

 

1. 자바 8은 왜 많이 쓰는 걸까?

자바 8부터 추가된 기능들이 그만큼 중요하기 때문이다.

그럼 그 중요한 기능들은 무엇일까?  

중요성을 평가함에 있어 사람들의 주관이 많이 작용하겠지만 대부분의 사람들이 말하는것은

-- 함수형 프로그래밍의 도입 (함수형 인터페이스)

-- 람다식

-- 스트림 api 의 도입

-- Optional 클래스 등장으로 nullpointExceition 방지 가능

등이 있다.

한편으로는 공공쪽 사업에서 쓰는 정부통합 프레임워크가 8버전까지만 지원이 되어서 많이 쓴다는 설도 있다.

또 자바 8버전 이후로는 유료화 되는 부분이 많아서라는 이유도 있다고 한다.

 

 

2. 자바 11의 특징

그럼 무조건 8은 좋은 것일까?

자바 8은 2014년에 나왔다. 성능면으로 보면 11이 더 좋다고 한다.

대신 11은 openJDK 를 쓰는 곳이 많다고 한다.

그럼 자바 11은 뭐가 바뀌었을까?

 

--새로운 String 메서드의 추가 

   strip(), isBlank() 와 같은 문자열 앞,뒤의 공백 제거를 해주는 메서드가 추가되었다. 

   trim() 과 다른점은 트림은 유니코드상에서 다양한 공백 문자에 대처하기 어렵다. 

   때문에 11 이전까지는 Character.isWhitespace(int) 를 사용했어야 했다고 한다.

   trim() 보다 성능도 더 좋다.

   isBlank() 는 문자열이 비었거나 공백만 있을경우 true를 반환한다. 

   

-- 람다의 파라미터로 var 사용

    자바10에서 사라졌었다가 11때 다시 생겨났다. 

    (var n1, var n2) -> n1 + n2 

    주의할 점은 var 는 다른 타입의 파라미터와 혼용하지 못한다. var 끼리만 사용해야한다. 

    (var n1, String s2) -> n1 + s2  ===이럴경우 오류난다.

 

-- 모듈

   모듈을 통해

   어플리케이션에 필요한 구성 요소만 있는 런타임 구성을 사용자가 지정할 수 있다.

   사용자 지정은 메모리를 적게 쓴다. 

   메모리를 적게 써서 얻을 수 있는 장점을 하나 들어보면 

   마이크로서비스 아키텍처에 유용하다는 것이다. 

   내부적으로 클래스 로딩을 효율적으로 하여

   런타임이 줄어들고, 더 빠르게 시작이 가능하다.  

 

--  엡실론 가비지 컬렉터

    JVM으로 하여금 메모리 할당을 관리하지만, 사용된 메모리를 재사용하지 않도록 한다.

    메모리를 다 사용하면 OutOfMemory 가 발생하고 JVM은 셧다운된다. 

   

-- Http client 

   java 표준 http 코드가 기존에 사용한 코드보다 성능이 개선되었다.

   websocket 과 http/2 , http/1.1 을 지원한다.

  

이외에도 JVM의 전체적인 성능향상으로 시간 단축, 공간 절약, 메모리 절약을 할 수 있다고 한다.

그럼에도 사람들이 많이 쓰는 것은 자바 1.8 버전이다. 

 

3. 세계 동향

   추가적인 자료로 세계 java 사용자들의 동향을 나타내는 표이다. 

   출처 :https://www.jrebel.com/blog/2020-java-technology-report

 

                      -- 프레임 워크와 기술 선호도 

 

                      -- 데이터 베이스 선호도

 

                    -- IED 선호도

                   -- WAS 선호도

 

                  --런타임 어플리케이션 선호도

                   

                   -- 자바 버전 선로도

 

참고

https://medium.com/@jyson88/2020-java-trend-9696c7321806

https://gsmesie692.tistory.com/267

https://n1tjrgns.tistory.com/262

https://parkcheolu.tistory.com/174

https://okky.kr/article/784365

'참고자료' 카테고리의 다른 글

포워드 프록시 와 리버스 프록시  (0) 2022.01.26
EC2 에 mysql 8.0 설치하기  (0) 2021.10.20
메시지 큐 (Message Queue)란?  (0) 2021.08.28
FrameWork 와 SpringFrameWork  (0) 2021.08.27
Request 의 방식의 종류  (0) 2021.07.06