JavaRush /Java Blog /Random-TK /Java Integer Class Guide

Java Integer Class Guide

Toparda çap edildi
Bu makalada Integer synpy barada gürleşeris. Geliň, şu soraglara seredeliň:
  • deri sapaklary näme;
  • başlangyçlary awtomatiki gaplamak / gaplamak;
  • “Integer” synpynyň işleýşi, usullary we yzygiderliligi.
Java Integer Class Tutorial - 1

Ilkinji görnüşleriň örtük synplary

Bilşiňiz ýaly, Java-da iki topara bölüp boljak dürli maglumatlar görnüşleri bar:
  • başlangyç;
  • salgylanma.
Java-da birnäçe başlangyç maglumat görnüşleri bar:
  • bitewi sanlar - baýt, gysga, int, uzyn;
  • ýüzýän nokat sanlary (hakyky) - ýüzmek, goşa;
  • logiki maglumatlaryň görnüşi - bulean;
  • nyşanlaryň görnüşi - char.
Her bir başlangyç maglumat görnüşiniň öz örtük synpy bar. Ilkinji kiçijik doganyny Java obýektine gurşap alýan maglumat görnüşi. Aşakda maglumatlaryň başlangyç görnüşleri we olaryň degişli örtük synplary:
Ilkinji görnüş Wrapper synpy
baýt Baýt
gysga Gysga
int Bitewi
uzyn Uzyn
ýüzmek Float
goşa Iki gezek
boolean Boolean
char Nyşan
Amaly nukdaýnazardan seredilende, ilkinjiler bilen örtük synplarynyň köp umumylygy bar. Amallaryň köpüsi birmeňzeş ýerine ýetirilýär. Şeýle-de bolsa, örtük synplarynda ilkinjilere mahsus bolmadyk birnäçe häsiýet bar. Ilki bilen sapaklar bar: örtük sapaklary bilen işleýän wagtymyz obýektler bilen işleýäris. Ikinjiden (yzyndaky hemme zat birinji nokatdan gelýär), bu zatlar puja çykyp biler. Üçünjiden, örtük synplary belli bir maglumat görnüşi bilen işlemegi aňsatlaşdyrýan birnäçe yzygiderliligi we usullary üpjün edýär. Bu makalada “Integer” synpy bilen işleşmäge has içgin serederis.

Integer _

“Integer” synpy, “int” başlangyç görnüşiniň örtük synpy. Bu synpda int görnüşiniň ýekeje meýdany bar. Örtük synpy hökmünde Integer ints bilen işlemek üçin dürli usullary, şeýle hem int-ni String we String-e int-e öwürmegiň birnäçe usullaryny hödürleýär. Aşakda synp bilen işlemegiň dürli mysallaryna serederis. Geliň, ýaradylyşdan başlalyň. Iň köp ulanylýan (we ulanmak aňsat) aşakdaky dörediş wariantydyr:
Integer a = 3;
Thisagny, bu ýagdaýda “Integer” üýtgeýjisiniň başlangyjy int üýtgeýjiniň başlangyjyna meňzeýär. Mundan başga-da, “Integer” üýtgeýjisini int üýtgeýjiniň bahasy bilen başlap bolýar:
int i = 5;
Integer x = i;
System.out.println(x); // 5
Aboveokardaky ýagdaýda awtomatiki usulda awtomatiki usulda ýüze çykýar. Bu hakda aşakda has giňişleýin gürleşeris. Aboveokarda sanalan başlangyç opsiýalaryna goşmaça, konstruktor we täze açar söz ulanyp, beýleki obýektler ýaly Integer üýtgeýjisi döredilip bilner:
Integer x = new Integer(25);
System.out.println(x);
Şeýle-de bolsa, ýazmak üçin has köp we okamak üçin has köp wagt gerek, şonuň üçin bu opsiýa iň az ýaýran. Int üýtgeýjiler bilen edip boljak Integer üýtgeýjileri bilen hemme zady edip bilersiňiz. Olar bolup biler:
Eplen

Integer a = 6;
Integer b = 2;
Integer c = a + b;
System.out.println(c); // 8
Aýyrmak

Integer a = 6;
Integer b = 2;
Integer c = a - b;
System.out.println(c); // 4
Köpelt

Integer a = 6;
Integer b = 2;
Integer c = a * b;
System.out.println(c); // 12
Bölün

Integer a = 6;
Integer b = 2;
Integer c = a / b;
System.out.println(c); // 3
Ösüş

Integer a = 6;
a++;
++a;
System.out.println(a); // 8
Pese gaçmak

Integer a = 6;
a--;
--a;
System.out.println(a); // 4
Şeýle-de bolsa, bularyň hemmesi bilen seresap bolmaly we Integer-iň maglumat maglumat görnüşidigini we bu görnüşiň üýtgeýjisiniň güýjüni ýitirip biljekdigini ýadyňyzdan çykarmaly dälsiňiz. Bu ýagdaýda (üýtgeýji null bolsa), arifmetiki amallardan (we null gowy işlemeýän başgalardan) saklanmak has gowudyr. Ine bir mysal:
Integer a = null;
Integer b = a + 1; // Здесь мы упадем с "Exception in thread "main" java.lang.NullPointerException"
System.out.println(b);
Deňeşdirme amallarynyň köpüsi başlangyç int görnüşindäki ýaly amala aşyrylýar:
Integer a = 1;
Integer b = 2;

System.out.println(a > b);
System.out.println(a >= b);
System.out.println(a < b);
System.out.println(a <= b);
Çykyş:

false
false
true
true
Iki sany “Integer” üýtgeýjisini deňeşdirmegiň işi tapawutlanýar. Bu ýerde esasy zat, “Integer” salgylanma maglumat görnüşidir we üýtgeýänler bahalaryň özlerine (obýektlerine) däl-de, bahalara salgylanmalary saklaýar. Aşakdaky kod bölegi ýerine ýetirilende bu hakykatyň ýüze çykyşlaryna syn etmek bolýar:
Integer a = 1;
Integer b = 1;
Integer c = new Integer(1);

System.out.println(a == b); // true
System.out.println(a == c); // false
Birinji deňligiň netijesi dogry, ikinjisi ýalan bolar. Bu bolýar, sebäbi birinji ýagdaýda şol bir obýekte salgylanmalary saklaýan iki üýtgeýjini (“a” we “b”) deňeşdirýäris. Ikinji ýagdaýda bolsa, iki dürli obýekti aňladýan iki üýtgeýjini deňeşdirýäris (“c” üýtgeýjisini döredenimizde täze obýekt döretdik). Başga bir gyzykly mysal getireliň:
Integer a = 1;
Integer b = 1;

Integer x = 2020;
Integer y = 2020;

System.out.println(a == b); // true
System.out.println(x == y); // false
Görşümiz ýaly, birinji deňeşdirmäniň netijesi dogry, ikinjisiniň netijesi ýalan. Bularyň hemmesi keş hakda. -128-den 127 aralygyndaky ähli bitewi sanlar (bu bahalar düzülip bilner) keş görnüşinde. Şeýlelik bilen täze üýtgeýji döredip, oňa -128 bilen 127 aralygynda bitewi baha bellänimizde, täze bir obýekt döredenok, üýtgeýjini keşde eýýäm döredilen obýekte salgylanma belläris. Indi bu hakykaty bilip, ýokardaky mysal beýle bir mistiki däl ýaly. A we b üýtgeýjiler şol bir obýekte - keşden bir obýekti aňladýar. X we y üýtgeýjileriň başlangyjy wagtynda her gezek täze bir obýekt döredýärdik we bu üýtgeýjiler dürli obýektlere salgylanmalary saklaýar. Bilşiňiz ýaly, == operator üýtgeýänleriň bahalaryny deňeşdirýär, salgylanma üýtgeýänleriň bahalary bolsa salgylanmalardyr. Iki sany “Integer” üýtgeýjisiniň arasyndaky deňligi takyk barlamak üçin deň usuly ulanmalysyňyz (näçe ownuk bolsa-da). Aboveokardaky mysaly täzeden ýazalyň:
Integer a = 1;
Integer b = 1;

Integer x = 2020;
Integer y = 2020;

System.out.println(a.equals(b)); // true
System.out.println(x.equals(y)); // true

Integer-i awtomatiki gaplamak we açmak

Awto gaplamak we açmak näme? Täze “Integer” üýtgeýjilerini döredenimizde, aşakdaky gurluşygy ulandyk:
Integer a = 2020;
Şeýdip, täze açar operatory ulanman täze bir obýekt döretdik. Bu, başlangyç görnüşdäki int-iň awtomatiki mehanizminiň kömegi bilen mümkindir. Ters prosedura, Integer salgy üýtgeýjisiniň bahasyna başlangyç int üýtgeýjini bellän mahaly ýüze çykýar:
Integer a = 2020;
int x = a;
Bu ýagdaýda, başlangyç üýtgeýjä salgylanma (ýagny, bir obýekte salgylanma “a” üýtgeýjiniň bahasydyr) bellän ýaly. Emma aslynda, awto-gaplamak mehanizminiň kömegi bilen 2020-nji ýylyň bahasy “x” üýtgeýjisine ýazyldy. Awto-gaplamak / gaplamak Java-da gaty ýygy duş gelýän hadysadyr. Köplenç öz-özünden bolýar, käte hatda programmistiň habary bolmazdan. Emma henizem bu hadysa barada bilmeli. Javaruş hakda bu mowzukda gyzykly makala bar .

Bitewi synp yzygiderliligi

“Integer” synpy bitewi sanlar bilen işlemek üçin dürli yzygiderliligi we usullary hödürleýär. Bu bölümde olaryň käbiri iş ýüzünde has içgin serederis. Dowamlylykdan başlalyň. Aşakdaky tablisada ähli synp yzygiderliligi görkezilýär:
Costanta Düşündiriş
SIZE Int görnüşi bilen eýeleýän iki sanly san ulgamyndaky bitleriň sany
Baýt Int görnüşi bilen eýeleýän iki sanly san ulgamynda baýtlaryň sany
MAX_VALUE Int görnüşiniň saklap biljek iň ýokary bahasy
MIN_VALUE Int görnüşiniň saklap biljek iň pes bahasy
TYPE Int görnüşinden Klass görnüşli obýekti görkezýär
Aşakdaky kody işledip, bu yzygiderliligiň bahalaryna seredeliň:
public static void main(String[] args) {
        System.out.println(Integer.SIZE);
        System.out.println(Integer.BYTES);
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.TYPE);
}
Netijede, aşakdaky netijäni alýarys:

32
4
2147483647
-2147483648
int

Integer synpynyň usullary

Indi “Integer” synpynyň iň köp ulanylýan usullaryna gysgaça göz aýlalyň. Şeýlelik bilen, “ýokarkylar” sanlary bir setirden öwürmek ýa-da setiri sanlardan öwürmek usullary bilen dolandyrylýar. Bir setiri sana öwürmekden başlalyň. Bu maksatlar üçin parseInt usuly ulanylýar , gol aşakda:
  • 
    static int parseInt(String s)
Bu usul Stringi int-e öwürýär. Bu usulyň nähili işleýändigini görkezeliň:
int i = Integer.parseInt("10");
System.out.println(i); // 10
Öwürmek mümkin däl bolsa, mysal üçin parseInt usulyna bir söz berdik - NumberFormatException zyňylar. ParseInt (String s) usulynda aşa köp dogan bar:
  • 
    static int parseInt(String s, int radix)
Bu usul s parametrini int-e öwürýär. Radiks parametri, s sanlaryň haýsy san ulgamynda başda int-e öwrülmelidigini görkezýär. Aşakdaky mysallar:
System.out.println(Integer.parseInt("0011", 2)); // 3
System.out.println(Integer.parseInt("10", 8));   // 8
System.out.println(Integer.parseInt("F", 16));   // 15
ParseInt usullary başlangyç maglumat görnüşini int-e gaýtaryp berýär. Bu usullaryň meňzeşligi bar - valueOf usuly . Bu usulyň käbir üýtgeýişleri içerde parseInt diýilýär. ParseInt-den tapawudy, valueOf-yň netijesi int däl-de, Integer bolar. Aşakda bu usulyň ähli wariantlaryny we işleýşiniň mysalyna seredeliň:
  • statik Integer valueOf (int i) - bahasy i bolan Integer-i yzyna gaýtaryp berýär;
  • statik Integer valueOf (String s) - parseInt (String s) -e meňzeýär, ýöne netije Integer bolar;
  • statik Integer valueOf (String s, int radix) - parseInt (String s, int radix) meňzeş, ýöne netije Integer bolar.
Mysallar:
int a = 5;
Integer x = Integer.valueOf(a);
Integer y = Integer.valueOf("20");
Integer z = Integer.valueOf("20", 8);

System.out.println(x); // 5
System.out.println(y); // 20
System.out.println(z); // 16
Stringi int / Integer-e öwürmäge mümkinçilik berýän usullara göz aýladyk. Ters prosedura toString usullaryny ulanyp gazanylýar . Islendik Integer obýektinde toString usulyna jaň edip, onuň setir görnüşini alyp bilersiňiz:
Integer x = 5;
System.out.println(x.toString()); // 5
Şeýle-de bolsa, “ToString” usulynyň köplenç obýektlere aç-açan çagyrylýandygy sebäpli (mysal üçin, çap etmek üçin konsola obýekt iberilende) bu usul döredijiler tarapyndan seýrek ulanylýar. Şeýle hem int parametrini alýan we ony simli şekillendirişe öwürýän statiki usul bar. Mysal üçin:
System.out.println(Integer.toString(5)); // 5
Şeýle-de bolsa, statiki däl toString usuly ýaly, statiki usuly aç-açan ulanmak seýrekdir. Has gyzyklysy, 2 sany bitewi parametr alýanString-iň statiki usuly:
  • statiki setir toString (int i, int radix) - i radix san ulgamynda setir şekiline öwürer.
Mysal:
System.out.println(Integer.toString(5, 2)); // 101
“Integer” synpynda iň köp / iň az iki sany san tapmagyň birnäçe usuly bar:
  • statik int max (int a, int b) geçen üýtgeýänleriň arasynda iň uly bahany yzyna getirer;
  • statik int min (int a, int b) geçen üýtgeýänleriň arasynda iň kiçi bahany yzyna getirer.
Mysallar:
int x = 4;
int y = 40;

System.out.println(Integer.max(x,y)); // 40
System.out.println(Integer.min(x,y)); // 4

Netije

Bu makalada Integer synpyna göz aýladyk. Munuň haýsy synpdygyny we deri sapaklarynyň nämedigini gürleşdik. Sapaga amaly nukdaýnazardan seretdik. Arifmetiki amallaryň, deňeşdirme amallarynyň mysallaryna göz aýladyk. Iki sany “Integer” üýtgeýjisini deňeşdirmegiň çylşyrymlylygyna göz aýladyk we keş görnüşli obýektleriň düşünjesini gözden geçirdik. Şeýle hem, başlangyç maglumatlaryň görnüşlerini awtomatiki gaplamak / gaplamak hadysasyny belledik. Mundan başga-da, “Integer” synpynyň käbir usullaryna, käbir yzygiderliligine seredip bildik. Sanlary bir san ulgamyndan beýlekisine öwürmegiň mysallaryny berdiler.

Öý işi

  1. “Integer” synpynyň başga usullarynyň bardygyny öwreniň ( resmi resminamalar bilen web sahypasynda öwrenip bilersiňiz ), öwrenen usullaryňyzyň haýsysyny (makalada berlenleri hasaba almazdan) teswirlerde ýazyň (pikiriňizde) köplenç ulanar). Şeýle hem pikiriňiziň sebäplerini görkeziň.

    PS Bu ýerde dogry jogap ýok, ýöne bu işjeňlik synpy has gowy öwrenmäge mümkinçilik berer.

  2. Materiallary birleşdirmek üçin kiçijik bir ýönekeý meseläni çözüň.

    Bizde iki san bar:

    1100001001 - ikilik san ulgamynda
    33332 - kwin san ulgamynda

    Diňe “Integer” synpynyň usullaryny ulanyp, berlen iki sanyň arasynda iň köpini kesgitlemek, soňra bolsa üç belgili ulgamdaky iň ýokary we iň pes bahanyň arasyndaky tapawudy görkezmek zerurdyr.

  3. Mümkin bolan Integer bahasyny oktal san ulgamyna öwüriň we netijede sanlaryň sanyny görkeziň (sanlary programma taýdan hasaplaň).

Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION