ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŒá±á¬ááºáá¡ááŒá¬ááœáẠOracle ááẠOpenJDK ááá±á¬áá»ááºááᯠááá¯ážáá¬ážá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á¡ááŒá Ạá¡áá¯á¶ážááŒá¯ááá·áº Java SE 16 (Java Platformá Standard Edition 16) ááᯠáá¯ááºááŒááºáá²á·áááºá Java SE 16 ááẠááááºááœááºááŸááá¬ážáá±á¬ Java ááááºáá±á¬ááºážáá»á¬ážááŸáá·áº áá±á¬ááºááŒááºááá¯ááºáááºááŸá¯ááᯠááááºážááááºážáá±ážáááºá ááááºá áá±ážáá¬ážáá¬ážáá±á¬ Java ááá±á¬áá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠáá¬ážááŸááºážá¡áá áºá¡á±á¬ááºááœáẠá áááºáá±á¬á¡áá«ááœáẠá¡ááŒá±á¬ááºážá¡áá²áááŸááá² áá¯ááºáá±á¬ááºááá¯ááºáááºááŒá áºáááºá Java SE 16 (JDKá JRE ááŸáá·áº Server JRE) á á¡áááºááá·áºááá·áºááœááºážáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠLinux (x86_64á AArch64)á Windows ááŸáá·áº macOS á¡ááœáẠááŒááºáááºáá¬ážáá«áááºá OpenJDK ááá±á¬áá»ááºá០áá®ááœááºáá¬ážááá·áº Java 16 áááºááœáŸááºážá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááẠGPLv2 ááá¯ááºá ááºá¡á±á¬ááºááœáẠá¡ááŒáá·áºá¡á open source ááŒá áºááŒá®ážá GNU ClassPath ááŒáœááºážáá»ááºá¡áá±ááŒáá·áº á á®ážááœá¬ážááŒá áºáá¯ááºáá¯ááºáá»á¬ážááŸáá·áº áááºááŒáœá áœá¬áá»áááºáááºááŒááºážááᯠááœáá·áºááŒá¯áá¬ážáááºá
Java SE 16 ááᯠáá±áá°áá»áá¶á·ááá¯ážááŸá¯áá¯ááºáá±ááŸá¯á¡ááŒá Ạááœá²ááŒá¬ážáááºááŸááºáá¬ážááŒá®áž áá±á¬ááºááœááºááŸááá»áááºá¡áá á¡ááºááááºáá»á¬ážááᯠáááºáááºáááºáá¶áááŸááááºááŒá áºáááºá Long Term Support (LTS) áá¬áááœá²ááẠ11 áá¯ááŸá áºá¡áá á¡ááºááááºáá»á¬ážááᯠáááºáááºáááŸáááá·áº Java SE 2026 ááŒá áºááá·áºáááºá áá¬ááá·áº LTS ááŒáá·áºáá»áááŸá¯ááᯠá ááºáááºáᬠ2021 á¡ááœáẠá á®á ááºáá¬ážáááºá Java 10 áá¯ááºáá±ááŸá¯ááŸá ááŒá®áž ááá±á¬áá»ááºááẠá¡áá áºááœááºááŸáááŸá¯áá»á¬ážá¡ááœáẠááá¯ááá¯ááá¯áá±á¬ááºážáá±á¬ á ááºáááºážááᯠáááºááœáŸááºážáᬠááá±á¬áá»ááºááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá¯ááºáááºážá ááºá¡áá áºááá¯á· ááŒá±á¬ááºážááœá¬ážááŒá±á¬ááºáž ááá·áºá¡á¬áž ááááá±ážááŒáá«á áá¯á·á áá¯ááºáá±á¬ááºáá»ááºá¡áá áºáá»á¬ážááᯠá¡áááºááá·áºáá¯ááºáá¬ážáá±á¬ ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááŸáá·áº áá¯ááºáá±ááŸá¯áá»á¬áž áááºááŒáááºá á±ááẠááŒá±á¬ááºááá áºááŒááẠá¡ááá¯ááºážá¡áááºáá»á¬áž áá«áááºáá±á¬ á¡áááºáááŒáẠááœááºážáá¶áá¬ážáá±á¬ áá¬á áá¬áá¬áááœá²áá áºáá¯ááœáẠáá¯ááºáá±á¬ááºáá»ááºá¡áá áºááᯠáá®ááœááºáá¬ážáá«áááºá
á¡áá áºááœááºááŸáááŸá¯á¡ááœááºááŒááºáááºááŸá¯ááœááºá ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááẠMercurial áá¬ážááŸááºážááááºážáá»á¯ááºááŸá¯á áá áºá០Git ááŸáá·áº GitHub áá°ážáá±á«ááºážáá¯ááºáá±á¬ááºááá·áºááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááááºáá±á¬ááºážááá¯á· ááŒá±á¬ááºážááœáŸá±á·áá²á·áááºá ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááẠááá¯ááŸá±á¬ááºááŸá¯ááá¯ááºáᬠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáááºá ááá¯ááŸá±á¬ááºááŸá¯ á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáááºá ááá±á¬áá»ááºá áááá¯ááºážáá áºáá»áŸá±á¬áẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááá¯á· áááºáá±á¬ááºááœáá·áºá áá¯ááºááŒááºáááºáá¯á¶ážáááºááŒááºážá¡ááœáẠáá¶á·ááá¯ážáá°áá®ááŸá¯ ááá¯ááá¯áá±á¬ááºážááœááºáá¬á á±áááºááŸáá·áº á¡áá¯ááºá¡ááœá¬ážá¡áá¬áá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááẠAPI áá»á¬ážááᯠááœáá·áºáá±ážáááºáᯠáá»áŸá±á¬áºááá·áºáá«áááºá ááá¯á·á¡ááŒááºá Git ááŸáá·áº GitHub ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠGit ááá¯á¡áá¯á¶ážááŒá¯áá±á·ááŸááá±á¬ á áááºáá°áá»á¬ážááŸáá·áº developer áá»á¬ážá¡ááœáẠááá±á¬áá»ááºááᯠááá¯ááá¯ááœá²áá±á¬ááºááŸá¯ááŒá áºá á±áááºá
Java 16 ááœáẠá¡ááºá¹áá«áááºá¡áá áºáá»á¬áž áá«áááºáááº-
- x86_64 ááŸáá·áº AArch64 áááá¯áááºáá¬áá»á¬ážáá±á«áºááœáẠvector ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºáá±á¬ááºááá·áº vector ááœááºáá»ááºááŸá¯áá»á¬ážá¡ááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááá·áº Vector API á á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááŸáá·áºá¡áá° jdk.incubator.vector ááᯠááá·áºááœááºážááŒá®áž áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááºááá¯ážáá»á¬ážá áœá¬ (SIMD) ááœáẠáá áºááŒáá¯ááºáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá scalar áááºáááºááŸá¯áá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠááœá²áá¯ááºááŒááºážá¡ááœáẠHotSpot JIT compiler ááœáẠáá¶á·ááá¯ážáá±ážáá¬ážááá·áº á áœááºážáá±á¬ááºáááºáá»á¬ážááŸáá·áº ááá·áºáá»ááºáááºá¡áá±ááŒáá·áº API á¡áá áºááẠá¡ááŒáá¯ááºáá±áá¬áá¯ááºáá±á¬ááºááŒááºážá¡ááœáẠvectorization ááᯠááŒááºáá¬ážá áœá¬ ááááºážáá»á¯ááºááá¯ááºá á±áá«áááºá
- C++ ááœááºáá±ážáá¬ážáá±á¬ JDK ááŸáá·áº VM HotSpot áá¯ááºááᯠC++ 14 áááºááŸááºáá»ááºááœáẠááááºáááºáá¬ážáá±á¬ á¡ááºá¹áá«áááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºááŸááááºá ááááºá C++98/03 á á¶ááŸá¯ááºážáá»á¬ážááᯠááœáá·áºááŒá¯áá²á·áááºá
- Passive áá¯ááºááœáẠáá¯ááºáá±á¬ááºááŒá®áž á¡ááŸáá¯ááºá á¯áá±á¬ááºážááŒááºážááŒá±á¬áá·áº ááŸá±á¬áá·áºááŸá±ážááŸá¯áá»á¬ážááᯠáááºááá¯ááºááá»áŸ áá»áŸá±á¬á·áá»áá±ážááá·áº ZGC (Z Garbage Collector) ááẠá¡ááá®áá±ážááŸááºáž á¡ááá¯ááºážáá»á¬ážááᯠáá±áá¹ááááºááŒááºážáááŸááá² á¡ááŒáá¯ááºáá¯ááºáá±á¬ááºááá¯ááºááá·áº á áœááºážáááºááᯠáá±á«ááºážááá·áºáá¬ážáááºá ááᯠZGC ááœáẠáá¯á¶ááŸááºááŸá±á¬áá·áºááŸá±ážááŸá¯áá»á¬ážááŸáááá·áº ááá¯ááºážááááºážá áá Ạááá¯á¡ááºáá±á¬ á¡áá¯ááºáá¬ááŸáááŒá®áž áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº ááá¯ááºáááá¯á áá¹ááá·áºá¡áááºážáááºááẠáááá¯áá«á
- SocketChannelá ServerSocketChannel ááŸáá·áº java.nio.channels á¡áááºážáá»á¬ážááá¯á· Unix socket (AF_UNIX) á¡ááœáẠáá¶á·ááá¯ážááŸá¯ áá±á«ááºážááá·áºáá¬ážáá«áááºá
- ááœááºááááºáá¬áá»á¬ážá ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬ážá cloud ááŸáá·áº embedded á áá áºáá»á¬ážá¡ááœáẠáááºáááºážáá»ááºááœáẠáá±áááºážá á¬ážááá·áº Standard C library musl ááŒáá·áº Linux ááŒáá·áºááŒá°ážáá±áž Alpine á¡ááœáẠááááºáááºážáá áºáá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ážáááºá ááá¯ááá¯á·áá±á¬áááºáááºážáá»ááºáá»á¬ážááœáẠá¡ááá¯ááŒá¯áá¬ážáá±á¬ port ááẠááá·áºá¡á¬áž áá¯á¶ááŸááºá¡ááá®áá±ážááŸááºážáá»á¬ážáá²á·ááá¯á· Java áááá¯ááááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºá á±áá«áááºá ááá¯á·á¡ááŒááºá jlink ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áááºááẠá¡áá¯á¶ážáááŒá¯áá±á¬ module áá»á¬ážá¡á¬ážáá¯á¶ážááá¯áááºááŸá¬ážááá¯ááºááŒá®áž application ááᯠrun áááºáá¯á¶áá±á¬ááºáá±á¬á¡áááºážáááºáá±á¬áááºáááºážáá»ááºááá¯áááºáá®ážááá¯ááºáááºá áááºážááẠapplication-specific áá»á áºáá áºááááºáááºážáá±á¬áá¯á¶áá»á¬ážááá¯áááºáá®ážááá¯ááºáááºá
- Elastic Metaspace ááá¹ááá¬ážá¡á¬áž JVM HotSpot ááœáẠá¡áááºážáááºáá¬áá±áᬠ(metaspace) á០ááááºážááá¯ááºáá¬ážáá±á¬ áááºááá¯áá®ááœá²áá±ááŒááºážááŸáá·áº ááŒááºáááºááá°ááŒááºážááá¯ááºáᬠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠááá¯áá±á¬ááºážá¡á±á¬áẠáá¯ááºáá±á¬ááºáá¬ážáá«áááºá Elastic Metaspace ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠááŸááºáá¬ááºááœá²ááœá²ááŸá¯ááᯠáá»áŸá±á¬á·áá»áá±ážáᬠclass loader overhead ááá¯áá»áŸá±á¬á·áá»áá±ážáᬠáááºáááºááŸá¯á áá áºááá¯á· á¡áá¯á¶ážáááŒá¯áá±á¬ á¡áááºážáááºáá¬áá±áá¬ááŒáá·áº ááááºážááá¯ááºáá¬ážáá±á¬ ááŸááºáá¬ááºááᯠááá¯ááá¯ááŒááºáááºá áœá¬ ááŒááºááá¯á·ááá¯ááºáá±á¬ááŒá±á¬áá·áº áá±ááŸááºá¡áá¯á¶ážááŒá¯áá±áá±á¬ áá¬áá¬á¡ááá®áá±ážááŸááºážáá»á¬ážá á áœááºážáá±á¬ááºáááºá¡áá±á«áº á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááŸááá«áááºá á¡áááºážáá»á¬ážááœáá·áºááŒá®ážáá±á¬áẠáááºááá¯áá®áá¯ááºááœáŸááºááŸá¯áá¯ááºááᯠááœá±ážáá»ááºáááºá ááœá±ážáá»ááºá áᬠâ-XX:MetaspaceReclaimPolicy=(balanced|aggressive|none)â ááᯠáááºážááŸááºážáá¬ážáááºá
- AArch64 áááá¯áá¬ááá¯á¡ááŒá±áá¶á áá¬á·ááºáá²áá±á«áºááœááºáááºáááºáá±áá±á¬ áááá¯áááºáá¬áá»á¬ážáá«ááŸááá±á¬ Windows á áá áºáá»á¬ážá¡ááœáẠJDK á¡áá±á«ááºááᯠáá±á«ááºážááá·áºáá¬ážáááºá
- Foreign-Memory Access API á ááááá¡á ááºážááŒáá·áºááŸá¯ááŸá¯ááᯠá¡ááá¯ááŒá¯áá¬ážááŒá®áž Java á¡ááá®áá±ážááŸááºážáá»á¬ážááẠMemorySegmentá MemoryAddress ááŸáá·áº MemoryLayout abstractions á¡áá áºáá»á¬ážááᯠááá¯ááºááœááºááŒááºážááŒáá·áº Java á¡á á¯á¡áá±ážá á¡ááŒááºáááºááŸá ááŸááºáá¬ááºáá±ááá»á¬ážááᯠáá¯á¶áá¯á¶ááŒá¯á¶ááŒá¯á¶ááŸáá·áº áááá±á¬ááºá áœá¬ áááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºá á±áááºááŒá áºáááºá
- Java á០áá°áááºážáá¯ááºááá¯á· áááºáá±á¬ááºááœáá·áº áá±ážááá·áº á ááºážááẠForeign Linker API ááᯠá¡áá±á¬ááºá¡ááẠáá±á¬áºáá¬ážáááºá Foreign-Memory API ááŸáá·áºá¡áá°á áááá¯ááááºážáááºáž á¡ááºáá¬áá±á·á áºá¡áá áºááẠááá¬ážááá¯ážáá» áá»áŸáá±áá¬ážáá±á¬ á á¬ááŒáá·áºááá¯ááºáá»á¬ážááẠáá¯ááºááá¯ážááŸá¯áá»á¬ážááᯠáááºáá®ážááẠááá¯ááá¯ááœááºáá°á á±áááºá
- áááºááá¯ááºááá¯ááºáá«ááŸááá±á¬ Java á¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠáááºáá±á·áá»áºáá»á¬ážáááºáá®ážááá¯ááºá á±ááá·áº jpackage utility ááᯠááá·áºááœááºážáá²á·áááºá á¡áá¯á¶ážáááºááŸá¯ááẠJavaFX á០javapackager ááá¯á¡ááŒá±áá¶áá¬ážááŒá®áž á¡áá»áá¯ážáá»áá¯ážáá±á¬ááááºáá±á¬ááºážáá»á¬ážá¡ááœáẠáá°áááºážáá¯á¶á á¶áá»á¬áž (Windows á¡ááœáẠmsi ááŸáá·áº exeá macOS á¡ááœáẠpkg ááŸáá·áº dmgá deb ááŸáá·áº Linux á¡ááœáẠrpm) á¡á á¯á¶á¡áááºááᯠáááºáá®ážááá¯ááºáááºá áááºáá±á·áá»áºáá»á¬ážááœáẠááá¯á¡ááºáá±á¬ ááŸá®ááá¯ááŸá¯á¡á¬ážáá¯á¶áž áá«áááºáá«áááºá
- sun.misc.Unsafe áá²á·ááá¯á·áá±á¬ á¡áá±ážááŒá®áž API áá»á¬ážá០ááœá²á JDK á¡ááœááºážááá¯ááºážá¡á¬ážáá¯á¶ážá áááºážáá»ááºáá±á¬ áá¬áá¶ááŸá¯ááᯠáá°áááºážá¡ááá¯ááºáž ááœáá·áºáá¬ážáááºá â--ááá¬ážááááº-áááºáá±á¬ááºááœáá·áºâ ááœá±ážáá»ááºááŸá¯ááááºááá¯ážááᯠááá¯áá¯á¶ááŸááºá¡á¬ážááŒáá·áº âááœáá·áºááŒá¯â á¡á á¬áž âááŒááºážâ áá¯áááºááŸááºáá¬ážááŒá®ážá áááºážááẠá¡ááœááºážááá¯ááºážá¡áááºážáá»á¬ážá áááºážáááºážáá»á¬ážááŸáá·áº á¡ááœááºá¡áá»á¬ážá á¯ááᯠáááºáá±á¬ááºááẠáá¯ááºáá»á¬ážá០ááŒáá¯ážáááºážááŸá¯áá»á¬ážááᯠááááºááá¯á·ááœá¬ážáááºááŒá áºáááºá ááá·áºáááºáá»ááºááᯠáá»á±á¬áºááŒááºááẠâ-illegal-access=permitâ ááœá±ážáá»ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá«á
- "instanceof" á¡á±á¬áºááá±áá¬ááœáẠááá¯ááºáá®áá±á¬áá¯á¶á á¶ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááẠáááºááŒáááºááœá¬ážáááºá áááºážááẠá á áºáá±ážáá¬ážáá±á¬áááºááá¯ážááá¯áááºááœáŸááºážáááºá¡ááœáẠlocal variable áá áºáá¯ááᯠáá»ááºáá»ááºážáááºááŸááºááá¯ááºá á±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠâif (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}â âString s = (String) objâ ááᯠá¡ááá¡áááºáž á¡áááá¹áá«ááºááá±á¬áºáá² áá»ááºáá»ááºážáá±ážááá¯ááºáááºá Was: if (obj instanceof Group) { Group group = (Group) obj; var entries = group.getEntries(); } ááᯠáááºááẠâGroup group = (Group) objâ ááᯠá¡áááá¹áá«ááºááœáá·áºááá¯ááá¯ááºááŒááºáž áááŸááá²: if (obj instanceof Group group) { var entries = group.getEntries(); }
- "record" áá±á¬á·áá»ááºá
á¬áá¯á¶ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá¡á¬áž áááºááŒáááºá¡á±á¬ááºááŒá¯áá¯ááºáá¬ážááŒá®áž áá±áá¬ááááºážáááºážááá·áºááá
á¹á
áá»á¬ážááœáẠequals(), hashCode() ááŸáá·áº toString() áá²á·ááá¯á·áá±á¬ á¡ááá·áºáááá·áºáááºážáááºážáá»á¬ážá
áœá¬ááᯠááŸááºážááŸááºážáááºážáááºážáááºááŸááºááẠááá¯á¡ááºááŸá¯ááᯠáááºááŸá¬ážáá±ážááá·áº á¡áááºážá¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬ážá¡ááœáẠáá»á
áºáá»á
áºáá»á
áºáá»á
áºáá±á¬áá¯á¶á
á¶ááᯠáá¶á·ááá¯ážáá±ážáá«áááºá áááŒá±á¬ááºážáá²áá±á¬ áááºáááºáá»á¬ážááœááºáá¬á á¡áááºážáá
áºáá¯ááẠequals(), hashCode() ááŸáá·áº toString() áááºážáááºážáá»á¬ážá á
á¶á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá±á¬á¡áá«á áááºážááẠáááºážááá¯á·á ááŸááºážáááºážááŒááºáá¬ážáá±á¬ á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáááŸááá² áá¯ááºáá±á¬ááºááá¯ááºáááº- á¡áá»á¬ážáá°ááŸá¬ ááŸááºáááºáž BankTransaction(LocalDate áááºá
áœá²á ááŸá
áºáááá¬áá á
á¬áááºážáá±á¬áºááŒáá»ááº) {}
á€ááŒá±ááŒá¬áá»ááºááẠáááºáá±á¬ááºáá°ááŸáá·áº getter áááºážáááºážáá»á¬ážá¡ááŒáẠequals(), hashCode() ááŸáá·áº toString() áááºážáááºážáá»á¬ážá á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠááá·áºááœááºážáá±ážáááºááŒá áºáááºá
- á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážááᯠá¡ááœá±áááºáá¶áááºá áááºáááºážááá¯ážááẠááá¯á·ááá¯áẠá¡á á¬ážááá¯ážááẠá¡ááŒá¬ážá¡áááºážáá»á¬ážááŸáá·áº á¡ááºáá¬áá±á·á áºáá»á¬ážá á¡áá¯á¶ážáááŒá¯ááá¯ááºáá±á¬ á¡áá¯á¶ááááºá¡áááºážáá»á¬ážááŸáá·áº á¡ááºáá¬áá±á·á áºáá»á¬ážá¡ááœáẠáá¯ááááá°ááŒááºážááᯠá¡ááá¯ááŒá¯áá¬ážáááºá á¡áá¯á¶ááááºá¡áááºážáá»á¬ážááẠááá¯ážáá»á²á·ááŸá¯á¡ááœáẠááœáá·áºááŒá¯áá¬ážáá±á¬ á¡áááºážááœá²áá»á¬ážááᯠááŒááºáá¬ážá áœá¬ á á¬áááºážááŒá¯á á¯ááŒááºážá¡áá±á«áº á¡ááŒá±áá¶á áááºáá±á¬ááºááœááºážáá¶ááŒááºáááºááŸá¯áá»á¬ážááẠá á°áá«á¡áááºážá¡á á¬ážá¡áá¯á¶ážááŒá¯ááŸá¯ááᯠááá·áºáááºááẠááá¯ááá¯ááŸááºážáááºážáá±á¬áááºážáááºážááᯠáá±ážáá«áááºá á¡áá¯áẠcom.example.geometry; á¡áá»á¬ážáá°ááŸá¬ á¡áá¯á¶ááááºá¡áááºážá¡á á¬áž Shape ááẠcom.example.polar.Circleá com.example.quad.Rectangleá com.example.quad.simple.Square {âŠ}
source: opennet.ru