Java7에서 Java9까지의 새로운 기능을 한꺼번에 포착하다
13558 단어 Java
개시하다
2년 동안 Type Script에서 프런트엔드 개발을 수행해 왔습니다.
이전에도 자바를 사용하여 서버 측면 개발을 진행했는데 마지막으로 사용한 버전은 자바7이다.
2017년 9월에 Java9이 발매됐는데 거기에 완전히 놓인 것 같아요. Java7에서 Java9까지.
한꺼번에 다른 곳을 포착해 보자.
Java 8의 주요 새로운 기능
Java 8은 2014년 3월에 릴리즈되었습니다.자바 8에는 램다식과 스트림 API 등 더 간결한 코드 기능이 추가됐다.
자바8의 새로운 기능은 코드를 예쁘게 쓸 수 있게 하는 것이고, 자바는 약간 세련된 느낌이다.
람다식
자바도 마침내 람다식을 사용할 수 있게 되었다.
java7 // 無名クラスを使用する
Arrays.sort(array, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
return s1.getAge() - s2.getAge();
}
});
Java8에서는 다음 aro 연산자를 사용하여 작성할 수 있습니다.
람다식의 작법은 여러 가지가 있는데, 여기서는 생략한다.
java8 // ラムダ式を使用できる
Arrays.sort(array, (s1, s2) -> s1.getAge() - s2.getAge());
함수 인터페이스를 매개 변수로 쓰는 방법으로 사용자가 람다식을 사용하는 방법을 정의할 수도 있다.
Stream API
배열 등을 쉽게 처리할 수 있는 API가 추가되었습니다.
자바 7까지 for 등의 처리를 사용하여 방법 체인으로 간결하게 기술할 수 있습니다.
java7String[] list = new String[] {
"ABC", "CDE", "EFG"
};
// Java7 for分を使用する
String target = "";
for (String str : list) {
if (str.contains("C")) {
target += str;
}
}
java8 Optional<String> result = Arrays.stream(list).filter(s -> s.contains("C")).reduce((v1, v2) -> v1 + v2);
Optional
Optional은 null 처리를 위한 API입니다.빈 링을 랩으로 싸서 빈 상태일 수도 있는 상태에서 적어서 처리할 수 있다.
예를 들어, Java7 이전에 null 검사를 수행한 코드는 다음과 같습니다.
java7 String str1 = "hoge";
if (str1 != null) {
System.out.println(str1);
}
Optional 을 사용하면 매끄럽게 쓸 수 있습니다.
java8 Optional<String> str2 = Optional.ofNullable("hoge");
str2.ifPresent(x -> System.out.println(x));
다음 코드도 있어요.
java7 String str1 = "hoge";
if (str1 != null) {
System.out.println(str1);
} else {
System.out.println("nullです");
}
아래처럼 이렇게 유창하게 쓸 수 있다.
java8 String str2 = Optional.ofNullable("hoge").orElse("nullです");
System.out.println(str2);
Date and Time API
자바8의 새로운 자바가 되다.타임 패키지를 추가했고, ISO8601을 기반으로 한 처리 일자와 시간의 다양한 카테고리를 추가했다.
최소한 기억해야 할 API는 다음과 같습니다.
새 API
개요
LocalDateTime
시간대가 없는 날짜
ZonedDateTime
시간대가 있는 날짜
DateTimeFormatter
양극SimpleDateFormt
interface
인터페이스에서 기본적으로 실행되었습니다.
다음 방법과 static 방법을 쓸 수 있습니다.기본 방법은 설치 클래스에서 다시 쓸 수 있습니다.
java8public interface IDefaultSample {
default void Print(String value) {
System.out.println(value);
}
public static void Hello() {
System.out.println("hello");
}
}
유형 색인
자바 7까지 반과 방법의 선언 이외에 사용할 수 없는 모조입니다.
(변수 또는 Generix) 유형에도 사용할 수 있습니다.
Java9의 주요 새로운 기능
다음은 자바8에서 자바9로의 변경점입니다.가장 큰 추가는 모듈화 아닙니까?
기타 많은 기능 개선이 있다.
모듈식 "Project Jigsaw"
여러 범주에 대한 의존 관계, 공개 설정, 버전 설정 등을 모듈 단위로 수행할 수 있다.
모듈의 정의는'module-ifo.java'와 같은 파일을 기술하여 간단하게 진행할 수 있다.
여기.의 절차를 참고하였다.
module-info.자바에서 모듈 성명과 공개된 패키지는 다음과 같습니다.
여기는 org입니다.astro 모듈의 선언에서 org.이것은 아스트로 패키지를 공개하는 설정이다.
설명 설명
-module: 모듈 설명
-exports: 공개할 패키지 지정
src/org.astro/module-info.javamodule org.astro {
exports org.astro;
}
src/org.astro/org/astro/World.javapackage org.astro;
public class World {
public static String name() {
return "world";
}
}
다음은 모듈에 의존하는 방법을 지정하는 방법입니다.
com.greetings 모듈은 내부 클래스에서 org입니다.astro 모듈을 사용했기 때문에.
이 설명이 필요합니다.
설명 설명
-requires: 의존 모듈 지정
src/com.greetings/module-info.javamodule com.greetings {
requires org.astro;
}
src/com.greetings/com/greetings/Main.javapackage com.greetings;
import org.astro.World;
public class Main {
public static void main(String[] args) {
System.out.format("Greetings %s!%n", World.name());
}
}
여기. 에 상세하게 기재되어 있다.
JShell
자바의 리플이 탑재된 Jshell입니다.
REPL은 R을 읽고 E(Eval)를 평가한 다음 L(Loop) 출력 P(Print)를 반복하는 것을 말합니다.
다른 언어로 탑재된 것도 있다.
사용 방법은 JDK 또는 JDK로 이동하여 Jshell 명령을 실행하는 것입니다.
이렇게 하면 자바의 문법을 즉시 실행할 수 있다.
사용법은 별로 생각 안 나지만 코드를 살짝 시험해 보는 게 좋을 것 같아요.
interface privte 방법
java8에 추가된interface에default방법,static방법을 추가 기술할 수 있고privte방법을 추가 기술할 수 있습니다.
Stream API 기능 추가
자바 8에 추가된 스트림 API에는 takeWhile, dropWhile 방법이 추가됐다.
Reactive Streams
비동기 흐름을 구현하기 위해 Publish Subscribe 모델을 적용한 Framework가 추가됐다.
ITpro여기 기사.에는 상세한 해설이 있다.
최후
이 밖에도 많은 변경점이 포함돼 있는데 이번에는 달리기로 주요 변경점을 봤다.
Reference
이 문제에 관하여(Java7에서 Java9까지의 새로운 기능을 한꺼번에 포착하다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Shinji-Hashimoto/items/5163b4684e3fd194c1b6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Java 8은 2014년 3월에 릴리즈되었습니다.자바 8에는 램다식과 스트림 API 등 더 간결한 코드 기능이 추가됐다.
자바8의 새로운 기능은 코드를 예쁘게 쓸 수 있게 하는 것이고, 자바는 약간 세련된 느낌이다.
람다식
자바도 마침내 람다식을 사용할 수 있게 되었다.
java7
// 無名クラスを使用する
Arrays.sort(array, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
return s1.getAge() - s2.getAge();
}
});
Java8에서는 다음 aro 연산자를 사용하여 작성할 수 있습니다.람다식의 작법은 여러 가지가 있는데, 여기서는 생략한다.
java8
// ラムダ式を使用できる
Arrays.sort(array, (s1, s2) -> s1.getAge() - s2.getAge());
함수 인터페이스를 매개 변수로 쓰는 방법으로 사용자가 람다식을 사용하는 방법을 정의할 수도 있다.Stream API
배열 등을 쉽게 처리할 수 있는 API가 추가되었습니다.
자바 7까지 for 등의 처리를 사용하여 방법 체인으로 간결하게 기술할 수 있습니다.
java7
String[] list = new String[] {
"ABC", "CDE", "EFG"
};
// Java7 for分を使用する
String target = "";
for (String str : list) {
if (str.contains("C")) {
target += str;
}
}
java8 Optional<String> result = Arrays.stream(list).filter(s -> s.contains("C")).reduce((v1, v2) -> v1 + v2);
Optional
Optional은 null 처리를 위한 API입니다.빈 링을 랩으로 싸서 빈 상태일 수도 있는 상태에서 적어서 처리할 수 있다.
예를 들어, Java7 이전에 null 검사를 수행한 코드는 다음과 같습니다.
java7
String str1 = "hoge";
if (str1 != null) {
System.out.println(str1);
}
Optional 을 사용하면 매끄럽게 쓸 수 있습니다.java8
Optional<String> str2 = Optional.ofNullable("hoge");
str2.ifPresent(x -> System.out.println(x));
다음 코드도 있어요.java7
String str1 = "hoge";
if (str1 != null) {
System.out.println(str1);
} else {
System.out.println("nullです");
}
아래처럼 이렇게 유창하게 쓸 수 있다.java8
String str2 = Optional.ofNullable("hoge").orElse("nullです");
System.out.println(str2);
Date and Time API
자바8의 새로운 자바가 되다.타임 패키지를 추가했고, ISO8601을 기반으로 한 처리 일자와 시간의 다양한 카테고리를 추가했다.
최소한 기억해야 할 API는 다음과 같습니다.
새 API
개요
LocalDateTime
시간대가 없는 날짜
ZonedDateTime
시간대가 있는 날짜
DateTimeFormatter
양극SimpleDateFormt
interface
인터페이스에서 기본적으로 실행되었습니다.
다음 방법과 static 방법을 쓸 수 있습니다.기본 방법은 설치 클래스에서 다시 쓸 수 있습니다.
java8
public interface IDefaultSample {
default void Print(String value) {
System.out.println(value);
}
public static void Hello() {
System.out.println("hello");
}
}
유형 색인
자바 7까지 반과 방법의 선언 이외에 사용할 수 없는 모조입니다.
(변수 또는 Generix) 유형에도 사용할 수 있습니다.
Java9의 주요 새로운 기능
다음은 자바8에서 자바9로의 변경점입니다.가장 큰 추가는 모듈화 아닙니까?
기타 많은 기능 개선이 있다.
모듈식 "Project Jigsaw"
여러 범주에 대한 의존 관계, 공개 설정, 버전 설정 등을 모듈 단위로 수행할 수 있다.
모듈의 정의는'module-ifo.java'와 같은 파일을 기술하여 간단하게 진행할 수 있다.
여기.의 절차를 참고하였다.
module-info.자바에서 모듈 성명과 공개된 패키지는 다음과 같습니다.
여기는 org입니다.astro 모듈의 선언에서 org.이것은 아스트로 패키지를 공개하는 설정이다.
설명 설명
-module: 모듈 설명
-exports: 공개할 패키지 지정
src/org.astro/module-info.javamodule org.astro {
exports org.astro;
}
src/org.astro/org/astro/World.javapackage org.astro;
public class World {
public static String name() {
return "world";
}
}
다음은 모듈에 의존하는 방법을 지정하는 방법입니다.
com.greetings 모듈은 내부 클래스에서 org입니다.astro 모듈을 사용했기 때문에.
이 설명이 필요합니다.
설명 설명
-requires: 의존 모듈 지정
src/com.greetings/module-info.javamodule com.greetings {
requires org.astro;
}
src/com.greetings/com/greetings/Main.javapackage com.greetings;
import org.astro.World;
public class Main {
public static void main(String[] args) {
System.out.format("Greetings %s!%n", World.name());
}
}
여기. 에 상세하게 기재되어 있다.
JShell
자바의 리플이 탑재된 Jshell입니다.
REPL은 R을 읽고 E(Eval)를 평가한 다음 L(Loop) 출력 P(Print)를 반복하는 것을 말합니다.
다른 언어로 탑재된 것도 있다.
사용 방법은 JDK 또는 JDK로 이동하여 Jshell 명령을 실행하는 것입니다.
이렇게 하면 자바의 문법을 즉시 실행할 수 있다.
사용법은 별로 생각 안 나지만 코드를 살짝 시험해 보는 게 좋을 것 같아요.
interface privte 방법
java8에 추가된interface에default방법,static방법을 추가 기술할 수 있고privte방법을 추가 기술할 수 있습니다.
Stream API 기능 추가
자바 8에 추가된 스트림 API에는 takeWhile, dropWhile 방법이 추가됐다.
Reactive Streams
비동기 흐름을 구현하기 위해 Publish Subscribe 모델을 적용한 Framework가 추가됐다.
ITpro여기 기사.에는 상세한 해설이 있다.
최후
이 밖에도 많은 변경점이 포함돼 있는데 이번에는 달리기로 주요 변경점을 봤다.
Reference
이 문제에 관하여(Java7에서 Java9까지의 새로운 기능을 한꺼번에 포착하다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Shinji-Hashimoto/items/5163b4684e3fd194c1b6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
module org.astro {
exports org.astro;
}
package org.astro;
public class World {
public static String name() {
return "world";
}
}
module com.greetings {
requires org.astro;
}
package com.greetings;
import org.astro.World;
public class Main {
public static void main(String[] args) {
System.out.format("Greetings %s!%n", World.name());
}
}
이 밖에도 많은 변경점이 포함돼 있는데 이번에는 달리기로 주요 변경점을 봤다.
Reference
이 문제에 관하여(Java7에서 Java9까지의 새로운 기능을 한꺼번에 포착하다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Shinji-Hashimoto/items/5163b4684e3fd194c1b6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)