V Javě používáme int a Celé číslo k ukládání celočíselných typů dat. Nyní vyvstává otázka, že pokud se oba používají k ukládání stejného typu dat, jaký je mezi nimi rozdíl a proč je oba potřebujeme? Takže hlavní rozdíl mezi int a Celé číslo je, že int je primitivního datového typu, zatímco Integer je typu třídy. Při vývoji aplikace OOPs se int chová podle principu primitivního primitivního datového typu a chová se jako obalová třída .
Pojďme se ponořit do detailů a pochopit některé další důležité rozdíly mezi nimi int a Celé číslo .
Rozdíl mezi int a Integer
pan č. | Faktor | int | Celé číslo |
---|---|---|---|
1. | Typ | Int je primitivní datový typ, který je schopen uložit 32bitové celé číslo se znaménkem dvojky. | Integer je obalová třída pro datový typ int, která nám poskytuje větší flexibilitu při převodu, ukládání a manipulaci s daty int. |
2. | Flexibilita | Int v něm umožňuje pouze binární hodnotu celého čísla a díky tomu poskytuje menší flexibilitu. | Celé číslo je obalová třída pro int a poskytuje větší flexibilitu ve srovnání s int. |
3. | Účel | Používá se pouze k jedinému účelu, tedy k uložení celočíselné hodnoty do paměti. | Jeho hlavním účelem je převést int na objekt nebo objekt na int. |
4. | Využití paměti | Uložení celočíselné hodnoty do něj trvá 4 bajty. | Uložení celočíselné hodnoty do něj trvá 16 bajtů. |
5. | Základní konverze | Nemůžeme převést celočíselnou hodnotu int na jiný základ. | Třída Integer poskytuje několik užitečných metod, jako je toBinaryString(), toOctalString() a toHexString(), které nám umožňují přímo převádět celočíselnou hodnotu uloženou v Integer. |
6. | Typ Odlévání | Nemůžeme předat desetinnou a řetězcovou hodnotu proměnné typu int. Casting také není podporován. | Integer poskytuje několik způsobů, jak předat desítkovou nebo řetězcovou hodnotu objektu typu Integer. Integer(String) a parseInt(String) jsou dva způsoby, kterými můžeme převést řetězec na hodnotu int. |
7. | Operace | Operace nejsou povoleny, protože nepoužívají vestavěné funkce. | Můžeme provádět operace, jako je obrácení čísla, otočení doleva nebo doprava. |
Vezměme si několik příkladů týkajících se Casting, Base conversion, Operations a Flexibility, abychom pochopili rozdíly mezi nimi.
CastingExample.java
fonty pro gimp
//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ýstup:
spustit shell skriptu
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ýstup:
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ýstup: