V jazyku Java používame int a Celé číslo na ukladanie celočíselných typov údajov. Teraz prichádza otázka, že ak sa oba používajú na ukladanie rovnakého typu údajov, aký je medzi nimi rozdiel a prečo ich potrebujeme obe? Takže hlavný rozdiel medzi int a Celé číslo je, že int je primitívneho dátového typu, zatiaľ čo Integer je typu triedy. Pri vývoji aplikácie OOPs sa int správa podľa princípu primitívneho primitívneho dátového typu a správa sa ako obalová trieda .
Poďme sa ponoriť do detailov a pochopiť niektoré ďalšie dôležité rozdiely medzi nimi int a Celé číslo .
Rozdiel medzi int a Integer
pán č. | Faktor | int | Celé číslo |
---|---|---|---|
1. | Typ | Int je primitívny dátový typ, ktorý je schopný uložiť 32-bitové celé číslo so znamienkom dvojky. | Integer je obalová trieda pre typ údajov int, ktorá nám poskytuje väčšiu flexibilitu pri konverzii, ukladaní a manipulácii s údajmi int. |
2. | Flexibilita | Int v ňom umožňuje iba binárnu hodnotu celého čísla, a preto poskytuje menšiu flexibilitu. | Celé číslo je obalová trieda pre int a poskytuje väčšiu flexibilitu v porovnaní s int. |
3. | Účel | Používa sa iba na jeden účel, t. j. na uloženie celočíselnej hodnoty do pamäte. | Jeho hlavným účelom je previesť int na objekt alebo objekt na int. |
4. | Využitie pamäte | Uloženie celočíselnej hodnoty v ňom trvá 4 bajty. | Uloženie celočíselnej hodnoty v ňom trvá 16 bajtov. |
5. | Základná konverzia | Celú hodnotu int nemôžeme previesť na iný základ. | Trieda Integer poskytuje niekoľko užitočných metód, ako napríklad toBinaryString(), toOctalString() a toHexString(), ktoré nám umožňujú priamo konvertovať celočíselné hodnoty uložené v Integer. |
6. | Typ Casting | Nemôžeme odovzdať desiatkovú a reťazcovú hodnotu do premennej typu int. Prenášanie tiež nie je podporované. | Integer poskytuje niekoľko spôsobov, ako odovzdať desiatkovú alebo reťazcovú hodnotu objektu typu Integer. Integer(String) a parseInt(String) sú dva spôsoby, ktorými môžeme previesť reťazec na hodnotu typu int. |
7. | Operácie | Operácie nie sú povolené, pretože nepoužívajú vstavané funkcie. | Môžeme vykonávať operácie, ako je otočenie čísla, otočenie doľava alebo doprava. |
Zoberme si niekoľko príkladov súvisiacich s Casting, Base conversion, Operations a Flexibilita, aby sme pochopili rozdiely medzi nimi.
CastingExample.java
//creating CastingExample class to understand difference between int and Integer based on casting public class CastingExample { //main() method starts public static void main(String args[]) { //creating an integer by taking a string value Integer data = new Integer('987'); // int data = (int)'987'; we cannot typecast string to int // int newData = '987'; we cannot directly pass string value to int // by using the parseInt() method of the Integer Wrapper class, we can perform casting int newData = Integer.parseInt('987'); //print newData, i.e., of type int System.out.print(data+' '+newData); } }
Výkon:
CastingExample.java
//create BaseConversionExample class to convert the integer value into different bases public class BaseConversionExample { //main() method starts public static void main(String args[]) { //change the base to binary String binVal = Integer.toBinaryString(987); //change the base to octal String octVal = Integer.toOctalString(98); //change the base to hexadecimal String hexVal = Integer.toHexString(987); System.out.print('Binary value of 987 is: ' + binVal + ' Octal value of 987 is: ' + octVal + ' Hexadecimal value of 987 is: ' + hexVal); } }
Výkon:
FlexibilityExample.java
//import classes and packages that are required import java.util.function.Function; import java.util.function.Function; //create FlexibilityExample class to check flexibility of the wrapper class public class FlexibilityExample { //main() method starts public static void main(String args[]) { Integer x = new Integer('23'); //create an integer variable x of type object Integer y = new Integer('55'); //create an integer variable y of type object int p = 12; //create an integer variable p of primitive type double q = 4.23; //create a varibale q of type double Double z = new Double('8.6'); //create a variable x of type object that holds double value //print the sum of 2 Integer objects System.out.println('Sum :' + (x + y)); //print the sum of a double object and an Integer object System.out.println('Sum :' + (y + z)); //print the sum of an int value and an Integer object System.out.println('Sum :' + (p + x)); //print the sum of a double value and an Integer object System.out.println('Sum :' + (q + y)); } }
Výkon: