Clasa Integer este o clasă wrapper pentru tipul primitiv int care conține mai multe metode pentru a trata eficient o valoare int, cum ar fi conversia acesteia într-o reprezentare șir și invers. Un obiect din clasa Integer poate deține o singură valoare int.
Constructori:
- Integer(int b): Creează un obiect Integer inițializat cu valoarea furnizată.
Sintaxă:
public Integer(int b)>
Parametri:
b : value with which to initialize>
- Număr întreg (șir s): Creează un obiect Integer inițializat cu valoarea int furnizată de reprezentarea șir. Raza implicită este considerată 10.
Sintaxă:
public Integer(String s) throws NumberFormatException>
Parametri:
s : string representation of the int value>
Aruncări:
NumberFormatException : If the string provided does not represent any int value.>
Metode:
1. toString() : Returnează șirul corespunzător valorii int.
Sintaxă:
public String toString(int b)>
Parametri:
b : int value for which string representation required.>
2. toHexString() : Returnează șirul corespunzător valorii int în formă hexazecimală, adică returnează un șir reprezentând valoarea int în caractere hexadecimale-[0-9][a-f]
Sintaxă:
tutorial seleniu
public String toHexString(int b)>
Parametri:
b : int value for which hex string representation required.>
3. toOctalString() : Returnează șirul corespunzător valorii int în formă octală, adică returnează un șir reprezentând valoarea int în caractere octale-[0-7]
Sintaxă:
public String toOctalString(int b)>
Parametri:
b : int value for which octal string representation required.>
4. toBinaryString() : Returnează șirul corespunzător valorii int în cifre binare, adică returnează un șir reprezentând valoarea int în caractere hexadecimale-[0/1]
Sintaxă:
public String toBinaryString(int b)>
Parametri:
b : int value for which binary string representation required.>
5. valueOf() : returnează obiectul Integer inițializat cu valoarea furnizată.
Sintaxă:
public static Integer valueOf(int b)>
Parametri:
b : a int value>
- valueOf(String val,int radix) : O altă funcție supraîncărcată care oferă o funcție similară cu noul Integer(Integer.parseInteger(val,radix))
Sintaxă:
public static Integer valueOf(String val, int radix) throws NumberFormatException>
Parametri:
val : String to be parsed into int value radix : radix to be used while parsing>
Aruncări:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
- valueOf(Val șir) : O altă funcție supraîncărcată care oferă o funcție similară cu noul Integer (Integer.parseInt(val,10))
Sintaxă:
public static Integer valueOf(String s) throws NumberFormatException>
Parametri:
s : a String object to be parsed as int>
Aruncări:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
6. parseInt() : returnează valoarea int prin parsarea șirului în radix furnizat. Diferă de valueOf() deoarece returnează o valoare int primitivă și valueOf() returnează un obiect Integer.
Sintaxă:
public static int parseInt(String val, int radix) throws NumberFormatException>
Parametri:
val : String representation of int radix : radix to be used while parsing>
Aruncări:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
- O altă metodă supraîncărcată care conține doar String ca parametru, radix este setată implicit la 10.
Sintaxă:
public static int parseInt(String val) throws NumberFormatException>
Parametri:
val : String representation of int>
Aruncări:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
7. getInteger(): returnează obiectul Integer reprezentând valoarea asociată proprietății de sistem dată sau null dacă nu există.
Sintaxă:
public static Integer getInteger(String prop)>
Parametri:
prop : System property>
- O altă metodă supraîncărcată care returnează al doilea argument dacă proprietatea nu există, adică nu returnează null, ci o valoare implicită furnizată de utilizator.
Sintaxă:
public static Integer getInteger(String prop, int val)>
Parametri:
prop : System property val : value to return if property does not exist.>
- O altă metodă supraîncărcată care parsează valoarea în funcție de valoarea returnată, adică dacă valoarea returnată începe cu #, atunci este analizată ca hexazecimal, dacă începe cu 0, atunci este analizată ca octal, altfel zecimal.
Sintaxă:
public static Integer getInteger(String prop, Integer val)>
Parametri:
prop : System property val : value to return if property does not exist.>
8. decodare() : returnează un obiect Integer care conține valoarea decodificată a șirului furnizat. Șirul furnizat trebuie să aibă următoarea formă, altfel NumberFormatException va fi aruncată-
Decimal- (Semn)Număr_Decimal
Hex- (Semn) 0xHex_Digits
Hex- (Semn) 0XHex_Digits
Octal- (Semn)0″Cifre_Octale
Sintaxă:
public static Integer decode(String s) throws NumberFormatException>
Parametri:
s : encoded string to be parsed into int val>
Aruncări:
NumberFormatException : If the string cannot be decoded into a int value>
9. rotițiSânga() : Returnează un int primitiv prin rotirea biților lăsați de distanța dată în formă de complement în doi a valorii date. Când se rotește la stânga, bitul cel mai semnificativ este mutat în partea dreaptă, sau poziția cea mai puțin semnificativă, adică are loc mișcarea ciclică a biților. Distanța negativă înseamnă rotația la dreapta.
Sintaxă:
public static int rotateLeft(int val, int dist)>
Parametri:
val : int value to be rotated dist : distance to rotate>
10. rotiți la dreapta() : Returnează un int primitiv prin rotirea biților la dreapta cu distanța dată în forma complementului doi a valorii date. Când se rotește la dreapta, bitul cel mai puțin semnificativ este mutat în partea stângă sau poziția cea mai semnificativă, adică are loc mișcarea ciclică a biților. Distanța negativă înseamnă rotația la stânga.
Sintaxă:
public static int rotateRight(int val, int dist)>
Parametri:
val : int value to be rotated dist : distance to rotate>
Java
// Java program to illustrate> // various Integer methods> public> class> Integer_test {> >public> static> void> main(String args[])> >{> >int> b =>55>;> >String bb =>'45'>;> >// Construct two Integer objects> >Integer x =>new> Integer(b);> >Integer y =>new> Integer(bb);> >// toString()> >System.out.println(>'toString(b) = '> >+ Integer.toString(b));> >// toHexString(),toOctalString(),toBinaryString()> >// converts into hexadecimal, octal and binary> >// forms.> >System.out.println(>'toHexString(b) ='> >+ Integer.toHexString(b));> >System.out.println(>'toOctalString(b) ='> >+ Integer.toOctalString(b));> >System.out.println(>'toBinaryString(b) ='> >+ Integer.toBinaryString(b));> >// valueOf(): return Integer object> >// an overloaded method takes radix as well.> >Integer z = Integer.valueOf(b);> >System.out.println(>'valueOf(b) = '> + z);> >z = Integer.valueOf(bb);> >System.out.println(>'ValueOf(bb) = '> + z);> >z = Integer.valueOf(bb,>6>);> >System.out.println(>'ValueOf(bb,6) = '> + z);> >// parseInt(): return primitive int value> >// an overloaded method takes radix as well> >int> zz = Integer.parseInt(bb);> >System.out.println(>'parseInt(bb) = '> + zz);> >zz = Integer.parseInt(bb,>6>);> >System.out.println(>'parseInt(bb,6) = '> + zz);> >// getInteger(): can be used to retrieve> >// int value of system property> >int> prop> >= Integer.getInteger(>'sun.arch.data.model'>);> >System.out.println(> >'getInteger(sun.arch.data.model) = '> + prop);> >System.out.println(>'getInteger(abcd) ='> >+ Integer.getInteger(>'abcd'>));> >// an overloaded getInteger() method> >// which return default value if property not found.> >System.out.println(> >'getInteger(abcd,10) ='> >+ Integer.getInteger(>'abcd'>,>10>));> >// decode() : decodes the hex,octal and decimal> >// string to corresponding int values.> >String decimal =>'45'>;> >String octal =>'005'>;> >String hex =>'0x0f'>;> >Integer dec = Integer.decode(decimal);> >System.out.println(>'decode(45) = '> + dec);> >dec = Integer.decode(octal);> >System.out.println(>'decode(005) = '> + dec);> >dec = Integer.decode(hex);> >System.out.println(>'decode(0x0f) = '> + dec);> >// rotateLeft and rotateRight can be used> >// to rotate bits by specified distance> >int> valrot =>2>;> >System.out.println(> >'rotateLeft(0000 0000 0000 0010 , 2) ='> >+ Integer.rotateLeft(valrot,>2>));> >System.out.println(> >'rotateRight(0000 0000 0000 0010,3) ='> >+ Integer.rotateRight(valrot,>3>));> >}> }> |
>
>
Ieșire:
toString(b) = 55 toHexString(b) =37 toOctalString(b) =67 toBinaryString(b) =110111 valueOf(b) = 55 ValueOf(bb) = 45 ValueOf(bb,6) = 29 parseInt(bb) = 45 parseInt(bb,6) = 29 getInteger(sun.arch.data.model) = 64 getInteger(abcd) =null getInteger(abcd,10) =10 decode(45) = 45 decode(005) = 5 decode(0x0f) = 15 rotateLeft(0000 0000 0000 0010 , 2) =8 rotateRight(0000 0000 0000 0010,3) =1073741824>
11. byteValue() : returnează o valoare de octet corespunzătoare acestui obiect întreg.
Sintaxă:
public byte byteValue()>
12. shortValue() : returnează o valoare scurtă corespunzătoare acestui obiect întreg.
Sintaxă:
public short shortValue()>
13. intValue() : returnează o valoare int corespunzătoare acestui obiect Integer.
Sintaxă:
public int intValue()>
13. longValue() : returnează o valoare lungă corespunzătoare acestui obiect întreg.
Sintaxă:
public long longValue()>
14. doubleValue() : returnează o valoare dublă corespunzătoare acestui obiect întreg.
Sintaxă:
public double doubleValue()>
15. floatValue() : returnează o valoare flotantă corespunzătoare acestui obiect întreg.
Sintaxă:
public float floatValue()>
16. hashCode() : returnează codul hash corespunzător acestui obiect Integer.
python __dict__
Sintaxă:
public int hashCode()>
17.bitcount() : Returnează numărul de biți setați în complementul în doi al întregului dat.
Sintaxă:
public static int bitCount(int i)>
Parametri:
i : int value whose set bits to count>
18. numberOfLeadingZeroes() : Returnează numărul de 0 biți care precedă cea mai mare formă de complement de 1 bit în doi a valorii, adică dacă numărul în formă de complement de doi este 0000 1010 0000 0000, atunci această funcție va returna 4.
Sintaxă:
public static int numberofLeadingZeroes(int i)>
Parametri:
i : int value whose leading zeroes to count in twos complement form>
19. numberOfTrailingZeroes() : Returnează un număr de 0 biți după ultimul 1 bit în forma de complement în doi a valorii, adică dacă numărul în forma de complement în doi este 0000 1010 0000 0000, atunci această funcție va returna 9.
Sintaxă:
public static int numberofTrailingZeroes(int i)>
Parametri:
i : int value whose trailing zeroes to count in twos complement form>
20. cel mai mareOneBit() : Returnează o valoare cu cel mult un singur bit, în poziția celui mai mare bit din valoarea dată. Returnează 0 dacă valoarea dată este 0, adică dacă numărul este 0000 0000 0000 1111, atunci această funcție returnează 0000 0000 0000 1000 (unul la cel mai mare bit din numărul dat)
Sintaxă:
public static int highestOneBit(int i)>
Parametri:
i : int value>
21. LowestOneBit() : Returnează o valoare cu cel mult un singur bit, în poziția celui mai mic bit din valoarea dată. Returnează 0 dacă valoarea dată este 0, adică dacă numărul este 0000 0000 0000 1111, atunci această funcție returnează 0000 0000 0000 0001 (unul la cel mai mare bit din numărul dat)
Sintaxă:
public static int LowestOneBit(int i)>
Parametri:
i : int value>
22. egal() : Folosit pentru a compara egalitatea a două obiecte Integer. Această metodă returnează true dacă ambele obiecte conțin aceeași valoare int. Ar trebui folosit numai dacă se verifică egalitatea. În toate celelalte cazuri, ar trebui să se prefere metoda compareTo.
Sintaxă:
public boolean equals(Object obj)>
Parametri:
obj : object to compare with>
23. comparaTo() : Folosit pentru a compara două obiecte Integer pentru egalitate numerică. Acest lucru ar trebui utilizat atunci când se compară două valori întregi pentru egalitate numerică, deoarece ar diferenția între valorile mai mici și cele mai mari. Returnează o valoare mai mică decât 0,0, o valoare mai mare decât 0 pentru mai puțin decât, egal cu și mai mare decât.
Sintaxă:
public int compareTo(Integer b)>
Parametri:
b : Integer object to compare with>
24. compara() : Folosit pentru a compara două valori int primitive pentru egalitatea numerică. Deoarece este o metodă statică, poate fi folosită fără a crea niciun obiect de Integer.
Sintaxă:
public static int compare(int x,int y)>
Parametri:
x : int value y : another int value>
25. semn() : returnează -1 pentru valori negative, 0 pentru 0 și +1 pentru valori mai mari decât 0.
Sintaxă:
public static int signum(int val)>
Parametri:
val : int value for which signum is required.>
26. invers () : returnează o valoare int primitivă inversând ordinea biților în forma complementului a doi a valorii int dată.
Sintaxă:
public static int reverseBytes(int val)>
Parametri:
val : int value whose bits to reverse in order.>
27. reverseBytes() : returnează o valoare int primitivă inversând ordinea octeților în forma complementului a doi a valorii int dată.
Sintaxă:
public static int reverseBytes(int val)>
Parametri:
val : int value whose bits to reverse in order.>
28. static int compareUnsigned(int x, int y) : Această metodă compară două valori int tratând numeric valorile ca nesemnate.
Sintaxă:
public static int compareUnsigned(int x, int y)>
29. static int divideUnsigned(int dividend, int divizor) : Această metodă returnează coeficientul fără semn al împărțirii primului argument la al doilea, unde fiecare argument și rezultatul sunt interpretate ca o valoare fără semn.
Sintaxă:
public static int divideUnsigned(int dividend, int divisor)>
30. static int max(int a, int b) : Această metodă returnează cea mai mare dintre două valori int ca și cum ar fi apelând Math.max.
Sintaxă:
public static int max(int a, int b)>
31. static int min(int a, int b) : Această metodă returnează cea mai mică dintre două valori int ca și cum ar fi apelând Math.min.
Sintaxă:
public static int min(int a, int b)>
32. static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) : Această metodă parsează argumentul CharSequence ca un int nesemnat în radixul specificat, începând de la beginIndex specificat și extinzându-se până la endIndex – 1.
Sintaxă:
public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException>
33. static int parseUnsignedInt(String s) : Această metodă analizează argumentul șir ca un întreg zecimal fără semn.
Sintaxă:
dubla în java
public static int parseUnsignedInt(String s) throws NumberFormatException>
34. static int parseUnsignedInt(String s, int radix) : Această metodă parsează argumentul șir ca un întreg fără semn în radixul specificat de al doilea argument.
Sintaxă:
public static int parseUnsignedInt(String s, int radix) throws NumberFormatException>
35. static int restderUnsigned(int dividend, int divizor) : Această metodă returnează restul nesemnat de la împărțirea primului argument la al doilea, unde fiecare argument și rezultatul sunt interpretate ca o valoare fără semn.
Sintaxă:
public static int remainderUnsigned(int dividend, int divisor)>
36. static int sum(int a, int b) : Această metodă adună două numere întregi împreună conform operatorului +.
Sintaxă:
public static int sum(int a, int b)>
37. static long toUnsignedLong(int x) : Această metodă convertește argumentul într-o conversie lungă printr-o conversie nesemnată.
Sintaxă:
public static long toUnsignedLong(int x)>
38. static String toUnsignedString(int i) : Această metodă returnează o reprezentare șir a argumentului ca valoare zecimală fără semn.
Sintaxă:
public static String toUnsignedString(int i, int radix)>
Java
// Java program to illustrate> // various Integer class methods> public> class> Integer_test {> >public> static> void> main(String args[])> >{> >int> b =>55>;> >String bb =>'45'>;> >// Construct two Integer objects> >Integer x =>new> Integer(b);> >Integer y =>new> Integer(bb);> >// xxxValue can be used to retrieve> >// xxx type value from int value.> >// xxx can be int,byte,short,long,double,float> >System.out.println(>'bytevalue(x) = '> >+ x.byteValue());> >System.out.println(>'shortvalue(x) = '> >+ x.shortValue());> >System.out.println(>'intvalue(x) = '> + x.intValue());> >System.out.println(>'longvalue(x) = '> >+ x.longValue());> >System.out.println(>'doublevalue(x) = '> >+ x.doubleValue());> >System.out.println(>'floatvalue(x) = '> >+ x.floatValue());> >int> value =>45>;> >// bitcount() : can be used to count set bits> >// in twos complement form of the number> >System.out.println(>'Integer.bitcount(value)='> >+ Integer.bitCount(value));> >// numberOfTrailingZeroes and numberOfLeadingZeroes> >// can be used to count prefix and postfix sequence> >// of 0> >System.out.println(> >'Integer.numberOfTrailingZeros(value)='> >+ Integer.numberOfTrailingZeros(value));> >System.out.println(> >'Integer.numberOfLeadingZeros(value)='> >+ Integer.numberOfLeadingZeros(value));> >// highestOneBit returns a value with one on highest> >// set bit position> >System.out.println(>'Integer.highestOneBit(value)='> >+ Integer.highestOneBit(value));> >// highestOneBit returns a value with one on lowest> >// set bit position> >System.out.println(>'Integer.lowestOneBit(value)='> >+ Integer.lowestOneBit(value));> >// reverse() can be used to reverse order of bits> >// reverseBytes() can be used to reverse order of> >// bytes> >System.out.println(>'Integer.reverse(value)='> >+ Integer.reverse(value));> >System.out.println(>'Integer.reverseBytes(value)='> >+ Integer.reverseBytes(value));> >// signum() returns -1,0,1 for negative,0 and> >// positive values> >System.out.println(>'Integer.signum(value)='> >+ Integer.signum(value));> >// hashcode() returns hashcode of the object> >int> hash = x.hashCode();> >System.out.println(>'hashcode(x) = '> + hash);> >// equals returns boolean value representing> >// equality> >boolean> eq = x.equals(y);> >System.out.println(>'x.equals(y) = '> + eq);> >// compare() used for comparing two int values> >int> e = Integer.compare(x, y);> >System.out.println(>'compare(x,y) = '> + e);> >// compareTo() used for comparing this value with> >// some other value> >int> f = x.compareTo(y);> >System.out.println(>'x.compareTo(y) = '> + f);> >}> }> |
>
>
Ieșire:
bytevalue(x) = 55 shortvalue(x) = 55 intvalue(x) = 55 longvalue(x) = 55 doublevalue(x) = 55.0 floatvalue(x) = 55.0 Integer.bitcount(value)=4 Integer.numberOfTrailingZeros(value)=0 Integer.numberOfLeadingZeros(value)=26 Integer.highestOneBit(value)=32 Integer.lowestOneBit(value)=1 Integer.reverse(value)=-1275068416 Integer.reverseBytes(value)=754974720 Integer.signum(value)=1 hashcode(x) = 55 x.equals(y) = false compare(x,y) = 1 x.compareTo(y) = 1>
Inițializarea clasei de wrapper Integer în Java:
Tip 1: Inițializare directă:
Un obiect constant din clasa Integer va fi creat în spațiul constantelor din memoria heap. Spațiul constantelor: este doar să ne imaginăm pentru o mai bună înțelegere că există spațiu pentru constante în memoria heap.
Exemplu:
Integer x = 200; //initializing directly x = 300; //modifying x x = 10; //modifying x again>
Număr întreg x = 200
- Compilatorul convertește declarația de mai sus în: Integer x=Integer.valueOf(200) . Aceasta este cunoscută ca Autoboxing . Valoarea întreagă primitivă 200 este convertită într-un obiect.
(Pentru a înțelege Autoboxing și Unboxing, verificați aici: )
- x indică 200 care este prezent în spațiul constantelor. Consultați Fig. 1.

Fig. 1
x = 300
- Autoboxing se face din nou deoarece x este un obiect de clasă Integer care este inițializat direct.
- Notă: Obiectul(x) inițializat direct nu poate fi modificat deoarece este o constantă. Când încercăm să modificăm obiectul indicând o nouă constantă (300), vechea constantă (200) va fi prezentă în memoria heap, dar obiectul va indica noua constantă.
- x indică 300 care este prezent în spațiul constantelor. Consultați Fig. 2.

Fig. 2
x = 10
- Notă: În mod implicit, pentru valorile de la -128 la 127, metoda Integer.valueOf() nu va crea o nouă instanță a Integer. Returnează o valoare din memoria cache.
- x punctele 10 care sunt prezente în cache.

Fig. 3
Dacă atribuim x = 200 sau x=300 data viitoare, va indica valoarea 200 sau 300 care este deja prezentă în spațiul constantelor. Dacă atribuim lui x alte valori decât aceste două valori, atunci se creează o nouă constantă.
(Verificați subiectul de comparare a clasei de înveliș întreg pentru o mai bună înțelegere)
Tip 2: Inițializare dinamică:
Un obiect de clasă Integer care nu este o constantă va fi creat în afara spațiului constantelor. De asemenea, creează o constantă întreagă în spațiul constantelor. Variabila va indica obiectul Integer și nu constanta Integer.
Exemplu:
Integer a = new Integer(250); //Initializing dynamically a = 350; //Type 1 initialization>
Număr întreg a = număr întreg nou (250)
- 250 este creat în interiorul și în afara spațiului constantelor. Variabila „a” va indica valoarea care se află în afara spațiului constantelor. Consultați Fig. 4.

Fig. 4
a = 350;
- După autoboxing, „a” va indica 350. Consultați Fig. 5.

Fig. 5
Dacă atribuim a = 250 data viitoare, acesta nu va indica obiectul deja prezent cu aceeași valoare, va crea un nou obiect.
Referinte: Documentație oficială Java