jdk-8u101-windows-x64.exe
Java8 다운받기
1.프로그램명: Java8 새로운기능과 파일 다운받기
2.라이센스 : 프리웨어 - 개인
3.출처 : oracle.com
4.언어 : 영문
6.버젼 : JAVA8
7.설치하기
다운 받을 파일을 클릭한 후, 설치를 진행하면 됩니다.
Java8에서는 기존 버전들과 비교해서 가장 큰 변화가 있었습니다. 이는 현재 프로그래밍 생태계의 변화와 연관이 있습니다. 하드웨어 적으로 멀티코어 CPU가 대중화 되었고 빅데이터가 화두로 떠오르면서 대용량의 데이터를 효과적으로 처리하고자 하는 욕구가 강해졌습니다. 즉, 프로그래머들이 병렬 프로세싱을 활용하고자 하였지만 기존 자바로는 이 부분을 충분히 대응하기가 어려워진 것입니다.
물론 이전 버전의 자바에서도 스레드를 이용하여 유휴코어들을 활용할 수 있었습니다. 하지만 스레드를 사용하면 관리가 어렵고 많은 문제가 발생할 수 있다는 단점이 존재했습니다. 자바는 이러한 병렬 실행 환경을 쉽게 관리할 수 있고 에러가 덜 발생할 수 있는 방향으로 진화하려고 노력했습니다. (스레드풀, 병렬 실행 컬렉션, 포크/조인 프레임워크 와 같은 기능을 제공) 하지만 여전히 개발자가 활용하기에는 쉽지가 않았고 이를 해결해기 위해 Java8에서는 병렬 실행을 새롭고 단순한 방식으로 접근할 수 있는 방법을 제공하게 되었습니다.
Lambda expressions
- 람다 표현식은 Anonymous Function라고 할 수 있다
- 람다를 이용하여 코드를 간결하게 할 수 있다
// Before
Runnable oldRunner = new Runnable(){
public void run(){
System.out.println("I am running");
}
};
// After
Runnable java8Runner = () -> {
System.out.println("I am running");
};
Method Reference
- 특정 람다 표현식을 축약한 것으로 볼 수 있다
- 메서드 정의를 활용하여 람다처럼 사용 가능하다
// Before
inventory.sort((Apple a1, Apple a2) ->
a1.getWeight().compareTo(a2.getWeight()));
// After
inventory.sort(comparing(Apple::getWeight));
/*
Lamda -> Method Reference
(Apple a) -> a.getWeight Apple::getWeight
() -> Thread.currentThread().dumpStack() Thread.currentThread()::dumpStack
*/
Stream
간결하게 컬렉션의 데이터를 처리하는 기능
// Before
List<Shape> list = new ArrayList<Shape>();
for (Shape s : shapes) {
if (s.getColor() == RED) {
list.add(s);
}
}
// After
shapes.stream().filter(s -> s.getColor() == Red).collect(toList());
Parallel Stream
위 Stream을 병렬로 처리가능하도록 하는 기능 여러 쓰레드에서 처리할 수 있도록 분할한 Stream 이다
shapes.parallelStream().forEach(s -> doSomething());
Default Method
- 인터페이스의 구현체를 인터페이스 자체에서 기본으로 제공 가능하다
- 구현 클래스에서 인터페이스를 구현하지 않아도 된다
public interface Sized {
int size();
default boolean isEmpty() { // Default Method
return size() == 0;
}
}
Optional
- 값을 Optional로 캡슐화하여 NullPointerException을 막는다
- 값이 존재한다면 Optional 클래스는 값을 감싼다
- 값이 없다면 Optional.empty메서드로 Optional을 리턴한다
CompletaleFuture
- Future의 기능을 확장시켜준다
- 두 개의 비동기 계산 결과를 하나로 합친다
- 각 계산 결과는 독립적이거나 종속적일 수 있다
- Future 집합이 실행하는 모든 태스크의 완료를 기다린다
- Future 집합에서 가장 빨리 완료되는 태스크를 기다렸다가 결과를 얻는다
- Future가 완료되면 추가 작업을 수행 할 수 있다
New date / time APIs
- Joda-Time의 많은 기능을 java.time 패키지로 추가했다
- LocalDate, LocalTime, Instant, Duration, Period
참고
https://www.javacodegeeks.com/2014/03/8-new-features-for-java-8.html
http://www.drdobbs.com/jvm/lambdas-and-streams-in-java-8-libraries/240166818
다운받기
- 8u51 : 다운로드
- 8u101 : 다운로드
- 8u222 : 다운로드
- 다른 버젼 보기
'개발도구 > JAVA' 카테고리의 다른 글
Webstorm 웹스톰 2019 다운로드 설치하기 (0) | 2020.11.08 |
---|---|
Java SE 1.3 파일 다운받기 Java SE 1.3 Download (0) | 2020.11.07 |
Java7 특징 및 다운받기 설치하기 (0) | 2020.11.06 |