рднрд╛рдЧ рдПрдХ, рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ |
рднрд╛рдЧ рджреЛ, рдкреНрд░реИрдХреНрдЯрд┐рдХрд▓
рдЗрд╡рдЧреЗрдиреА рдореИрдВрдбреНрд░рд┐рдХреЛрд╡ рдЙрд░реНрдл
рдЧреЛрдбрд┐рди рдХреЗ рдПрдХ рдЯреНрд╡реАрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд:
рдЗрд╕рдореЗрдВ, рд╡рд╣ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ
enum
рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдХрд┐рддрдиреЗ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ рдХрд╛рд▓реЗ рдЬрд╛рджреВ рдХреЙрдиреНрд╕реНрдЯреИрдВрдЯрдбрд╛рдпрдирд╛рдорд┐рдХ (
рдЬреЗрдИрдкреА 309 ) рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж, рдкреНрд░рд╢реНрди рдХрд╛ рд▓реЗрдЦрдХ 8191 рдирдВрдмрд░ рдкрд░ рдЖрддрд╛ рд╣реИред
рджреЛ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ, рд╣рдо рдПрдХ рдЧрдгрдирд╛ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╕реАрдорд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдЙрдирдХреЗ рдХрд░реАрдм рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЬреЗрдИрдкреА 309 рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдкреИрдорд╛рдЗрд╢
рдПрдХ рд╕рдореАрдХреНрд╖рд╛ рдЕрдзреНрдпрд╛рдп рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкрд╣рд▓реА рдмрд╛рд░ рдЕрд╕рдВрддреБрд╖реНрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВредрд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдирд┐рдореНрди рдЧрдгрдирд╛ рдХреНрдпрд╛ рд╣реИ:
public enum FizzBuzz { Fizz, Buzz, FizzBuzz; }
рд╕рдВрдХрд▓рди рдФрд░ рдЬреБрджрд╛рдИ рдХреЗ рдмрд╛рдж:
javap -c -s -p -v FizzBuzz.class Classfile /dev/null/FizzBuzz.class Last modified 32 . 2019 .; size 903 bytes MD5 checksum add0af79de3e9a70a7bbf7d57dd0cfe7 Compiled from "FizzBuzz.java" public final class FizzBuzz extends java.lang.Enum<FizzBuzz> minor version: 0 major version: 58 flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM this_class: #2 // FizzBuzz super_class: #13 // java/lang/Enum interfaces: 0, fields: 4, methods: 4, attributes: 2 Constant pool: #1 = Fieldref #2.#3
рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рд╣рдо рдорд┐рд▓реЗ рд╣реИрдВ
- рдЧрдгрдирд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ
public static final
рдХреНрд╖реЗрддреНрд░ - рдирд┐рдЬреА рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдХреНрд╖реЗрддреНрд░
$VALUES
, $VALUES
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╕реНрддрд╛рд░ values()
рд╡рд┐рдзрд┐ values()
рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди values()
рдФрд░ valueOf()
рд╡рд┐рдзрд┐рдпрд╛рдБ- рдирд┐рдЬреА рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛
- рд╕реНрдерд┐рд░ рдЖрд░рдВрднреАрдХрд░рдг рдХрд╛ рдмреНрд▓реЙрдХ, рдЬрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рд╣реЛрддреА рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдмрд╛рдж рд╡рд╛рд▓рд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
static { Fizz = new FizzBuzz("Fizz", 0); Buzz = new FizzBuzz("Buzz", 1); FizzBuzz = new FizzBuzz("FizzBuzz", 2); $VALUES = new FizzBuzz[] { Fizz, Buzz, FizzBuzz }; }
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЧрдгрди рддрддреНрд╡реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдмрдирд╛рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рддреБрд░рдВрдд рд╕рдВрдмрдВрдзрд┐рдд
public static final
рдлрд╝реАрд▓реНрдб рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдлрд┐рд░ рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рд╕рднреА рдЧрдгрди рддрддреНрд╡реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдЖрдмрд╛рджреА рд╣реЛрддреА рд╣реИред рд▓рд┐рдВрдХ рдЙрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдКрдкрд░ рдХреЗ рдкреИрд░рд╛ рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдерд╛ред рднрд░реЗ рд╣реБрдП рд╕рд░рдгреА рдХреЛ
private static final
рдХреНрд╖реЗрддреНрд░
$VALUES
рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
рдЯреЛрдВрдЯреА
рдПрдХ рдЙрдмрд╛рдК рдЕрдзреНрдпрд╛рдп рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЧрдгрдирд╛ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВредрдЖрдк рдЕрдкрдиреА рдЦреЛрдЬ
JLS рдЕрдзреНрдпрд╛рдп
.38.9.3 "
рдПрдирдо рд╕рджрд╕реНрдпреЛрдВ" рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
JLS 8.9.3 Enum рд╕рджрд╕реНрдпрдПрдХ enum рдкреНрд░рдХрд╛рд░ E рдХреЗ рд╕рджрд╕реНрдп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:
...
* рдИ рдХреЗ рдШреЛрд╖рдгрд╛ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдПрдиреБрдо рдирд┐рд░рдВрддрд░ рдЧ рдХреЗ рд▓рд┐рдП, рдИ рд╣реИ
рд╕рдорд╛рди рд░реВрдк рд╕реЗ E рдХреЗ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рдЕрдВрддрд┐рдо рдХреНрд╖реЗрддреНрд░
рд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдоред рдлрд╝реАрд▓реНрдб рдореЗрдВ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рд╣реИ рдЬреЛ E рдХреЛ рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
рдИред рдХреЗ рд▓рд┐рдП рдЪреБрдиреЗ рдЧрдП рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд╕реА рдХреА рджрд▓реАрд▓ рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рд╣реА рдЯрд┐рдкреНрдкрдгреА рд╣реИ
c рдХреЗ рд░реВрдк рдореЗрдВ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ)ред
рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
Enum рд╕реНрдерд┐рд░рд╛рдВрдХ, рдХрд┐рд╕реА рднреА рд╕реНрдереИрддрд┐рдХ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд░реАрд░ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
рдИ рдХреА рдШреЛрд╖рдгрд╛ред
...
* рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рддрд░реАрдХреЗ:
public static E[] values(); public static E valueOf(String name);
рддреЛ, рдкреНрд░рддреНрдпреЗрдХ рдЧрдгрди рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ
values()
рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЗрд╕ рдЧрдгрди рдореЗрдВ рдШреЛрд╖рд┐рдд рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ рдХрд┐ рд╡реИрдХреНрдпреВрдо рдореЗрдВ рдПрдХ рдЧреЛрд▓рд╛рдХрд╛рд░ рдЧрдгрдирд╛ рдореЗрдВ
Integer.MAX_VALUE + 1
рддрддреНрд╡реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЬрд╛рд╡рд╛ рдореЗрдВ рдЧрдгрдирд╛ рдХреЛ
java.lang.Enum
рд╡рд░реНрдЧ рдХреЗ рд╡рдВрд╢рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡реЗ JVM рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдЕрдзреАрди рд╣реИрдВред
рдЖрдЗрдП
JVMS the4.1 рдореЗрдВ рджрд┐рдП рдЧрдП рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡рд┐рд╡рд░рдг рдХреЛ рджреЗрдЦреЗрдВ: тАЬClassFileureure:
ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[methods_count]; u2 attributes_count; attribute_info attributes[attributes_count]; }
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА JLS ┬з8.9.3 рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдореА рдХрдХреНрд╖рд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЧрдгрдирд╛ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдирд╛рдо рдХрд╛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрдХреНрд╖рд╛ рдореЗрдВ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ 16-рдмрд┐рдЯ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд
fields_count
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдПрдХ рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдпрд╛ 65_534 рдЧрдгрди рддрддреНрд╡реЛрдВ рдореЗрдВ 65_535 рдлрд╝реАрд▓реНрдб рддрдХ рд╕реАрдорд┐рдд рдХрд░рддреА рд╣реИред рдПрдХ рдХреНрд╖реЗрддреНрд░
$VALUES
рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрдХ
values()
рд╡рд┐рдзрд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред
рдЦреЗрддреЛрдВ, рд╡рд┐рдзрд┐рдпреЛрдВ, рдХрдХреНрд╖рд╛рдУрдВ, рдирд┐рд░рдВрддрд░ рдореВрд▓реНрдпреЛрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рдирд╛рдо рдирд┐рд░рдВрддрд░ рдкреВрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдирд┐рд░рдВрддрд░ рдкреВрд▓ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рд▓рд╛рдиреА рдХреЗ рдкреНрд░рд╛рдЪреАрди рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ ред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдкреВрд▓ рдореЗрдВ рдЗрд╕рдХреЗ рд▓реЗрдЦрди рдХреЗ рдмрд╛рдж рд╕реЗ рдмрд╣реБрдд рд╕реА рдирдИ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╕рд╛рдордиреЗ рдЖрдИ рд╣реИрдВ, рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрдд рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИрдВред
рд╡рд░реНрдЧ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдкреВрд▓ рдХрд╛ рдЖрдХрд╛рд░ рднреА 65_535 рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╕реАрдорд┐рдд рд╣реИред рдПрдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЧрдард┐рдд рд╡рд░реНрдЧ рдХреЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдкреВрд▓ рдХрднреА рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо, рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреАрдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ OpenJDK 14-ea + 29 рд╕реЗ javac рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдЦрд╛рд▓реА рдЧрдгрди рд╡рд░реНрдЧ рдХреЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдкреВрд▓ рдореЗрдВ 29 рдШрдЯрдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред
рдпрд╣ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЧрдгрдирд╛ рдореЗрдВ 65_534 рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рднреА рдЕрдкреНрд░рд╛рдкреНрдп рд╣реИред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо 65_505 рдпрд╛ рдЗрд╕рдХреЗ рдХрд░реАрдм рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдЪрд▓рд┐рдд рдкрд░рд┐рдЪрдп рдореЗрдВ рдЕрдВрддрд┐рдо рд░рд╛рдЧ:
рдорд╛рди
static final
рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХреЗрд╡рд▓ рд╕реНрдЯреЗрдЯрд┐рдХ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдмреНрд▓реЙрдХ рдореЗрдВ
<clinit>
рдЬрд╛ рд╕рдХрддрд╛
<clinit>
, рдЬрд┐рд╕реЗ рдХреНрд▓рд╛рд╕ рдХреЗ рд╕реНрддрд░ рдкрд░
<clinit>
рдирд╛рдордХ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛
<clinit>
рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд┐ рдХрд╛ рдмрд╛рдЗрдЯрдХреЛрдб 65_535 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдкрд░рд┐рдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛, рд╣реИ рдирд╛?
рдПрдХ
putstatic
рд╕реНрдЯреЗрдЯрд┐рдХ рд░рд╛рдЗрдЯ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди 3 рдмрд╛рдЗрдЯреНрд╕ рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ
65_535 / 3 = 21_845
рдХрд╛ рдореЛрдЯрд╛ рдЕрдиреБрдорд╛рди рджреЗрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЕрдиреБрдорд╛рди рдЕрддрд┐рд░рдВрдЬрд┐рдд рд╣реИред рдирд┐рд░реНрджреЗрд╢ рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рд╕реЗ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рди рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдкрд┐рдЫрд▓реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдФрд░ рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рдХреАрдорддреА рдмрд╛рдЗрдЯреНрд╕ рднреА рд▓реЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддрдм рднреА рдкрд░рд┐рдгрд╛рдореА рд╕рдВрдЦреНрдпрд╛ 65_505 рд╕реЗ рдХрд╛рдлреА рдХрдо рд╣реИред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
- рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЧрдгрдирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрднрдЧ 65_505 рд╣реИ
- рд╕реНрдереИрддрд┐рдХ рдЕрдВрддрд┐рдо рдХреНрд╖реЗрддреНрд░ рдЖрд░рдВрднреАрдХрд░рдг рддрдВрддреНрд░ рд╣рдореЗрдВ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ - рдЕрдзрд┐рдХрддрдо 21_845 рддрддреНрд╡, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рднреА рдХрдо рд╣реИ
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдВрддрд┐рдо рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЕрд╕реНрд╡рд╛рд╕реНрдереНрдпрдХрд░ рдЕрдиреБрдХреВрд▓рди рдФрд░ рдХрдХреНрд╖рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреАрдврд╝реА рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред