ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому
ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€

🧠 Как Java Ρ…Ρ€Π°Π½ΠΈΡ‚ boolean Π² памяти?

🧠 Как Java Ρ…Ρ€Π°Π½ΠΈΡ‚ boolean Π² памяти? БСгодня я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ boolean Π² Java β€” это Π½Π΅ просто true ΠΈΠ»ΠΈ false. А Π·Π° этим простым Ρ‚ΠΈΠΏΠΎΠΌ скрываСтся интСрСсный нюанс, особСнно Ссли Ρ‚Ρ‹ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π΅ΡˆΡŒΡΡ ΠΎΠ± экономии памяти. Π’ Java Π½Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всСго 1 Π±ΠΈΡ‚. Π₯отя Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ boolean β€” это ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ (true/false), Π½Π° самом Π΄Π΅Π»Π΅ Π² памяти ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1 Π±Π°ΠΉΡ‚ (Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ большС, Π² зависимости ΠΎΡ‚ структуры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°). ΠŸΡ€ΠΈΠΌΠ΅Ρ€: public class Flags { boolean flag1; boolean flag2; boolean flag3; } Π’Ρ‹ Π΄ΡƒΠΌΠ°Π΅ΡˆΡŒ β€” Ρ‚Ρ€ΠΈ Π±ΠΈΡ‚Π°. Но JVM Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ поля, ΠΈ ΠΈΠ·-Π·Π° этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ 16 Π±Π°ΠΉΡ‚ ΠΈΠ»ΠΈ большС, Π² зависимости ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ? πŸ“Œ ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°: JVM ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ модСль памяти Ρ€Π°Π΄ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ β€” доступ ΠΊ Π±Π°ΠΉΡ‚Π°ΠΌ быстрСС, Ρ‡Π΅ΠΌ ΠΊ Π±ΠΈΡ‚Π°ΠΌ. НСт Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… сдвигов, масок ΠΈ лишнСй Π»ΠΎΠ³ΠΈΠΊΠΈ. πŸ’‘ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли хочСтся ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ? Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ BitSet: BitSet flags = new BitSet(3); flags.set(0, true); Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ битовая структура. ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€, Ссли Ρƒ тСбя дСсятки ΠΈΠ»ΠΈ сотни логичСских Ρ„Π»Π°Π³ΠΎΠ². А Ρ‚Ρ‹ Π·Π½Π°Π» ΠΎΠ± этом нюансС хранСния boolean? Пиши Π² коммСнтариях, сталкивался Π»ΠΈ с пСрСрасходом памяти ΠΈΠ·-Π·Π° простых Ρ‚ΠΈΠΏΠΎΠ². πŸ‘‰ @BookJava

564 просмотров

Канал Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€Π°

1Β 609 подписчиков Β· Наука

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

Π•Ρ‰Ρ‘ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ «Наука»

Π§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

Π”Π²Π° Ρ€Π°Π·Π° Π² нСдСлю свСТиС посты этого ΠΊΠ°Π½Π°Π»Π° β€” Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ Π² Π»ΠΈΡ‡Π½ΡƒΡŽ Π»Π΅Π½Ρ‚Ρƒ. Π‘Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска ΠΊΠ°Π½Π°Π»Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.