Feature

J2SE 5 ์—์„œ ์ถ”๊ฐ€ 04.10.4 ~ 15.4.14

Generics ์ถ”๊ฐ€

Auto Boxing / Unboxing ์ง€์›

Enumeration ์ถ”๊ฐ€

Varable Parameter ์ง€์›

Static Import ์ถ”๊ฐ€

Concurrentcy API ์ง€์›

java.util.Scanner ์ถ”๊ฐ€

J2SE 6 ์—์„œ ์ถ”๊ฐ€ 06.12.23 ~ 18.10.18

Java ๋ฒ„์ „ ํ‘œ๊ธฐ๋ฒ•๋ณ€๊ฒฝ

J2SE -> Java SE ๋กœ ๋ณ€๊ฒฝ

JDBC 4.0 ์ง€์›

Java SE 7 ์—์„œ ์ถ”๊ฐ€ 11.7.28 ~ 18.10.18

Dynamic Language ์ง€์›

switch ๋ฌธ์— String ์‚ฌ์šฉ

try-with-resource ์ง€์›

Diamond Operator ์ง€์›

Java SE 8 ์—์„œ ์ถ”๊ฐ€ 14.3.18 ~ 18.10.16

Lambda Expression

๋žŒ๋‹คํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค ์ŠคํŒฉ ๋ณ€๊ฒฝ

์ธํ„ฐํŽ˜์ด์Šค ๋‚ด์— default method ๋ฐ static method ๊ฐ€ ์ง€์›๋œ๋‹ค.

๊ธฐ์กด์— ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ชจ๋“  ํด๋ž˜์Šค๋“ค์ด ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ(?) ์„ ํ•ด์†Œ์‹œ์ผฐ๋‹ค.

๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•˜์—ฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ์„ฑ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๋ฉฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ํ–ˆ๋‹ค.




ย 
ย 
ย 


public interface Calculator {
  public int plus(int i, int j);
  public int multiple(int i, int j);
  default int exec(int i, int j) {
    return i + j;
  }
}

์œ„์™€ ๊ฐ™์ด ์ธํ„ฐํŽ˜์ด์Šค์—์„œ๋„ ๋ฉ”์„œ๋“œ ๊ตฌํ˜„๊ฐ€๋Šฅ

Stream API

์ŠคํŠธ๋ฆผ API ์˜ ์ถ”๊ฐ€๋ฅผ ํ†ตํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ถ”์ƒํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ธฐ์กด JCF (Java Collection Framework) ๋ฅผ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด Iterator ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€์ง€๋งŒ Stream ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ƒํ™”ํ•˜์—ฌ ๋‹ค๋ฃฌ๋‹ค.

java.time ํŒจํ‚ค์ง€ ์ถ”๊ฐ€

JDK 1.0 ~ 1.1 ๋ถ€ํ„ฐ ์ œ๊ณต๋œ Date ํด๋ž˜์Šค ํ˜น์€ Calendar ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

Java SE 8 ์—์„œ๋Š” Joda-Time ์„ ์ด์šฉํ•œ ์ƒˆ๋กœ์šด ๋‚ ์งœ์™€ ์‹œ๊ฐ„ API ๋ฅผ ํ†ตํ•˜์—ฌ ๊ฐœ์„ ๋œ ์‹œ๊ฐ„ ํŒจํ‚ค์ง€ ํด๋ž˜์Šค ์ด์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

http://tcpschool.com/java/java_intro_java8

PermGem ์˜์—ญ ์‚ญ์ œ

Annotation Type ์ถ”๊ฐ€

Nashorn

์ƒˆ๋กœ์šด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—”์ง„์œผ๋กœ ๊ธฐ์กด์— ์‚ฌ์šฉ์ค‘์ธ ๋ชจ์งˆ๋ผ์˜ Rhino ์—”์ง„๋ณด๋‹ค ๊ฐœ์„ ๋œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณด์—ฌ์ค€๋‹ค.

๋งˆ์ง€๋ง‰ 32 bit ์ง€์›

์ดํ›„ ๋ฒ„์ „์˜ 32 bit ๋ฒ„์ „์€ ์„œ๋“œํŒŒํ‹ฐ๋กœ๋งŒ ์ง€์› ๊ฐ€๋Šฅ

Java SE 9 ์—์„œ ์ถ”๊ฐ€ 17.9.21 ~ 18.1.16

private ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€

์ด์ „๋ฒ„์ „์˜ @Deprecate API ์˜ ์‚ญ์ œ

์ด์ „ ๋ฒ„์ „์˜ @Deprecate ๊ฐ€ ๋ฆด๋ฆฌ์ฆˆ๋งˆ๋‹ค ์ผ๋ถ€ ์‚ญ์ œ ๋˜์—ˆ์œผ๋ฉฐ ๋Ÿฐํƒ€์ž„์˜ ๋ชจ๋“ˆํ™”๋Š” ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์–ด๋Š์ •๋„ ํฌ๊ธฐํ•˜๊ณ  ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•œ ๋ฒ„์ „์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•˜์œ„ํ˜ธํ™˜์„ฑ์„ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ๊ณ ๋ คํ•ด๋ด์•ผ ํ•œ๋‹ค.

Property ์ธ์ฝ”๋”ฉ ์ง€์›

UTF-8 ์ธ์ฝ”๋”ฉ์ด ์ง€์›๋œ๋‹ค.

Java SE 10 ์—์„œ ์ถ”๊ฐ€ 18.3.20 ~ 18.7.17

var ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•œ ์ง€์—ญ ๋ณ€์ˆ˜ ํƒ€์ž… ์ถ”๋ก 

๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜

Stop-The-World

Root CA

JVM ์˜ Heap ์˜์—ญ์„ ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๋ฉ”๋ชจ๋ฆฌ์—๋„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ง€์›

JIT ์ปดํŒŒ์ผ๋Ÿฌ ์ถ”๊ฐ€

์ด์ „๋ฒ„์ „์˜ @Deprecate API ๋Š” ์™„์ „ ์‚ญ์ œ

Java SE 11 ์—์„œ ์ถ”๊ฐ€

Nest ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์–ธ์–ด

Nest-based access controls ์˜ Nest ๋Š” ์ ‘๊ทผ ์ œ์–ด ์ปจํ…์ŠคํŠธ๋กœ ๋…ผ๋ฆฌ์ ์œผ๋กœ๋Š” ๊ฐ™์€ ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฆฌ๋œ ํด๋ž˜์Šค๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ private ๋ฉค๋ฒ„์˜ getter/setter ์—†์ด ๋ฐ”๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ƒˆ๋กœ์šด ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ

์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ ์ƒˆ๋กœ์šด ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ (Garbage Collector)

Flight Recorder

์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋‚ฎ์€ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ์ด์ „์—๋Š” ์œ ๋ฃŒ์˜€์ง€๋งŒ ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœ

TLS 1.3

Transport Layer Security (TLS) 1.3 TLS SSL ์˜ ํ‘œ์ค€ ์ด๋ฆ„

๋žŒ๋‹ค์—์„œ var ๋ณ€์ˆ˜

Java SE 10 ์—์„œ ๋„์ž…๋œ var ํƒ€์ž… ์ถ”๋ก ์„ ์—…๋ฐ์ดํŠธ

์ด์™ธ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์˜ ์ œ๊ฑฐ

  • Java EE and CORBA Modules
  • Web Start
  • Applets
  • Java FX