В Java използваме вътр и Цяло число за съхраняване на цели типове данни. Въпросът, който идва оттук, е, че ако и двете се използват за съхраняване на един и същи тип данни, тогава каква е разликата между тях и защо са ни нужни и двете? И така, основната разлика между вътр и Цяло число е, че int е от примитивен тип данни, докато Integer е от тип клас. При разработването на OOPs приложението int се държи според принципа на примитивния примитивен тип данни и се държи като клас обвивка .
Нека се потопим в подробности и да разберем някои други важни разлики между вътр и Цяло число .
Разлика между int и Integer
г-н не | Фактор | вътр | Цяло число |
---|---|---|---|
1. | Тип | Int е примитивен тип данни, който може да съхранява 32-битово цяло число със знак две. | Integer е клас обвивка за типа int данни, който ни дава по-голяма гъвкавост при конвертиране, съхраняване и манипулиране на int данни. |
2. | Гъвкавост | Int позволява само двоичната стойност на цяло число в него и поради това осигурява по-малка гъвкавост. | Integer е клас обвивка за int и осигурява повече гъвкавост в сравнение с int. |
3. | Предназначение | Използва се само за една единствена цел, т.е. съхраняване на цяло число в паметта. | Основната му цел е да преобразува int в обект или обект в int. |
4. | Използване на паметта | Необходими са 4 байта, за да се съхрани целочислена стойност в него. | Необходими са 16 байта, за да се съхрани целочислена стойност в него. |
5. | Базово преобразуване | Не можем да преобразуваме целочислената стойност на int в друга база. | Класът Integer предоставя няколко полезни метода, като toBinaryString(), toOctalString() и toHexString(), които ни позволяват директно да конвертираме целочислената стойност, съхранена в Integer. |
6. | Тип Кастинг | Не можем да предадем десетичната и низовата стойност към променлива тип int. Кастингът също не се поддържа за това. | Integer предоставя няколко начина за предаване на десетична или низова стойност към обект от тип Integer. Integer(String) и parseInt(String) са двата начина, чрез които можем да преобразуваме низ в int стойност. |
7. | Операции | Операциите не са разрешени, защото не се използват вградените функции. | Можем да извършваме операции като обръщане на число, завъртане наляво или надясно. |
Нека вземем няколко примера, свързани с кастинг, базово преобразуване, операции и гъвкавост, за да разберем разликите между тях.
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); } }
Изход:
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); } }
Изход:
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)); } }
Изход: