--- aliases: tags: - maturity/🌱 date: 2024-10-19 --- Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ происходит ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ [[ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ|ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²]] Π² ΠΌΠ΅Ρ‚ΠΎΠ΄, копируСтся **Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅** ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ==Π»ΡŽΠ±Ρ‹Π΅ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.== Однако, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ [[Бсылочный Ρ‚ΠΈΠΏ|ссылочных Ρ‚ΠΈΠΏΠΎΠ²]] копируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π½Π΅ сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ==Ссли ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ содСрТимоС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· эту ссылку, измСнСния отразятся ΠΈ Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅==. Π­Ρ‚ΠΎ часто становится ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ошибок Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², поэтому ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ [[ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ|ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹]] β€” это ΠΊΠ°ΠΊ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ листа Π±ΡƒΠΌΠ°Π³ΠΈ: Π²Ρ‹ Π΄Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ копию, ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Π½Π΅ΠΉ, Π½ΠΎ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» останСтся Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌ. А [[Бсылочный Ρ‚ΠΈΠΏ|ссылочныС Ρ‚ΠΈΠΏΡ‹]] β€” это ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° адрСса Π½Π° Π΄ΠΎΠΌ: Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΡ€ΠΈΠ΅Π΄Π΅Ρ‚ ΠΏΠΎ адрСсу ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² Π΄ΠΎΠΌΠ΅, ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ измСнится, Π΄Π°ΠΆΠ΅ Ссли Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот β€œΠ°Π΄Ρ€Π΅Ρβ€. ```java public class Example { public static void main(String[] args) { int primitive = 5; modifyPrimitive(primitive); System.out.println("ПослС измСнСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°: " + primitive); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ 5 int[] reference = {1, 2, 3}; modifyReference(reference); System.out.println("ПослС измСнСния ссылочного Ρ‚ΠΈΠΏΠ°: " + reference[0]); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ 100 } public static void modifyPrimitive(int number) { number = 10; // ИзмСнСниС ΠΊΠΎΠΏΠΈΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°, ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» Π½Π΅ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ } public static void modifyReference(int[] array) { array[0] = 100; // ИзмСнСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ ссылкС, ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив измСнится } } ``` - Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ (int), Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ primitive Π½Π΅ измСняСтся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ пСрСдаётся копия значСния. - Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с массивом (ссылочный Ρ‚ΠΈΠΏ), измСняСтся ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ пСрСдаСтся ссылка Π½Π° массив, ΠΈ ΠΌΡ‹ измСняСм содСрТимоС этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· ссылку. *** ## ΠœΠ΅Ρ‚Π° информация **ΠžΠ±Π»Π°ΡΡ‚ΡŒ**:: [[../../meta/zero/00 Java Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°|00 Java Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°]] **Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ**:: **Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ**:: **Π‘ΠΎΠ·Π΄Π°Π½Π°**:: [[2024-10-19]] **Автор**:: ### Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ - ### Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ