# Java Version
### Java Versionì ì í
ìµì Java ë²ì ì 6ê°ìë§ë¤ ì
ë°ì´í¸ê° ëë¤.
ì ë§ì ë²ì ì´ ì¶ìë¨ì ë°ë¼ì 기본ì ì¼ë¡ ë¤ìê³¼ ê°ì ìë리ì¤ê° ì¡´ì¬íë¤.
- 기ì
ì 기존 íë¡ì í¸ììë Java 8ì ì¬ì©í´ì¼ íë ê²½ì°ê° ë§ë¤.
- ì¼ë¶ ë ê±°ì íë¡ì í¸ë Java 1.5 ëë 1.6ìì ì¤ë¨ë기ë íë¤.
- ìµì IDE, íë ììí¬ ë° ë¹ë ë구를 ì¬ì©íë ê²½ì° `Java 11(LTS)` ëë ìµì `Java 17(LTS)`를 ë§ì¤ì ìì´ ì¬ì©í ì ìë¤.
- ìëë¡ì´ë ê°ë°ì ê²½ì° ìë° ë²ì ì 기본ì ì¼ë¡ ìë° 7ì ê³ ì ëì´ìê³ , í¹ì í ìë° 8 기ë¥ë¤ì ì´ì©í ì ìë¤. ëë ì½í린 íë¡ê·¸ëë° ì¸ì´ë¥¼ ì¬ì©íë ê²ì¼ë¡ ì ííë¤.
### í¹ì Java ë²ì ì íìµí´ì¼ íëê°?
ê²°ë¡ ë¶í° ë§íë©´ **í¹ì Java ë²ì ë§ì íìµí íìê° ìë¤.**
Python 2ìì 3ê³¼ ê°ì´ ë¦´ë¦¬ì¤ ì¬ì´ì ì¬ê°í 문ì ê° ìë ê²ê³¼ë ë¬ë¦¬ Javaë `íì í¸íì±`ì´ ë§¤ì° ë기 ë문ì´ë¤.
- ì¦, Java 5 ëë 8 íë¡ê·¸ë¨ì´ Java 8~17 ê°ì머ì ìì ì¤íëëë¡ ë³´ì¥ëë¤.
- ì´ê²ì `íì í¸íì±`ì´ë¼ê³ íë¤.
- ë°ëë¡ Java 8 JVMììë ì¬ì©í ì ìë Java 17 기ë¥ì ìì¡´íë¤ë©´ ì»´íì¼ì´ ëì§ ìëë¤.
ë°ë¼ì Java 8ì ë´ì©ë¤ë¡ í ë를 ìê³ Java 9~17ì ì¶ê°ë 기ë¥ì ëí´ì ììë³´ê³ íìì ë°ë¼ì ë²ì ì ë³ííë©´ì ì ì©íë©´ ëë¤.
### OpenJDK ë¹ë(ì¤ë¼í´) ë° OracleJDK ë¹ë
ìë°ë¥¼ ìì¤ìì ë¹ëíë 벤ë ì¤ íëê° ì¤ë¼í´ì´ë¼ë íì¬ì´ë¤.
#### Oracle JDKì Open JDKì ì°¨ì´ì
- `Oracle JDK`ë **ìì©(ì ë£)**ì´ì§ë§, `Open JDK`ë **ì¤íìì¤**ì´ë¤.
- Oracle JDKì ë¼ì´ì¼ì¤ë Oracle BCL(Binary Code License) Agreementì´ì§ë§, Open JDKì ë¼ì´ì¼ì¤ë Oracle GPL v2ì´ë¤.
- Oracle JDKë **LTS(ì¥ê¸° ì§ì)** ì
ë°ì´í¸ ì§ìì ë°ì ì ìì§ë§, Open JDKë **LTSìì´ 6ê°ìë§ë¤ ìë¡ì´ ë²ì ì´ ë°°í¬**ëë¤.
- Oracle JDKë Open JDKë³´ë¤ **CPU ì¬ì©ëê³¼ ë©ëª¨ë¦¬ ì¬ì©ëì´ ì ê³ , ìëµìê°ì´ ëë¤.**
Java 8 ì´ì ì Open JDK ë¹ëì Oracle JDK ë¹ë ì¬ì´ìë ì¤ì ìì¤ ì°¨ì´ê° ì¡´ì¬íëë°, ìµì ì ë ë²ì ì 본ì§ì ì¼ë¡ ëì¼íë©° ì½ê°ì ì°¨ì´ë§ ì¡´ì¬íë¤.
## Java 8~17 í¹ì§
### Java 8
- Lambda
- Stream
- Interface default method
- Optional
- new Date and Time API(LocalDateTime, ...)
### Java 9
- 모ë ìì¤í
ë±ì¥(jigsaw)
- 컬ë ì
```java
List