Π Π°Π·Π½ΠΎΠ΅

Java классы ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²: ΠšΠ»Π°ΡΡΡ‹ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ Π² Java | Java master

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠšΠ»Π°ΡΡΡ‹ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ Π² Java | Java master

Π‘ классами ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°ΠΌΠΈ ΠΌΡ‹ ΡƒΠΆΠ΅ нСявно познакомились, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.Β Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΌΠΎΠ³ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопрос: Π·Π°Ρ‡Π΅ΠΌ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π΅ int, Π° Integer. ВсС Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ это Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Ρ‹ классы ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ.

Π‘Ρ‚ΠΎΠΈΡ‚ΡŒ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ классы ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π°Π½Π½Ρ‹Π΅ классы ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚:Β Double,Β Float,Β Long,Β Integer,Β Short,Β Byte,Β Character,Β Boolean.Β 

Π”Π°Π½Π½Ρ‹Π΅ классы ΠΎΡ‡Π΅Π½ΡŒ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ класс String.Β ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ явно (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ конструктор), Ρ‚Π°ΠΊ ΠΈ Π½Π΅ явно (прямым присвоСниСм ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π° классу ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ΅) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Β»=Β» Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (Ρ‚ΠΈΠΏΠ° «класса-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈΒ»). ПослСднСС Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π°Π²Ρ‚ΠΎΡƒΠΏΠ°ΠΊΠΎΠ²Π° (autoboxing).

  1. package com.javamaster;

  2. Β 

  3. public class AutoBoxingExample {

  4. Β  Β 

  5. Β  Β  public static void main(String[] args){
  6. Β  Β  Β  Β  Integer a = new Integer(5);//явноС созданиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ
  7. Β  Β  Β  Β 

  8. Β  Β  Β  Β  int b = a;//нСявноС созданиС…Β 

  9. Β  Β  }

  10. }

Как ΠΈ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ созданы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ классов ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΊΡƒΡ‡Π΅ (heap). НО, Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ часто Π»ΡŽΠ±ΡΡ‚ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π² тСстах ΠΈΠ»ΠΈ собСсСдованиях. Оно касаСтся цСлочислСнных классов ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ. НСявноС созданиС Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅Β -128 +127 Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡƒΠ»Π΅ ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎ String.Β ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ значСниями Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ссылками Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Автоупаковка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ соотвСтствия Ρ‚ΠΈΠΏΠ° исходного ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π° β€” Ρ‚ΠΈΠΏΡƒ «класса-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈΒ». ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π°Π²Ρ‚ΠΎΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° byte Π² Short, Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ явного привСдСния byte->short Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции. О ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΌΡ‹ ΡƒΠΆΠ΅ писали.

  1. package com.javamaster;

  2. Β 

  3. public class AutoBoxingExample {

  4. Β  Β 

  5. Β  Β  public static void main(String[] args){
  6. Β  Β  Β  Β 

  7. Β  Β  Β  Β  System.out.println(«a = «+a);
  8. Β  Β  Β  Β 

  9. Β  Β 

  10. Β  Β  Β  Β  System.out.println(«d = «+d);
  11. Β  Β 

  12. Β  Β  }

  13. Β 

  14. }

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

a = 5
d = 456

ΠšΠ»Π°ΡΡΡ‹ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ Π΅Ρ‰Π΅ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с соотвСтствСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° самыС популярныС:

  1. package com.javamaster;

  2. Β 

  3. public class AutoBoxingExample {

  4. Β  Β 

  5. Β  Β  public static void main(String[] args){
  6. Β  Β  Β  Β  double b = Double.parseDouble(a);//ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, самый популярный ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΈΠ· строки Π² цСлочислСнный ΠΈΠ»ΠΈ Π΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ
  7. Β  Β  Β  Β  int c = Integer.parseInt(a);
  8. Β  Β  Β  Β  System.out.println(b);
  9. Β  Β  Β  Β  System.out.println(c);
  10. Β  Β  Β  Β 

  11. Β  Β  Β  Β 

  12. Β  Β  Β  Β  System.out.println(Integer.MAX_VALUE);//константа максимального значСния
  13. Β  Β  Β  Β 

  14. Β  Β  Β  Β  System.out.println(Integer.bitCount(78));// Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅
  15. Β  Β  Β  Β 

  16. Β  Β  Β  Β  System.out.println(Float.valueOf(«80»));//Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ цСлочислСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
  17. Β  Β  Β  Β 

  18. Β  Β  Β  Β  System.out.println(Integer.valueOf(«444»,16)); //Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ цСлочислСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ строкового прСдставлСния,
  19. Β  Β  Β  Β  //Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ систСмы счислСния

  20. Β  Β  }

  21. Β 

  22. }

Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Π΅Ρ‰Π΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ созданиС Boolean ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎΡ‚ вопрос встрСчаСтся достаточно часто Π² тСстах:

  1. package com.javamaster;

  2. Β 

  3. public class BooleanExample {

  4. Β  Β 

  5. Β  Β  public static void main(String[] args){
  6. Β 

  7. Β  Β  }

  8. Β 

  9. }

На самом Π΄Π΅Π»Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ это самыС популярныС ΠΈ самыС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для мСня.

Π’ΠΎΡ‚ ΠΈ всС, Ρ‡Ρ‚ΠΎ касаСтся классов ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π’Ρ‹ смоТСтС ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

ΠŸΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ ΡΡ‚Π°Ρ‚ΡŒΡ? ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ссылкой:

Pro Java: ΠšΠ»Π°ΡΡΡ‹-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²

ΠœΡ‹ ΡƒΠΆΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с классами ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°ΠΌΠΈ (wrapper classes) для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ заостряли Π½Π° Π½ΠΈΡ… Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. БСйчас ΠΆΠ΅ ΠΌΡ‹ рассмотрим ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ классов ΠΈ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ поля классов.

Как Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅, Π² Java для хранСния Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… языком, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ простыми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ), Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ int ΠΈΠ»ΠΈ double. ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ‚Π°ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· сообраТСний ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ добавляСт Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы, Π΄Π°ΠΆΠ΅ Π² случаС ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… вычислСний.

НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ прСдставлСниС. НапримСр, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΏΠΎ ссылкС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· стандартных структур Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Java, ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ эти структуры Π΄Π°Π½Π½Ρ‹Ρ… для сохранСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Ρ‚Π°ΠΊΠΈΠΌΠΈ (ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ) ситуациями, Java ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой классы, ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

ΠžΠ±Π΅Ρ€Ρ‚ΠΊΠΈ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² β€” это Double, Float, Long, Integer, Short, Byte, Character ΠΈ Boolean. Π­Ρ‚ΠΈ классы ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Java.

И Π΄Π°Π»Π΅Π΅ ΡƒΠΆΠ΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ этих классов.

По сущСству ΠΌΡ‹ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· использовали ΠΏΠΎΠ»Π΅ length массива args, для поучСния количСства Π΅Π³ΠΎ элСмСнтов. Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с полями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ класса ΡΠ²Π»ΡΡŽΡ‚ΡΡ строки 11 ΠΈ 13.

Π’ 11 строкС ΠΌΡ‹ провСряСм Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки являСтся строкой true, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ wBoolean присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true. Π’ ΠΈΠ½ΠΎΠΌ случаС ΠΎΠ½ΠΎ остаСтся Ρ€Π°Π²Π½Ρ‹ΠΌ false, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ Π·Π°Π΄Π°Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСн Π½ΠΈΠΆΠ΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования класса Character:

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ использован статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ isDigit класса Character, для опрСдСлСния являСтся Π»ΠΈ элСмСнт массива символом ΠΈΠ»ΠΈ числом.

ΠœΠ΅Ρ‚ΠΎΠ΄ isDigit Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ Π΅ΠΌΡƒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΈΠΏ char являСтся числом, Π²ΠΎ всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях возвращаСтся false.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ здСсь Π΅Ρ‰Π΅ Ρ‚Π°ΠΊ ΠΆΠ΅ использован ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Ρ†ΠΈΠΊΠ» Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ, Ссли Π±Ρ‹ Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ, Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ Π² строкС 15 ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π»ΡΡ Π±Ρ‹ Π΄Π°ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° провСряСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ являлось Π±Ρ‹ числом.

Класс Charaster содСрТит мноТСство ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠΎΠ»Π΅ΠΉ. ВсС это ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ· ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ (зависит ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки):

Ну ΠΈ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² с классами ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°ΠΌΠΈ для числовых Ρ‚ΠΈΠΏΠΎΠ²:

Π’ΡƒΡ‚ просто ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ использованиС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² классов Byte ΠΈ Integer, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ использованиС статичСских ΠΏΠΎΠ»Π΅ΠΉ Ρ‚ΠΈΠΏΠ° MAX_VALUE.

БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ parseInt ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² число Ρ‚ΠΈΠΏΠ° int.

БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ bitCount подсчитываСт количСство Π±ΠΈΡ‚ΠΎΠ² Ρ€Π°Π²Π½Ρ‹Ρ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΌ, ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ числовом Ρ‚ΠΈΠΏΠ΅.

ΠšΡ€ΠΎΠΌΠ΅ этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠΎΠ»Π΅ΠΉ, Ρƒ классов-ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Π°ΠΌ понадобятся ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ этими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Ρ‚ΠΎ посмотритС спСрва Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅.

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

На этом я Π΄ΡƒΠΌΠ°ΡŽ с этой Ρ‚Π΅ΠΌΠΎΠΉ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ. ЦСль Π±Ρ‹Π»Π° ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ поля классов. Π₯отя ΠΏΠΎΠΊΠ°, ΠΌΠΎΠΆΠ΅Ρ‚, это всС ясности ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΎ, Π½ΠΎ Π½Π° ΠΏΠΎΠ΄ΠΊΠΎΡ€ΠΊΡƒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡΠ΅ΡΡ‚ΡŒ.

Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ массивы ΠΈ строки. ВсС ΠΎΠ½ΠΈ относятся ΠΊ ссылочным Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Java ΠΈ соотвСтствСнно ΠΈΠΌΠ΅ΡŽΡ‚ свои поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΅Ρ‰Π΅ Π³Π»ΡƒΠ±ΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ с Ρ‡Π΅ΠΌ ΠΈΡ… Сдят. И Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ нСпосрСдствСнно ΠΊ ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ класса.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ экзСмпляров классов-ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ООП, Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ слоТной, Π½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π΅ всС ΠΆΠ΅ стоит, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² сознании ΠΎΡ‚Π»ΠΎΠΆΠΈΠ»ΠΎΡΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ ΠΈΠ· сСбя ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ссылочныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΡ‹ ΡƒΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎΠ± этом Π²ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π² Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Java.

БСйчас ΡƒΠΆΠ΅ слСдуСт ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ сравнСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° сравнСния (==) ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π° ссылочныС ΠΏΠΎ ссылкС. БСйчас эта Ρ„Ρ€Π°Π·Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ особо понятной, Π½ΠΎ надСюсь эта ΡΡ‚Π°Ρ‚ΡŒΡ прояснит ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ.

ЗначСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² хранятся Π² стСкС, ΠΈ каТдая пСрСмСнная ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ…Ρ€Π°Π½ΠΈΡ‚ своС нСзависимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² стСкС. Π‘ΠΎ ссылочными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΈ с классами ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², Π² частности, всС Π½Π΅ Ρ‚Π°ΠΊ. Π’ стСкС хранится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π‘Π°ΠΌ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΊΡƒΡ‡Π΅ (heap).

ΠšΡƒΡ‡Π° создаСтся, ΠΊΠΎΠ³Π΄Π° JVM запускаСтся ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… Π²ΠΎ врСмя выполнСния прилоТСния. Когда ΠΊΡƒΡ‡Π° становится ΠΏΠΎΠ»Π½ΠΎΠΉ, происходит ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сборки мусора. ВсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° большС Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‚ΡΡ, Ρ‚Π΅ΠΌ самым освобоТдая мСсто для Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π’Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ JVM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ большС памяти, Ρ‡Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΡƒΡ‡Π°. НапримСр, для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Java ΠΈ стСков ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² выдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΊΡƒΡ‡ΠΈ.

Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΡƒΡ‡ΠΈ зависит ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, это Π³Π΄Π΅-Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ 2 ΠΈ 128 Кб.

Если Π²Ρ‹ создаСтС ΠΈ присваиваСтС Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ хранятся Π² стСкС. Если ΠΆΠ΅ Π²Ρ‹ создаСтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚ΠΎ ссылка хранится Π² стСкС, сам ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создаСтся Π² ΠΊΡƒΡ‡Π΅. ΠŸΡ€ΠΈ создании массива ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² происходит Ρ‚ΠΎ ΠΆΠ΅ самоС Ρ‡Ρ‚ΠΎ ΠΈ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ: ссылка Π½Π° массив Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π½Π° стСкС, Π° сам массив Π² ΠΊΡƒΡ‡Π΅.

Ну для Π½Π°Ρ‡Π°Π»Π° Ρ…Π²Π°Ρ‚ΠΈΡ‚ ΡƒΠΆΠ΅ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ попрактикуСмся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΎ Ρ‡Π΅ΠΌ ΠΈΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ.

Π‘ΠΏΠ΅Ρ€Π²Π° рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈ Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄:

Π—Π΄Π΅ΡΡŒ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ. ВсС Π²Ρ€ΠΎΠ΄Π΅ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ всС Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Ни Ρ‡Ρ‚ΠΎ, Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹, Π½Π΅ ΠΏΡ€Π΅Π΄Π²Π΅Ρ‰Π°Π΅Ρ‚ Π±Π΅Π΄Ρ‹ πŸ™‚ Π½ΠΎ Π½Π°Π΄ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π° Ρ‡Π΅ΠΊΡƒ. Π“Ρ€Π°Π±Π»ΠΈ ΠΏΠΎ Π²ΡΡŽΠ΄Ρƒ!!!

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅Ρ€, Π±Π΄ΠΈ! И Π½Π΅ Π±Π·Π΄ΠΈ! πŸ™‚

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ посмотрим Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ πŸ™‚

ΠžΡ‚Π°Π½ΠΈ Ρ‚ΠΎ! Π“Ρ€Π°Π±Π΅Π»ΡŒΠΊΠΈ наши!!! Ну ΠΊΡƒΠ΄Π° ΠΆ Π±Π΅Π· Π½ΠΈΡ… Ρ‚ΠΎ Ρ€ΠΎΠ΄ΠΈΠΌΡ‹Ρ…!

НадСюсь Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°?

Π’Π΅ΠΏΠ΅Ρ€ΡŒ intA ΠΈ intB хотя ΠΈ Ρ€Π°Π²Π½Ρ‹ 500, Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π½Π΅ Ρ€Π°Π²Π½Ρ‹ πŸ™‚ Π’Π΅Ρ€Π½Π΅ΠΉ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ½ΠΈ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля int Ρ€Π°Π²Π½ΠΎΠ΅ 500.

Β 

Π’Π°ΠΊ Π² Ρ‡Π΅ΠΌ ΠΆΠ΅ Π΄Π΅Π»ΠΎ? Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ. Π’ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ intA ΠΈ intB это ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° Integer. Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ 50 ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π°Π²Π½Ρ‹, Π° ΠΏΡ€ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ 500 ΠΎΠ½ΠΈ Π²Π΄Ρ€ΡƒΠ³ стали Π½Π΅ Ρ€Π°Π²Π½Ρ‹? ВсС Π΄Π΅Π»ΠΎ Π² кэшС. Кэш Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это Π½Π΅ дСньги πŸ™‚ Π­Ρ‚ΠΎ массив для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ классС класса Integer. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ классы, Π° Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ классы, Π΅Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΈ Ρ‚ΠΎ это всС, скорСй всСго, Π²Π°ΠΌ сСйчас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ понятно. Но всС ΠΆΠ΅ для ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π°Π΄ΠΎ Π·Π°Π²ΡΠ·Π°Ρ‚ΡŒ сСбС ΡƒΠ·Π΅Π»ΠΎΠΊ Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Π½Π° этот Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс:

БобствСнно здСсь Π΄Π°ΠΆΠ΅ ΠΎ классах ΠΏΠΎΠΊΠ° Π½ΠΈ Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ Π·Π½Π°Ρ‚ΡŒ, достаточно просто Ρ…ΠΎΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ английский язык. И Ρ‚Π°ΠΊ ΠΊΡΡˆΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ значСниями для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² классС Integer ΡΠ²Π»ΡΡŽΡ‚ΡΡ значСния ΠΎΡ‚ -128 Π΄ΠΎ 127 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Но этот Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΡ†ΠΈΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ JVM ΠΈΠ»ΠΈ ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ запуска Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. И Ρ‚ΠΎΠ³Π΄Π° Π½Π°Ρ‡Π½ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ чудСса πŸ™‚

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС я Π·Π°Π΄Π°Π» Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π³Π΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» кэш ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас сравнСниС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 500 ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.

ВсС Ρ‚ΠΎΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ ΠΈΠ· срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, просто, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку это Π³ΠΎΡ€Π°Π·Π΄ΠΎ нагляднСС ΠΈ быстрСС, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ каТСтся.

Π’ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°Π΄ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ .equals(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΡΡ‚ΡŒ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π΅ΡΡ‚ΡŒ Ρƒ класса Object, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ всС классы Π² Java. Но это Ρ‚Π΅ΠΌΠ° для большого ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π° ΠΎ наслСдовании ΠΈ классС Object. И ΠΏΠΎΠΊΠ° ΠΎΠ± этом Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π½ΠΎ. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, сСйчас, Π΄Π°ΠΆΠ΅ эта ΡΡ‚Π°Ρ‚ΡŒΡ Π΅Ρ‰Π΅ слоТна для понимания Ссли Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Java, Π½ΠΎ всС ΠΆΠ΅ Π΅Π΅ стоит Π΄ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΊΠΎΠ³Π΄Π° ΡƒΠΆΠ΅ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ большС Π·Π½Π°Π½ΠΈΠΉ ΠΈ ΠΎΠΏΡ‹Ρ‚Π°, Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π·ΠΎΠΊ πŸ™‚ Π― ΠΏΡ€ΠΈΠ²Π΅Π» эту ΡΡ‚Π°Ρ‚ΡŒΡŽ сСйчас Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… граблях.

Но это Π΅Ρ‰Π΅ Π½Π΅ всС Π³Ρ€Π°Π±Π»ΠΈ πŸ™‚ Вас Π΅Ρ‰Π΅ ΠΆΠ΄Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠ²!

К Π½Π°ΡˆΠ΅ΠΌΡƒ классу я дописал Π΅Ρ‰Π΅ нСсколько строк. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΈΡ… ΠΈ ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄:

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅ Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΊΠ° Π½Π΅ понятно, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ valueOf() ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅ скаТу Ρ‡Ρ‚ΠΎ valueOf() это ΠΌΠ΅Ρ‚ΠΎΠ΄ класса Integer, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Пока Π½Π° всС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅ΠΌ Π½Π° Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Как Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡ€ΠΈ сравнСнии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Integer содСрТащих ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ значСния, созданных с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ значСниях ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ false. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ это ссылки intA ΠΈ intB ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° ΠΏΡ€ΠΈ использовании valueOf(), Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ссылки intA ΠΈ intB ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ΠžΡ‚ сюда Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании для сравнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° == для ссылочных Ρ‚ΠΈΠΏΠΎΠ², ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ссылки, Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ equals():

println

(«Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· equals() intA ΠΈ intB Π΄Π°Π΅Ρ‚ » + intA.equals(intB));

Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π°ΠΌ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° экран: Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· equals() intA ΠΈ intB Π΄Π°Π΅Ρ‚ true

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ значСния ΠΈ посмотрим Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Когда ΠΌΡ‹ Π·Π°Π΄Π°Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 500, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΈ сравнСнии ссылок. Но всС ΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΊΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° valueOf().

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠΎΠ΄Π° (хотя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Π°ΠΌ ΠΏΠΎΠΊΠ° это ΠΏΠΎΠΊΠ° ΠΈ Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ) ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Integer. Если ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ находится Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… кэша, Ρ‚ΠΎ ΠΎΠ½ΠΎ бСрСтся ΠΎΡ‚ Ρ‚ΡƒΠ΄Π°. Кэш ΠΈΠ· сСбя прСдставляСт просто массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° Integer Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ -128 Π΄ΠΎ 127.

Из всСго Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ слСдуСт:

  • ΠšΡΡˆΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ значСниями для Integer ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠ²Π»ΡΡŽΡ‚ΡΡ значСния ΠΎΡ‚ -128 Π΄ΠΎ 127
  • Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Integer ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΡ†ΠΈΠΉ запуска JVM
  • ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС autoboxing
  • ΠŸΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ происходит
  • ΠŸΡ€ΠΈ сравнСнии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° == ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΌΠΎΡ€Π΄Π΅ гарблями ΠΎΡˆΠΈΠ±ΠΊΡƒ
  • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°Π΄ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° equals()

ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊ ΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² классов ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²:

  • Byte, Short, Long (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ -128 Π΄ΠΎ 127 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ)
  • Charaster (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ 0 Π΄ΠΎ 127 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ)
  • Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Integer эти значСния Π·Π°Π΄Π°Π½Ρ‹ ТСстко ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ запуска нСльзя

ΠšΠ»Π°ΡΡΡ‹ Float ΠΈ Double Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ значСния. Ну Π° Boolean ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ бСссмыслСнно.

Ну ΠΈ Π½Π° послСдок Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‡ΠΈΠΊ ΠΈ Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄:

Π₯отя, ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΊΠ° Π½Π΅ понятно, Π½ΠΎ просто Π½Π°ΠΌΠΎΡ‚Π°ΠΉΡ‚Π΅ Π½Π° ус πŸ™‚ Π½Ρƒ ΠΈΠ»ΠΈ Ссли Π½Π΅Ρ‚ усов завяТитС ΡƒΠ·Π΅Π»ΠΎΠΊ Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π‘ΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΉ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ iHash Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ…ΡΡˆ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚. Из Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ присвоСнии ссылкам intA ΠΈ intB значСния 5, Π΄Π°Π½Π½Ρ‹Π΅ ссылки ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС находящийся Π² кэшС. ΠŸΡ€ΠΎΡΡŒΠ±Π° Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ Ρ…ΡΡˆ ΠΈ кэш. А ΠΏΡ€ΠΈ присвоСнии этим ссылкам значСния 500 происходит скрытый Π²Ρ‹Π·ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½ΠΎΠ²Ρ‹Π΅, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎ ΠΈΡ… Ρ…ΡΡˆΡƒ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ присвоСнии этим ссылкам снова значСния 5 ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Π½ΠΎ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ всСгда хранится Π² кэшС.

На этом, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ. Как я ΡƒΠΆΠ΅ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Java, Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ всС написанноС Ρ‚ΡƒΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°ΠΌ Π½Π΅ понятно. Но ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ этот Π±Π»ΠΎΠ³ ΠΈ Π²Ρ‹ достигнитС просвСтлСния Π² Java πŸ™‚ ΠΈ Π²Π°ΠΌ эта ΡΡ‚Π°Ρ‚ΡŒΡ станСт понятной πŸ™‚

Π Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС Π±Π»ΠΎΠ³Π° ΠΌΠ½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ»ΠΎΡΡŒ ΠΌΠ°Π»ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° всС ΠΆΠ΅ относится ΠΊ классам ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°ΠΌ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΡƒΠΆΠ΅ Π½Π°Ρ‡Π°Π»ΠΈ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ, Π½ΠΎ для понимания этой ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΎΠΈΡ… статСй. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ΠΈ … Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ с пСснСй πŸ™‚

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Java

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ΅Ρ€ΠΈΡŽ ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС Java. И сСгодня ΠΏΠΎΡ€Π° Π½Π°ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Π΅ΠΌ Β«Hello worldΒ». ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….Β 

Java являСтся строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком программирования. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ извСстный Ρ‚ΠΈΠΏ Π΅Ρ‰Π΅ Π½Π° этапС компиляции. НапримСр, Ссли ΠΌΡ‹ возьмСм язык Javascript, Ρ‚ΠΎ Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ Β«var a = 45Β» ΠΈΠ»ΠΈ Β«var b = Β«HelloΒ». Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ здСсь Π½Π΅ указываСтся. Π’ Java ΠΆΠ΅, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ². Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π΅ Ρ‚ΠΈΠΏ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ компилятор Π·Π½Π°Π» с ΠΊΠ°ΠΊΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π—Π°ΠΊΡ€Π΅ΠΏΠΈΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создали Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈΒ ΠΈ создайтС Π½ΠΎΠ²Ρ‹ΠΉ класс. НазовСм Π΅Π³ΠΎ TypesOfData. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΈ создании ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ создался ΠΌΠ΅Ρ‚ΠΎΠ΄ main. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π₯ΠΌ.. Но ΠΌΡ‹ Π½Π΅ смоТСм Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½ΠΈΡ‡Π΅Π³ΠΎ Π΅Ρ‰Π΅ Π½Π΅ Π²Ρ‹ΡƒΡ‡ΠΈΠ»ΠΈ. НуТно Π΅Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ.

Π’ Java Π΅ΡΡ‚ΡŒ 8 ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСлят Π½Π° 3 Π³Ρ€ΡƒΠΏΠΏΡ‹, Π²ΠΎΡ‚ ΠΎΠ½ΠΈ:

  1. Π¦Π΅Π»Ρ‹Π΅ числа β€” byte, short, char, int, long
  2. Числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (ΠΈΠ½Π°Ρ‡Π΅ Π΄Ρ€ΠΎΠ±Π½Ρ‹Π΅) β€” float, double
  3. ЛогичСский β€” boolean

ЦСлочислСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ΠΈΠΏΡ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΡŽ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Ρ€ΠΎΠ±Π½Ρ‹Π΅

ЛогичСский Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΠΎΠΊΠ° ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с цСлочислСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π‘Π°ΠΌΡ‹ΠΌ «популярным» срСди цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… являСтся Ρ‚ΠΈΠΏ int. Он позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ достаточно большой Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ всСго 32 Π±ΠΈΡ‚Π°.

ΠŸΠΎΠ΄ΠΊΡ€Π΅ΠΏΠΈΠ² наши знания Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΠΏΠ»ΠΎΡ‚ΠΈΠΌ ΠΈΡ… Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Для этого создайтС нСсколько Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² своСм классС. Π—Π°Π±Ρ‹Π» ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Java ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ дСлятся Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ β€” это Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² классС. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ β€” Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅. Об ΠΈΡ… Ρ€Π°Π·Π½ΠΈΡ†Π΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Как Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, я Π½Π°Π·Ρ‹Π²Π°ΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ классы Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ CamelCase ΠΈΠ»ΠΈ Π²Π΅Ρ€Π±Π»ΡŽΠΆΠΈΠΉ  рСгистр. Π­Ρ‚ΠΎ Π½Π΅ просто Ρ‚Π°ΠΊ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Java принято ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ стилС. Π― ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π’Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ стиля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ принятый Π² сообщСствС программистов для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π’Π°Ρˆ ΠΊΠΎΠ΄ ΠΌΠΎΠ³Π»ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ люди. Π’Π°ΠΊΠΆΠ΅ ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ классы Π² Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ стилС: для класса β€” это ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚, для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° β€” дСйствиС, для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ β€” Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ΅ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅ΠΉ соотвСтствуСт.

ΠœΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΎΡˆΠ»ΠΈ ΠΎΡ‚ Ρ‚Π΅ΠΌΡ‹. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π§Ρ‚ΠΎ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Java? Π”Π° всС Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ: Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ, ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, ΠΎΡ‚Π½ΠΈΠΌΠ°Ρ‚ΡŒ, Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ Ρ‚.Π΄. Об опСрациях ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ пСрСнСсСм наши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² main ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ с ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ. Для начала поэкспСримСнтируСм с byte:

public class TypesOfData {

Β  Β  public static void main(String[] args){
Β  Β  Β  Β  Β byte byteVariable = 3; Β  Β 
Β  Β  Β  Β 
Β  Β  Β  Β  Β byte newByteVariable = (byte) (byteVariable + 125);//здСсь Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΡΡ‚ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΈΠΏΡƒ Π±Π°ΠΉΡ‚, Ρ‚Π°ΠΊ
Β  Β  Β  Β  Β //опСрация распознаСтся ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚
Β  Β  Β  Β  System.out.println(«First output » + newByteVariable);//Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ Π±Π°ΠΉΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ -128 127, Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ 125 3 Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ
Β  Β  Β  Β  //ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
Β  Β  Β  Β 
Β  Β  Β  Β  System.out.print(«Second output»);
Β  Β  Β  Β  System.out.println(byteVariable+=125);//ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½ΡƒΡŽ запись нСльзя Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ с ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠ΅ΠΉ Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ Π½Π° консоль ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ
Β  Β  Β  Β  //Π½ΠΎ для сокращСнной записи Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΈΠΏΡƒ byte
Β  Β  Β  Β 
Β  Β  Β  Β  byte newByteVariable1 = (byte) (byteVariable — 20);
Β  Β  Β  Β  System.out.println(«Third output » + newByteVariable1);
Β  Β  Β  Β  //ΠΏΡ€ΠΈ ΠΎΡ‚Π½ΠΈΠΌΠ°Π½ΠΈΠΈ ситуация противополоТная. Π’Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ размСрности даст Π½Π°ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
Β  Β  }
}

Π’ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запуска ΠΈ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:Β 

  1. First output -128

  2. Second output-128

  3. Third output 108

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с int Ρ‚ΠΈΠΏΠΎΠΌ.Β 

int intValue = 3;
Β  Β  Β  Β  int nextIntValue = 5;
Β  Β  Β  Β  int resultOfDivision = intValue/nextIntValue;//int пСрСмСнная автоматичСски ΠΎΡ‚ΠΊΠΈΠ΄Π°Π΅Ρ‚ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ
Β  Β  Β  Β  System.out.println(«Result of division » + resultOfDivision);
Β  Β  Β  Β 
Β  Β  Β  Β  int resultOfDivision1 = nextIntValue/intValue;//ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»ΠΎΠ΅ число
Β  Β  Β  Β  System.out.println(«Result of division1 » + resultOfDivision1);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Result of division 0
Result of division1 1

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ числами Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ double ΠΈΠ»ΠΈ float. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ‚ΠΈΠΏΠΎΠΌ double.

  1. //для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ числами Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ double, float

  2. Β  Β  Β  Β  double doubleValue1 = 4;

  3. Β  Β  Β  Β  double doubleValue2 = 5;

  4. Β  Β  Β  Β 

  5. Β  Β  Β  Β  double resultOfDivision = doubleValue1/doubleValue2;

  6. Β  Β  Β  Β  System.out.println(resultOfDivision);
  7. Β  Β  Β  Β 

  8. Β  Β  Β  Β  double doubleValue3 = 1.234;

  9. Β  Β  Β  Β  double doubleValue4 = 4.0854;

  10. Β  Β  Β  Β 

  11. Β  Β  Β  Β  double resultOfMultiplication = doubleValue3*doubleValue4;

  12. Β  Β  Β  Β  System.out.println(resultOfMultiplication);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

0.8
5.0413836

НадСюсь, Π’Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ double Ρ…ΠΎΡ€ΠΎΡˆΠΎ выполняСт свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ Π΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… чисСл. Он ΠΈΠΌΠ΅Π΅Ρ‚ достаточно Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.Β ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° float ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π½ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ большой точности. Когда Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… вычислСниях ΠΈΠ»ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ числами, double β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€. Но, ΠΊΠΎΠ³Π΄Π° Π’Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Π°Π»ΡŽΡ‚ΠΎΠΉ, Π° Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ с Π½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ классы ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… чисСл. Об этом Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ.

ΠœΡ‹ Ρ‡ΡƒΡ‚ΡŒ Π½Π΅ Π·Π°Π±Ρ‹Π»ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ boolean. Π•Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ часто. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ истина ΠΈΠ»ΠΈ лоТь. Π­Ρ‚ΠΎ всС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ….Β 

  1. boolean booleanValueTrue = true;

  2. Β  Β  Β  Β  boolean booleanValueFalse = false;

  3. Β  Β  Β  Β  System.out.println(booleanValueTrue);
  4. Β  Β  Β  Β  System.out.println(booleanValueFalse);
  5. Β  Β  Β  Β  booleanValueTrue = false;

  6. Β  Β  Β  Β  System.out.println(booleanValueTrue);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

true
false
false

Π’Ρ‹ спроситС: «А ΠΊΠ°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ int ΠΊ double ΠΈΠ»ΠΈ double ΠΊ char?Β». ΠžΡ‚Π²Π΅Ρ‡Π°ΡŽ: ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, НО Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠŸΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ ΡΡ‚Π°Ρ‚ΡŒΡ? ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ссылкой:

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Java – ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Java. Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ ΠΈΡ… восСмь. Π’ Java Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ всСх ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ТСстко фиксированы. Они Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ с ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ Π½Π° ΠΈΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΊΠ°ΠΊ это происходит Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках. ΠΠ΅Π·Ρ‹Π±Π»Π΅ΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° β€” ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ пСрСносимости Java-npoΠ³paΠΌΠΌ.

ВсС ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ имСю своих Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΎΠ² ΡΡ‚Π°Ρ€ΡˆΠΈΡ… Π±Ρ€Π°Ρ‚ΡŒΠ΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ свои поля (свойства) ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π­Ρ‚ΠΈ классы Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°ΠΌΠΈ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². ВсС это прСдставлСно Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅:

Β  Π’ΠΈΠΏΒ  Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚Β  По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ  Π Π°Π·ΠΌΠ΅Ρ€Β  Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Β  ΠžΠ±Π΅Ρ€Ρ‚ΠΊΠΈ
Β  booleanΒ true ΠΈΠ»ΠΈ falseΒ Β  flaseΒ 1 bitΒ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΒ Boolean
Β  charΒ Ρ†Π΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅Β Β  \u0000Β 16 bitsΒ ΠΎΡ‚ \u0000Β  Π΄ΠΎ \uFFFFΒ Charaster
Β  byteΒ Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅Β  0Β 8 bitsΒ ΠΎΡ‚ -128 Π΄ΠΎ 127Β Byte
Β  shortΒ Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅Β  0Β 16 bitsΒ ΠΎΡ‚ -32768 Π΄ΠΎ 32767Β Short
Β  intΒ Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅Β  0Β 32 bitsΒ ΠΎΡ‚ -2147483648 Π΄ΠΎ 2147483647Β Integer
Β  longΒ Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅Β  0Β 64 bitsΒ ΠΎΡ‚ -9223372036854775808 Π΄ΠΎ 9223372036854775807Β Long
Β  float вСщСствСнноС Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅Β  0.0Β 32 bitsΒ ΠΎΡ‚ 1.4Eβˆ’45 Π΄ΠΎ 3.4028235E+38Β Float
Β  double вСщСствСнноС Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅Β  0.0Β 64 bitsΒ ΠΎΡ‚ 4.9Eβˆ’324 Π΄ΠΎ 1.7976931348623157E+308Β Double

О Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… char Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ содСрТит ΠΊΠΎΠ΄ симола Unicode.

Π§Ρ‚ΠΎ касаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ присвоСны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ полям класса. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ самим Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠ½Π°Ρ‡Π΅ компилятор выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π’ΠΎΠΎΠ±Ρ‰Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ стилСм программирования являСтся явная инициализация всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ…Β  Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π― Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°ΠΆΡƒ Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π΄Π°Π±Ρ‹ стало понятнСй.

Π‘ΠΏΠ΅Ρ€Π²Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ошибкой ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ присвоСния значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

Π—Π΄Π΅ΡΡŒ Π² 16 строкС ΠΌΡ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ вывСсти Π½Π° консоль Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ localInt, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ (Π½Π΅ присвоили) Π½ΠΈ ΠΊΠ°ΠΊΠΈΠΌ допустимым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. На Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π±Ρ‹Π»Π° Π²Ρ‹Π΄Π°Π½Π° ошибка компиляции. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ defInt, Ρ‚Π°ΠΊΠΎΠΉ ошибки Π²Ρ‹Π΄Π°Π½ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ.

На копипасту внимания Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅ΠΌ, лСнь Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°Ρ‚ΡŒ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ для статичных ΠΏΠΎΠ»Π΅ΠΉ класса:

И посмотрим Ρ‡Ρ‚ΠΎ эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»:

Как говорится: β€œΠ§Ρ‚ΠΎ ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒβ€.

Для Ρ‚ΠΈΠΏΠ° char Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ пустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ \u0000 относится ΠΊ Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹ΠΌ символам.

Π’Π°ΠΊ ΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΈ Π²Π·ΡΡ‚ΡŒ Π½Π° Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎ для любого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ строки (String) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ являСтся null. Ну это Ρ‚Π°ΠΊ Π½Π° Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ.

Π”Π°Π»Π΅Π΅ ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π΄ Π½ΠΈΠΌ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² Java

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² Java это достаточно большая Ρ‚Π΅ΠΌΠ°, Π½ΠΎ ΠΌΡ‹ постараСмся Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ ΠΈ вмСстС с Ρ‚Π΅ΠΌ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ. Частично ΠΌΡ‹ ΡƒΠΆΠ΅ касались этой Ρ‚Π΅ΠΌΡ‹ ΠΊΠΎΠ³Π΄Π° рассматривали ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Java.

Π’ Java Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ прСобразования ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†Π΅Π»Ρ‹ΠΌΠΈ значСниями ΠΈ значСниями с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ значСния Ρ†Π΅Π»Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Ρ‚ΠΈΠΏΠΎΠ² с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π² значСния Ρ‚ΠΈΠΏΠ° char ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ соотвСтствуСт Ρ†ΠΈΡ„Ρ€Π΅ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Unicode. ЀактичСски Ρ‚ΠΈΠΏ boolean являСтся СдинствСнным ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π² Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нСльзя ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ нСльзя ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² boolean.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² Java Π±Ρ‹Π²Π°Π΅Ρ‚ Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ²: нСявноС ΠΈ явноС.

НСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² выполняСтся Π² случаС Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ условия:

  1. Оба Ρ‚ΠΈΠΏΠ° совмСстимы
  2. Π”Π»ΠΈΠ½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Π° Π΄Π»ΠΈΠ½Π΅ исходного Ρ‚ΠΈΠΏΠ°

Π’ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ явноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ².

Π’Π°ΠΊ ΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ:

  1. Π Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (widening conversion)
  2. Π‘ΡƒΠΆΠ°ΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (narrowing conversion)

Π Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (widening conversion) происходит, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° прСобразовываСтся Π² Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Ρ‚ΠΈΠΏ, с большим Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Java выполняСт Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠ΅ прСобразования автоматичСски, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Ρ‹ присвоили Π»ΠΈΡ‚Π΅Ρ€Π°Π» Ρ‚ΠΈΠΏΠ° int ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° double ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° char ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° int. НСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ всСгда ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ.

Но Ρƒ Ρ‚ΡƒΡ‚ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ свои нСбольшиС Π³Ρ€Π°Π±Π΅Π»ΡŒΠΊΠΈ. НапримСр Ссли прСобразуСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ int Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° float. И Ρƒ значСния int Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии большС Ρ‡Π΅ΠΌ 23 Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… Π±ΠΈΡ‚Π°, Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° потСря точности, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ Ρ‚ΠΈΠΏΠ° float ΠΏΠΎΠ΄ Ρ†Π΅Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Π΄Π΅Π½ΠΎ 23 Π±ΠΈΡ‚Π°. ВсС младшиС Π±ΠΈΡ‚Ρ‹ значСния int, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ помСстятся Π² 23 Π±ΠΈΡ‚Π° мантиссы float, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹, поэтому хотя порядок числа ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ, Π½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ утСряна. Π’ΠΎ ΠΆΠ΅ самоС справСдливо для прСобразования Ρ‚ΠΈΠΏΠ° long Π² Ρ‚ΠΈΠΏ double.

Π Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Java ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ Ρ‚Π°ΠΊ:

Π‘ΠΏΠ»ΠΎΡˆΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ прСобразования, выполняСмыС Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π¨Ρ‚Ρ€ΠΈΡ…ΠΎΠ²Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ говорят ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ потСря точности.

Π‘Ρ‚ΠΎΠΈΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΠΎΡ‡Π΅ΠΌΡƒ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Ρ‚ΠΈΠΏ byte Π½Π΅ прСобразуСтся автоматичСски (Π½Π΅ явно) Π² Ρ‚ΠΈΠΏ char, хотя Ρ‚ΠΈΠΏ byte ΠΈΠΌΠ΅Π΅Ρ‚ ΡˆΠΈΡ€ΠΈΠ½Ρƒ 8 Π±ΠΈΡ‚, Π° char 16, Ρ‚ΠΎΠΆΠ΅ самоС касаСтся ΠΈ прСобразования Ρ‚ΠΈΠΏΠ° short Π² char. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ byte ΠΈ short Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° char Π±Π΅Π· Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС трСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ компилятору Π½Π°Π΄ΠΎ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π±ΠΈΡ‚ Ρ‚ΠΈΠΏΠΎΠ² byte ΠΈ short ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊ Ρ‚ΠΈΠΏΡƒ char.

ПовСдСниС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Ρ‚ΠΈΠΏΠ° char Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв совпадаСт с ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° char ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ значСния int ΠΈΠ»ΠΈ long. Однако Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ char Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°ΠΊΠ°, поэтому ΠΎΠ½ Π²Π΅Π΄Π΅Ρ‚ сСбя ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° short, нСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΠ±ΠΎΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Ρ€Π°Π²Π΅Π½ 16 Π±ΠΈΡ‚.

short s = ( short) 0xffff; // Π”Π°Π½Π½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ число –1
char c = ‘\uffff’; // Π’Π΅ ΠΆΠ΅ Π±ΠΈΡ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ символ юникода
int i1 = s; // ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° short Π² int Π΄Π°Π΅Ρ‚ –1
int i2 = c; // ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ char Π² int Π΄Π°Π΅Ρ‚ 65535

Π‘ΡƒΠΆΠ°ΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (narrowing conversion) происходит, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ прСобразуСтся Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ ΡˆΠΈΡ€Π΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ. Π‘ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠ΅ прСобразования Π½Π΅ всСгда бСзопасны: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ значСния 13 Π² byte ΠΈΠΌΠ΅Π΅Ρ‚ смысл, Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ 13000 Π² byte Π½Π΅Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ byte ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа ΠΎΡ‚ βˆ’128 Π΄ΠΎ 127. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΎ врСмя ΡΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ прСобразования ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ потСряны Π΄Π°Π½Π½Ρ‹Π΅, Java компилятор Π²ΠΎΠ·Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ² любого Ρ‚Π°ΠΊΠΎΠ³ΠΎ прСобразования, Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ укладываСтся Π² Π±ΠΎΠ»Π΅Π΅ ΡƒΠ·ΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°:

int i = 13;
byte b = i; // ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

ЕдинствСнноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ»Π° – присвоСниС Ρ†Π΅Π»ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° (значСния Ρ‚ΠΈΠΏΠ° int) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ byte ΠΈΠ»ΠΈ short, Ссли Π»ΠΈΡ‚Π΅Ρ€Π°Π» соотвСтствуСт Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π‘ΡƒΠΆΠ°ΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ это всСгда явноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ².

Π―Π²Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ явного прСобразования Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡Π½Π΅Π΅ говоря привСдСния Ρ‚ΠΈΠΏΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½ Ρ‚ΠΈΠΏ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ происходит ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ – (type). НапримСр:

int i = 13;
byte b = (byte) i; // ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ int Π² byte
i = (int) 13.456; // ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Ρ‚ΠΈΠΏΠ° double Π² int 13

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для прСобразования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π² Ρ†Π΅Π»Ρ‹Π΅ числа. ΠŸΡ€ΠΈ этом дробная Ρ‡Π°ΡΡ‚ΡŒ значСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ просто отбрасываСтся (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ округляСтся ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΊ Π½ΡƒΠ»ΡŽ, Π° Π½Π΅ ΠΊ Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠ΅ΠΌΡƒ Ρ†Π΅Π»ΠΎΠΌΡƒ числу). По сущСству бСрСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлочислСнная Ρ‡Π°ΡΡ‚ΡŒ вСщСствСнного Ρ‚ΠΈΠΏΠ° ΠΈ ΠΎΠ½Π° ΡƒΠΆΠ΅ приводится ΠΊ Ρ†Π΅Π»Π΅Π²ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ цСлочислСнного числа.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ Π΅ΠΌΠΊΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΊ ΠΌΠ΅Π½Π΅Π΅ Π΅ΠΌΠΊΠΎΠΌΡƒ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ просто ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ. По сущСству это Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ дСлСния ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ значСния Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для Ρ‚ΠΈΠΏΠ° byte это 256).

Блишком большоС Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ число ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΊ Ρ†Π΅Π»ΠΎΠΌΡƒ прСвращаСтся Π² MAX_VALUE ΠΈΠ»ΠΈ MIN_VALUE.

Блишком большой double ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΊ float прСвращаСтся Π² Float.POSITIVE_INFINITY ΠΈΠ»ΠΈ Float.NEGATIVE_INFINITY.

Π’Π°Π±Π»ΠΈΡ†Π° прСдставлСнная Π½ΠΈΠΆΠ΅ прСдставляСт собой сСтку, Π³Π΄Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Ρ‚ΠΈΠΏΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ способ прСобразования. Π‘ΡƒΠΊΠ²Π° N Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСобразования. Π‘ΡƒΠΊΠ²Π° Y ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выполняСтся автоматичСски. Π‘ΡƒΠΊΠ²Π° Π‘ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΡƒΠΆΠ°ΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π΅ явного привСдСния. НаконСц, Y* ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ автоматичСскоС Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Π² процСссС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… разрядов. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ int ΠΈΠ»ΠΈ long Π²ΠΎ float ΠΈΠ»ΠΈ double. Π’ΠΈΠΏΡ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ больший Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Ρ‡Π΅ΠΌ Ρ†Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, поэтому int ΠΈΠ»ΠΈ long ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ посрСдством float ΠΈΠ»ΠΈ double. Однако Ρ‚ΠΈΠΏΡ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ числами ΠΈ Π½Π΅ всСгда ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… разрядов Π² мантиссС, ΠΊΠ°ΠΊ Ρ†Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹.

АвтоматичСскоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² выраТСниях

Π’Π°ΠΊ ΠΆΠ΅ стоит Π΅Ρ‰Π΅ Ρ€Π°Π· ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎΠ± автоматичСском ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ) Ρ‚ΠΈΠΏΠΎΠ² Π² выраТСниях. ΠœΡ‹ с этим ΡƒΠΆΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΊΠΎΠ³Π΄Π° рассматривали цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ, Π½ΠΎ всС ΠΆΠ΅ стоит ΠΈ Ρ‚ΡƒΡ‚ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠ²ΠΎΠΈΠ»ΠΎΡΡŒ Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ это ΠΈΠΌΠ΅Π΅Ρ‚ нСпосрСдствСнноС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ Π·Π½Π°ΠΊ @ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ любой допустимый ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ +, –, *, / ΠΈ Ρ‚.ΠΏ.

Π’ΠΎ Π΅ΡΡ‚ΡŒ, всС цСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² выраТСниях, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ‚ΠΈΠΏΡ‹ byte, short ΠΈ char Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ΡΡ Π΄ΠΎ int. Если, ΠΊΠ°ΠΊ описано Π²Ρ‹ΡˆΠ΅, Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ большиС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (long, float ΠΈΠ»ΠΈ double). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ пСрСмСнная c ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ byte, Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ b+1, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ автоматичСского ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ int.

НСявноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² выраТСниях совмСщСнного присваивания

Π₯ΠΎΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» ΠΈ относится ΠΊ нСявному ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ (ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡŽ) Ρ‚ΠΈΠΏΠΎΠ², Π΅Π³ΠΎ объяснСниС ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ Ρ‚ΡƒΡ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ автоматичСскоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² выраТСниях, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΆΠ΅ нСявноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ². Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΡ€Π΄Π΅Π±Π°Π»Π΅Ρ‚. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅ я Π΄ΡƒΠΌΠ°ΡŽ всС Ρ€Π°Π·ΡŠΡΡΠ½ΠΈΡ‚. Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ объяснСнии Π·Π½Π°ΠΊ @ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ любой допустимый ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ +, –, *, / ΠΈ Ρ‚.ΠΏ.

Π­Ρ‚ΠΎ стоит ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

byte b2 = 50;
b2 = b2 * 2; // Π½Π΅ скомпилируСтся
b2 *= 2; //скомпилируСтся, хотя ΠΈ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½Π° b2 = b2 * 2

Вторя строка, привСдСнная Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π΅ скомпилируСтся ΠΈΠ·-Π·Π° автоматичСского Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ² Π² выраТСниях, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ b2*2 ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ int, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ происходит автоматичСскоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° (цСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ всСгда int). Π’Ρ€Π΅Ρ‚ΡŒΡ ΠΆΠ΅ строка спокойно скомпилируСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π΅ΠΉ сработаСт нСявноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² совмСщСнном Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ присваивания.

Boxing/unboxing – ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ

Boxing ΠΈ unboxin – это Ρ‚ΠΎΠΆΠ΅ достаточно большая Ρ‚Π΅ΠΌΠ°, Π½ΠΎ ΠΎΠ½Π° достаточно простая.

По сущСству boxing ΠΈ unboxing это ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ всС Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅.

Об классах ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°Ρ… ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Но Ρ‚ΠΎΠ³Π΄Π° это Π±Ρ‹Π»ΠΎ лишь ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π’Π°ΠΊ Π²ΠΎΡ‚, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΅ΡΡ‚ΡŒ Π΅Π³ΠΎ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Ρ€Π°Ρ‚, ΠΈ ΠΎΠ½ совсСм Π½Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ, Π° являСтся настоящим классом, с полями ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. И для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ автоматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Ссли Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ матСматичСских вычислСний, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это быстрСС ΠΈ экономнСС с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния рСсурсов, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

int i3;
byte b2=3;
Byte myB;
myB=b2;
myB++;
b2=myB;
i3=myB;

Если ΠΏΠΎΠΊΠ° Π½Π΅ понятно Π·Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ, Ρ‚ΠΎ это Π½Π΅ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ, просто завяТитС ΡƒΠ·Π΅Π»ΠΎΠΊ Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ.

Pro Java: ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² Java

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ. Π‘ΠΏΠ΅Ρ€Π²Π° простая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° нСявного прСорбазования ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Java.

Π’ΡƒΡ‚ всС ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ просто. ЕдинствСнноС Ρ‡Ρ‚ΠΎ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ я Π·Π°Π΄Π°Π» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i Ρ‚ΠΈΠΏΠ° int Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ явно Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ количСство Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… Π±ΠΈΡ‚ большС Ρ‡Π΅ΠΌ 23.
Π’ΡƒΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Как  ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ нСбольшая потСря точности ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ цСлочислСнного значСния int ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ‚ΠΈΠΏΠ° float.

Π’Π°ΠΊ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° char спокойно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΎΡΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ Π΅ΠΌΠΊΠΈΠ΅, Ρ‚ΠΈΠΏΡ‹.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ явного прСобразования.

Π’ΡƒΡ‚ всС Ρ‚ΠΎΠΆΠ΅ достаточно просто. ЕдинствСнноС Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π΄ΠΎ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΠΎΡ‡Π΅ΠΌΡƒ число 454.874 Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π² –58. Казалось Π±Ρ‹ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ магичСский, Π½ΠΎ ΠΌΠ°Π³ΠΈΠΈ Ρ‚ΡƒΡ‚ Π½ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Π½Π΅Ρ‚, Ρ‚ΡƒΡ‚ ΠΎΠ΄Π½Π° ΠΌΠ°Ρ‚Ρ‡Π°ΡΡ‚ΡŒ.

Достаточно просто ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС числа 454 ΠΈ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ всС ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹, оставив Ρ‚ΠΎΠ»ΡŒΠΊΠΎ младшиС восСмь.
Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² восьми ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Π±ΠΈΡ‚Π°Ρ… ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ число 11000110, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ для Ρ‚ΠΈΠΏΠ° int соотвСтствуСт числу 198, Π° для Ρ‚ΠΈΠΏΠ° byte числу –58, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±ΠΈΡ‚ для Π½Π΅Π³ΠΎ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ, поэтому Π΄Π°Π½Π½ΠΎΠ΅ число являСтся ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

Если Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ ΠΊΠ°ΠΏΠ½ΡƒΡ‚ΡŒ, Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ самоС получаСтся Ссли Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ число 454 ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС byte ΠΈ Π΅Π³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ 256 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

454 % 256 = 198

Число 198 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ восСмью Π±ΠΈΡ‚Π°ΠΌΠΈ, ΠΏΡ€ΠΎ это ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅. И Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ для int 198, Ρ‚ΠΎ для byte –58. Π’ΠΎΡ‚ такая Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ°.

Π”Π°Π»Π΅Π΅ Ρƒ нас ΠΈΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ float слишком большоС для значСния int, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ int ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ своС максимальноС ΠΈΠ»ΠΈ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π·Π½Π°ΠΊΠ°).

Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ Ρ‚ΠΈΠΏΠ° long ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСобразуСтся Π² Ρ‚ΠΈΠΏ int. Но Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это ΡƒΠΆΠ΅ цСлочислСнный Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ большС допустимого значСния для int. Π’ΡƒΡ‚ ΠΎΠΏΡΡ‚ΡŒ дСйствуСт ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ отбрасывания ΡΡ‚Π°Ρ€ΡˆΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡΒ  Π² int.

Ну ΠΈ Π·Π°Ρ‚Π΅ΠΌ совсСм простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с классом Byte, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΎΠΉ для Ρ‚ΠΈΠΏΠ° byte.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Π½Π° Π²Ρ‹Π²ΠΎΠ΄ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования классов-ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ Π½Π°Π΄ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌΠΈ Π² Java

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

Загрузка…

  1. ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
    Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ

  2. Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ сообщСство

    • ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

      ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅
      Π±ΠΎΠ»Ρ‚Π°Ρ‚ΡŒ

.

ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… (Руководства ΠΏΠΎ Java β„’> Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ языка Java> ΠžΡΠ½ΠΎΠ²Ρ‹ языка)

Π―Π·Ρ‹ΠΊ программирования Java являСтся статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ сначала ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ:

Π­Ρ‚ΠΎ сообщит вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ «ΡˆΠ΅ΡΡ‚Срня» сущСствуСт, содСрТит числовыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «1». Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ опрСдСляСт значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с Π½Π΅ΠΉ.Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ int , язык программирования Java ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΅Ρ‰Π΅ сСмь Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… . ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ языком ΠΈ Π½Π°Π·Π²Π°Π½ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом. ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ значСния Π½Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ состояниС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ значСниями. Π―Π·Ρ‹ΠΊ программирования Java ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ восСмь ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…:

  • Π±Π°ΠΉΡ‚ : Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ являСтся 8-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ числом с Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ Π΄Π²ΡƒΡ… со Π·Π½Π°ΠΊΠΎΠΌ. Он ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -128 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 127 (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ).Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для экономии памяти Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ…
    массивы, Π³Π΄Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½Π° экономия памяти. Π˜Ρ… Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто int , Π³Π΄Π΅ ΠΈΡ… ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄; Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

  • short : Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… short прСдставляСт собой 16-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. Он ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -32 768 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 32 767 (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ).Как ΠΈ для Π±Π°ΠΉΡ‚Π° , ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ для экономии памяти Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах Π² ситуациях, ΠΊΠΎΠ³Π΄Π° экономия памяти Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

  • int : ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int прСдставляСт собой 32-Π±ΠΈΡ‚Π½ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число с Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ Π΄Π²ΡƒΡ…, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -2 31 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 31 -1. Π’ Java SE 8 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int для прСдставлСния 32-разрядного Ρ†Π΅Π»ΠΎΠ³ΠΎ числа Π±Π΅Π· Π·Π½Π°ΠΊΠ°, минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π½ΠΎ 0, Π° максимальноС — 2 32 -1.Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс Integer, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ°. Π‘ΠΌ. Π Π°Π·Π΄Π΅Π» «ЧисловыС классы» для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ compareUnsigned , diverUnsigned ΠΈ Ρ‚. Π”., Π‘Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π²
    Integer Класс для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами Π±Π΅Π· Π·Π½Π°ΠΊΠ°.

  • long : Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… long — это 64-Π±ΠΈΡ‚Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число с Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ Π΄Π²ΡƒΡ…. Π”Π»ΠΈΠ½Π½Ρ‹ΠΉ Π·Π½Π°ΠΊ со Π·Π½Π°ΠΊΠΎΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -2 63 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 63 -1.Π’ Java SE 8 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… long для прСдставлСния Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ 64-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° long, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 64 -1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‡Π΅ΠΌ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСтся int . Π’
    Long Класс Ρ‚Π°ΠΊΠΆΠ΅ содСрТит Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠ°ΠΊ compareUnsigned , diverUnsigned ΠΈ Ρ‚. Π”. Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ unsigned long.

  • float : Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… float прСдставляСт собой 32-Π±ΠΈΡ‚Π½ΠΎΠ΅ число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ точности IEEE 754.Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ обсуТдСния, Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ Π²
    Π Π°Π·Π΄Π΅Π» Β«Π’ΠΈΠΏΡ‹, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ значСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой» Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ языка Java. Как ΠΈ Π² случаС с рСкомСндациями для Π±Π°ΠΉΡ‚Π° ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (вмСсто double ), Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²Π°Π»ΡŽΡ‚Π°. Для этого Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
    java.math.BigDecimal вмСсто этого.Numbers and Strings ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ BigDecimal ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ классы, прСдоставляСмыС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Java.

  • double : Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… double прСдставляСт собой 64-Π±ΠΈΡ‚Π½ΠΎΠ΅ число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой IEEE 754 Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ обсуТдСния, Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ Π²
    Π Π°Π·Π΄Π΅Π» Β«Π’ΠΈΠΏΡ‹, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ значСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой» Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ языка Java. Для дСсятичных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ этот Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выбираСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, этот Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²Π°Π»ΡŽΡ‚Π°.

  • boolean : Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… boolean ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… значСния: true ΠΈ false . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… для простых Ρ„Π»Π°Π³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ истинныС / Π»ΠΎΠΆΠ½Ρ‹Π΅ условия. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… прСдставляСт ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½ΠΎ Π΅Π³ΠΎ Β«Ρ€Π°Π·ΠΌΠ΅Ρ€Β» Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ‚ΠΎΡ‡Π½ΠΎ.

  • char : Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… char — это ΠΎΠ΄ΠΈΠ½ 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ символ Unicode. Он ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ '\ u0000' (ΠΈΠ»ΠΈ 0) ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ '\ uffff' (ΠΈΠ»ΠΈ 65 535 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ).

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ восьми ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, пСрСчислСнным Π²Ρ‹ΡˆΠ΅, язык программирования Java Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк Ρ‡Π΅Ρ€Π΅Π·
java.lang.String класс. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ строки символов Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ автоматичСски создаст Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ String ; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, String s = "это строка"; . String ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ нСизмСняСмыС , Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ послС создания ΠΈΡ… значСния Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹. Класс String тСхничСски Π½Π΅ являСтся ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ, учитывая ΠΎΡΠΎΠ±ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ Π΅ΠΌΡƒ языком, Π²Ρ‹, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Π½Π΅ΠΌ ΠΊΠ°ΠΊ ΠΎ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΌ.Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ большС ΠΎ классС String Π²
ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ЗначСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

НС всСгда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ объявлСнии поля. Поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹, Π½ΠΎ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Π±ΡƒΠ΄ΡƒΡ‚ установлСны компилятором Π² Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ ΠΈΠ»ΠΈ null , Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Однако использованиС Ρ‚Π°ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ считаСтся ΠΏΠ»ΠΎΡ…ΠΈΠΌ стилСм программирования.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (для ΠΏΠΎΠ»Π΅ΠΉ)
Π±Π°ΠΉΡ‚ 0
ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ 0
Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ 0
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ 0L
ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ 0,0f
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ 0,0d
символ ‘\ u0000’
Π‘Ρ‚Ρ€ΠΎΠΊΠ° (ΠΈΠ»ΠΈ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚) null
логичСский Π»ΠΎΠΆΠ½Ρ‹ΠΉ

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ; компилятор Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ присваиваСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.Если Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свою Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½Π° объявлСна, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ присвойтС Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅. Доступ ΠΊ Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции.

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово new Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ — это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, встроСнныС Π² язык; ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, созданныС ΠΈΠ· класса. Π›ΠΈΡ‚Π΅Ρ€Π°Π» — это прСдставлСниС исходного ΠΊΠΎΠ΄Π° фиксированного значСния; Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ прСдставлСны нСпосрСдствСнно Π² вашСм ΠΊΠΎΠ΄Π΅, Π½Π΅ трСбуя вычислСний.Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°:

логичСский Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = истина;
char capitalC = 'C';
Π±Π°ΠΉΡ‚ b = 100;
ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ s = 10000;
int i = 100000;
 
ЦСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

ЦСлочислСнный Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ long , Ссли ΠΎΠ½ заканчиваСтся Π±ΡƒΠΊΠ²ΠΎΠΉ L ΠΈΠ»ΠΈ l ; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС это Ρ‚ΠΈΠΏ int . РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΠΈΡΠ½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ L , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ l Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ Ρ†ΠΈΡ„Ρ€Ρ‹ 1 .

ЗначСния цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² byte , short , int ΠΈ long ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы ΠΈΠ· int Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ². ЗначСния Ρ‚ΠΈΠΏΠ° long , ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ int , ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы ΠΈΠ· Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² long . ЦСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих систСм счислСния:

  • ДСсятичный: основаниС 10, Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ состоят ΠΈΠ· Ρ†ΠΈΡ„Ρ€ ΠΎΡ‚ 0 Π΄ΠΎ 9; это систСма счислСния, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь
  • ШСстнадцатСричный: Π‘Π°Π·Π° 16, Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ состоят ΠΈΠ· Ρ†ΠΈΡ„Ρ€ ΠΎΡ‚ 0 Π΄ΠΎ 9 ΠΈ Π±ΡƒΠΊΠ² ΠΎΡ‚ A Π΄ΠΎ F
  • Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ: Π±Π°Π·Π° 2, Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ состоят ΠΈΠ· чисСл 0 ΠΈ 1 (Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² Java SE 7 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях)

Для программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния дСсятичная систСма, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ СдинствСнной систСмой счислСния, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.Однако, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ систСму счислСния, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис. ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ 0x ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ, Π° 0b ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ:

// Число 26 Π² дСсятичном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅
int decVal = 26;
// Число 26 Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅
int hexVal = 0x1a;
// Число 26 Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅
int binVal = 0b11010;
 
Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой

Π›ΠΈΡ‚Π΅Ρ€Π°Π» с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ float , Ссли ΠΎΠ½ заканчиваСтся Π±ΡƒΠΊΠ²ΠΎΠΉ F ΠΈΠ»ΠΈ f ; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π΅Π³ΠΎ Ρ‚ΠΈΠΏ — double ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π±ΡƒΠΊΠ²ΠΎΠΉ D ΠΈΠ»ΠΈ d .

Π’ΠΈΠΏΡ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ( float ΠΈ double ) Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ E ΠΈΠ»ΠΈ e (для Π½Π°ΡƒΡ‡Π½ΠΎΠ³ΠΎ прСдставлСния), F ΠΈΠ»ΠΈ f (32-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой) ΠΈ D ΠΈΠ»ΠΈ d (64-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π»; это являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΏΠΎ соглашСнию опускаСтся).

Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ d1 = 123,4;
// Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ d1, Π½ΠΎ Π² ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ прСдставлСнии
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ d2 = 1.234e2;
float f1 = 123.4f;
 
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Ρ‚ΠΈΠΏΠΎΠ² char ΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ символы Unicode (UTF-16).Если ваш Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ файловая систСма ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ это, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ символы прямо Π² своСм ΠΊΠΎΠ΄Π΅. Если Π½Π΅Ρ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ UnicodeΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ '\ u0108' (заглавная C с циркумфлСксом) ΠΈΠ»ΠΈ Β«S = Se \ u00F1orΒ» (SΓ­ SeΓ±or Π½Π° испанском языкС). ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Β«ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈΒ» для ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² ΠΈ Β«Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈΒ» для строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ². Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Unicode ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² любом мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠΎΠ»Π΅ΠΉ), Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ… char ΠΈΠ»ΠΈ String .

Π―Π·Ρ‹ΠΊ программирования Java Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ для Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² char ΠΈ String : \ b (backspace), \ t (tab), \ n (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки), \ f (ΠΏΠΎΠ΄Π°Ρ‡Π° страницы), \ r (Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ), \ " (двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°), \ ' (одинарная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°) ΠΈ \\ (обратная косая Ρ‡Π΅Ρ€Ρ‚Π°).

Π’Π°ΠΊΠΆΠ΅ сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» null , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для любого ссылочного Ρ‚ΠΈΠΏΠ°. null ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присвоСно любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π’Ρ‹ ΠΌΠ°Π»ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ null , ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΅Π³ΠΎ наличия. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ null часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π² качСствС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ нСдоступСн.

НаконСц, сущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ особый Π²ΠΈΠ΄ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ класса , ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚Π΅ΠΌ взятия ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ° ΠΈ добавлСния Β« .classΒ» ; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, String.class .Π­Ρ‚ΠΎ относится ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ (Ρ‚ΠΈΠΏΠ° , класс ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт сам Ρ‚ΠΈΠΏ.

ИспользованиС символов подчСркивания Π² числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ…

Π’ Java SE 7 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях любоС количСство символов подчСркивания ( _ ) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ Π² числовом Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅. Π­Ρ‚Π° функция позволяСт Π²Π°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. для раздСлСния Π³Ρ€ΡƒΠΏΠΏ Ρ†ΠΈΡ„Ρ€ Π² числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ…, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π°.

НапримСр, Ссли ваш ΠΊΠΎΠ΄ содСрТит числа с большим количСством Ρ†ΠΈΡ„Ρ€, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ подчСркивания для раздСлСния Ρ†ΠΈΡ„Ρ€ Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ Ρ‚Ρ€ΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π²Ρ‹ использовали Π±Ρ‹ Π·Π½Π°ΠΊ прСпинания, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ запятая, ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π», Π² качСствС раздСлитСля.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы использования символа подчСркивания Π² числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ…:

long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 3.14_15F;
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ hexBytes = 0xFF_EC_DE_5E;
Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ слова = 0xCAFE_BABE;
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ = 0b11010010_01101001_10010100_10010010;
 

Π—Π½Π°ΠΊΠΈ подчСркивания ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ; нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… мСстах:

  • Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ†Π΅ числа
  • Рядом с дСсятичной запятой Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой
  • Π”ΠΎ F ΠΈΠ»ΠΈ L суффикс
  • Π’ позициях, Π³Π΄Π΅ оТидаСтся строка Ρ†ΠΈΡ„Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ допустимыС ΠΈ нСдопустимыС мСста подчСркивания (Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅) Π² числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ…:

//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  рядом с дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ 
ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ pi1 = 3_.1415F;
//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  рядом с дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ 
float pi2 = 3._1415F;
//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  ΠΏΠ΅Ρ€Π΅Π΄ суффиксом L 
long socialSecurityNumber1 = 999_99_9999_L;

// ОК (дСсятичный Π»ΠΈΡ‚Π΅Ρ€Π°Π»)
ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» x1 = 5_2;
//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  Π’ ΠΊΠΎΠ½Ρ†Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° 
int x2 = 52_;
// ОК (дСсятичный Π»ΠΈΡ‚Π΅Ρ€Π°Π»)
int x3 = 5_______2;

//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  Π² прСфиксС систСмы счислСния 0x 
int x4 = 0_x52;
//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  Π² Π½Π°Ρ‡Π°Π»Π΅ числа 
int x5 = 0x_52;
// ОК (ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π»)
int x6 = 0x5_2;
//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  Π² ΠΊΠΎΠ½Ρ†Π΅ числа 
int x7 = 0x52_;
 

.

java — ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

.ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°

— ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π° Java Π² классы-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

Загрузка…

  1. ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
    Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ

  2. Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ сообщСство

    • ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

      ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅
      Π±ΠΎΠ»Ρ‚Π°Ρ‚ΡŒ

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *