π€ ΠΠΠ. Π§Π°ΡΡΡ 5. Java.
ΠΠΎΡ ΠΌΡ ΠΈ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ ΠΊ ΡΠ·ΡΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²Π½Π΅Ρ ΡΠ°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·Π°ΡΠΈΡ ΠΠΠ Π² ΠΌΠΈΡΠ΅. ΠΡ ΠΈ ΠΏΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΠ΅Π»ΡΡΡΠ²Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ (Π΄ΠΎΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΡ Π±ΡΠ» ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ) Π―Π Π² ΠΌΠΈΡΠ΅. ΠΡΠ°ΠΊ, Π½Π° ΡΡΠ΅Π½Ρ Π²ΡΡ ΠΎΠ΄ΠΈΡ Java.
ΠΠΎ ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΠΌ Π―Π Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ. Π§Π΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π² Java? Simula ΠΈΠ»ΠΈ Smalltalk? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ.
Π§ΡΠΎ ΠΎΡ Simula:
1. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ (ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ).
2. ΠΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π²ΡΠ΅Π³Π΄Π° Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΊΡΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ; ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠΈΠΏΡ.
3. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
Π§ΡΠΎ ΠΎΡ Smaltalk:
1. ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Java ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π° Π² ΡΠΎΡΠΌΠ°Ρ "Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ" Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»Ρ - Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Java ΠΈ Π·Π΄Π΅ΡΡ ΡΡΠ°Π»Π° ΠΌΠΎΡΠ½Π΅ΠΉΡΠΈΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. Π’Π°ΠΊΠΆΠ΅, Java ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»Π° ΡΠΎΡΠΌΠ°Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄Π°. Π’ΠΎ Π΅ΡΡΡ Ρ Java 2 ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ: Java Language Specification (JLS) ΠΈ Java Virtual Machine Specification (JVMS).
2. Π₯ΠΎΡΡ ΠΏΡΠΎ Java Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ "Π²ΡΠ΅ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ" Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ, Π²Π²ΠΈΠ΄Ρ Π½Π°Π»ΠΈΡΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΈ ΡΠ°Π·Π½ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ² (Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠ²), Π½ΠΎ Java ΠΊΡΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΠ ΡΠ΅ΠΌ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Simula ΠΈΠ»ΠΈ C++. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈ ΡΡΡ ΡΠ°ΡΠΏΠΈΡΠ΅ΠΌ:
* ΠΠ»Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (autoboxing) ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π² ΠΏΡΠΈΠΌΠΈΡΠΈΠ² (unboxing). ΠΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ»Π»ΡΠ·ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π ΡΠ»ΠΎΠ²Ρ, Π² ΡΠΎΠΌ ΠΆΠ΅ C++ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΎΠ±Π΅ΡΡΠΊΠΈ, Π½ΠΎ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²Π½ΠΎ. Π Java ΠΆΠ΅ ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ΅Π·ΠΊΠΎΠ³ΠΎ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
* ΠΡΠ»ΠΈ ΡΠ·ΡΠΊΠΈ ΡΠΈΠΏΠ° Simula, C++ ΠΈΠ»ΠΈ Objective Π‘ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅, ΡΠΎ Java Π²Π²ΠΎΠ΄ΠΈΡ ΠΠ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ΄ΠΈΠΎΠΌΡ. Π£ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, Π° Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠ»Π°ΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½.
* Π Java ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠΏΡ (generics, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π² CLU), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, Π° Π·Π½Π°ΡΠΈΡ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π±ΡΠ΄ΡΡ Π±ΠΎΠΊΡΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ.
* ΠΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Ρ.Π΅. ΡΡΡΡΠΊΡΡΡ ΠΊΠ°ΠΊ C ΠΈΠ»ΠΈ C# Π½Π΅Ρ. ΠΠ°ΡΡΠΈΠ²Ρ Π² Java ΡΠΎΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
3. ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠΎ ΠΎΡΡΡΠ»Π°Π΅Ρ ΠΊ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈΠ· Simula ΠΈ Objective C, Π° ΡΠ°ΠΊΠΆΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π‘++. Π ΡΠ»ΠΎΠ²Ρ, Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Java ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
Π§ΡΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ: ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° ΡΠΈΠΏΠ° Mark&Sweep. ΠΠΎΠΎΠ±ΡΠ΅ Java ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·ΠΎΠ²Π°Π»Π° ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.
Π§ΡΠΎ Π½ΠΎΠ²Π°ΡΠΎΡΡΠΊΠΎΠ΅:
1. Java Π±ΡΠ»Π° ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π²Π΅Π» ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ Π½Π°Π±ΠΎΡ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ² ΠΈ ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΈ Π΄ΠΎ Java, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΡΠΎΠ³ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ² ΡΠ°ΠΌ Π½Π΅ Π±ΡΠ»ΠΎ. Π Java ΠΆΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ 32 ΠΈ 64 Π±ΠΈΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ volatile ΠΈ synchronized, ΠΏΡΠ°Π²ΠΈΠ»ΠΎ "happens before".
2. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π±Π°ΠΉΡΠΊΠΎΠ΄Π°. ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Java ΠΈΠ· ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π―Π Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»Π°ΡΡ Π² ΡΠ΅Π»ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Π‘Π΅ΠΉΡΠ°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΡΡΡΠ°-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π―Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Java Π±Π°ΠΉΡΠΊΠΎΠ΄. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²: Kotlin, Scala, Clojure.
ΠΡΠΈΡΠΈΠ½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ: Java Π½Π°ΡΡΠΏΠ°Π»Π° Π·ΠΎΠ»ΠΎΡΡΡ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ/Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Runtime. Java Ρ ΡΡΠΏΠ΅Ρ ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Android ΠΈ JavaME), Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Eclipse ΠΈΠ»ΠΈ IntelliJ IDEA ΠΈ Ρ.Π΄.), Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π‘Π£ΠΠ (Apache Derby, H2 Database, Cassandra, OrientDB, Neo4J ΠΈ Ρ.Π΄.) ΠΈ Π΄Π°ΠΆΠ΅ AAA ΠΈΠ³Ρ (Minecraft).
Π‘Π΅ΠΉΡΠ°Ρ Java ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π³ΠΎΠ΄ Π²ΡΡ ΠΎΠ΄ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ°ΠΊ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΡΠ·ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Java ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
Π Π½Π° ΡΡΠΎΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π²ΡΠ΅! ΠΡΠ΅ΠΌ Π±Π°Π·Ρ! πͺ
ΠΠΎΡ ΠΌΡ ΠΈ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ ΠΊ ΡΠ·ΡΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²Π½Π΅Ρ ΡΠ°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·Π°ΡΠΈΡ ΠΠΠ Π² ΠΌΠΈΡΠ΅. ΠΡ ΠΈ ΠΏΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΠ΅Π»ΡΡΡΠ²Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ (Π΄ΠΎΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΡ Π±ΡΠ» ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ) Π―Π Π² ΠΌΠΈΡΠ΅. ΠΡΠ°ΠΊ, Π½Π° ΡΡΠ΅Π½Ρ Π²ΡΡ ΠΎΠ΄ΠΈΡ Java.
ΠΠΎ ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΠΌ Π―Π Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ. Π§Π΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π² Java? Simula ΠΈΠ»ΠΈ Smalltalk? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ.
Π§ΡΠΎ ΠΎΡ Simula:
1. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ (ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ).
2. ΠΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π²ΡΠ΅Π³Π΄Π° Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΊΡΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ; ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠΈΠΏΡ.
3. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
Π§ΡΠΎ ΠΎΡ Smaltalk:
1. ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Java ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π° Π² ΡΠΎΡΠΌΠ°Ρ "Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ" Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»Ρ - Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Java ΠΈ Π·Π΄Π΅ΡΡ ΡΡΠ°Π»Π° ΠΌΠΎΡΠ½Π΅ΠΉΡΠΈΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. Π’Π°ΠΊΠΆΠ΅, Java ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»Π° ΡΠΎΡΠΌΠ°Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄Π°. Π’ΠΎ Π΅ΡΡΡ Ρ Java 2 ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ: Java Language Specification (JLS) ΠΈ Java Virtual Machine Specification (JVMS).
2. Π₯ΠΎΡΡ ΠΏΡΠΎ Java Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ "Π²ΡΠ΅ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ" Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ, Π²Π²ΠΈΠ΄Ρ Π½Π°Π»ΠΈΡΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΈ ΡΠ°Π·Π½ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ² (Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠ²), Π½ΠΎ Java ΠΊΡΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΠ ΡΠ΅ΠΌ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Simula ΠΈΠ»ΠΈ C++. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈ ΡΡΡ ΡΠ°ΡΠΏΠΈΡΠ΅ΠΌ:
* ΠΠ»Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (autoboxing) ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π² ΠΏΡΠΈΠΌΠΈΡΠΈΠ² (unboxing). ΠΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ»Π»ΡΠ·ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π ΡΠ»ΠΎΠ²Ρ, Π² ΡΠΎΠΌ ΠΆΠ΅ C++ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΎΠ±Π΅ΡΡΠΊΠΈ, Π½ΠΎ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²Π½ΠΎ. Π Java ΠΆΠ΅ ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ΅Π·ΠΊΠΎΠ³ΠΎ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
* ΠΡΠ»ΠΈ ΡΠ·ΡΠΊΠΈ ΡΠΈΠΏΠ° Simula, C++ ΠΈΠ»ΠΈ Objective Π‘ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅, ΡΠΎ Java Π²Π²ΠΎΠ΄ΠΈΡ ΠΠ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ΄ΠΈΠΎΠΌΡ. Π£ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, Π° Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠ»Π°ΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½.
* Π Java ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠΏΡ (generics, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π² CLU), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, Π° Π·Π½Π°ΡΠΈΡ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π±ΡΠ΄ΡΡ Π±ΠΎΠΊΡΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ.
* ΠΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Ρ.Π΅. ΡΡΡΡΠΊΡΡΡ ΠΊΠ°ΠΊ C ΠΈΠ»ΠΈ C# Π½Π΅Ρ. ΠΠ°ΡΡΠΈΠ²Ρ Π² Java ΡΠΎΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
3. ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠΎ ΠΎΡΡΡΠ»Π°Π΅Ρ ΠΊ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈΠ· Simula ΠΈ Objective C, Π° ΡΠ°ΠΊΠΆΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π‘++. Π ΡΠ»ΠΎΠ²Ρ, Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Java ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
Π§ΡΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ: ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° ΡΠΈΠΏΠ° Mark&Sweep. ΠΠΎΠΎΠ±ΡΠ΅ Java ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·ΠΎΠ²Π°Π»Π° ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.
Π§ΡΠΎ Π½ΠΎΠ²Π°ΡΠΎΡΡΠΊΠΎΠ΅:
1. Java Π±ΡΠ»Π° ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π²Π΅Π» ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ Π½Π°Π±ΠΎΡ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ² ΠΈ ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΈ Π΄ΠΎ Java, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΡΠΎΠ³ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ² ΡΠ°ΠΌ Π½Π΅ Π±ΡΠ»ΠΎ. Π Java ΠΆΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ 32 ΠΈ 64 Π±ΠΈΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ volatile ΠΈ synchronized, ΠΏΡΠ°Π²ΠΈΠ»ΠΎ "happens before".
2. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π±Π°ΠΉΡΠΊΠΎΠ΄Π°. ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Java ΠΈΠ· ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π―Π Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»Π°ΡΡ Π² ΡΠ΅Π»ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Π‘Π΅ΠΉΡΠ°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΡΡΡΠ°-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π―Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Java Π±Π°ΠΉΡΠΊΠΎΠ΄. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²: Kotlin, Scala, Clojure.
ΠΡΠΈΡΠΈΠ½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ: Java Π½Π°ΡΡΠΏΠ°Π»Π° Π·ΠΎΠ»ΠΎΡΡΡ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ/Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Runtime. Java Ρ ΡΡΠΏΠ΅Ρ ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Android ΠΈ JavaME), Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Eclipse ΠΈΠ»ΠΈ IntelliJ IDEA ΠΈ Ρ.Π΄.), Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π‘Π£ΠΠ (Apache Derby, H2 Database, Cassandra, OrientDB, Neo4J ΠΈ Ρ.Π΄.) ΠΈ Π΄Π°ΠΆΠ΅ AAA ΠΈΠ³Ρ (Minecraft).
Π‘Π΅ΠΉΡΠ°Ρ Java ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π³ΠΎΠ΄ Π²ΡΡ ΠΎΠ΄ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ°ΠΊ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΡΠ·ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Java ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
Π Π½Π° ΡΡΠΎΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π²ΡΠ΅! ΠΡΠ΅ΠΌ Π±Π°Π·Ρ! πͺ