В чем разница между int и Integer в Java и C #?

Я читал Еще Джоэл о программном обеспечении < / em> когда я наткнулся на Джоэла Спольски, говорящего о каком-то конкретном типе программистов, знающих разницу между int и Integer в Java / C # (объектно-ориентированные языки программирования).

Итак, в чем разница?


person CodingWithoutComments    schedule 02.08.2008    source источник
comment
В C # нет целочисленного типа.   -  person Judah Gabriel Himango    schedule 05.03.2010


Ответы (26)


В Java тип int является примитивом, а тип Integer - объектом.

В C # тип int совпадает с System.Int32 и имеет вид тип значения (то есть больше похоже на java 'int'). Целое число (как и любые другие типы значений) может быть упакованный (" завернутый ") в объект.


Различия между объектами и примитивами несколько выходят за рамки этого вопроса, но суммируем:

Объекты предоставляют возможности для полиморфизма, передаются по ссылке (или, точнее, ссылки передаются по значению) и выделяются из куча. И наоборот, примитивы - это неизменяемые типы, которые передаются по значению и часто выделяются из стек.

person Matt    schedule 02.08.2008
comment
Утверждение, что объекты [...] передаются по ссылке, сбивает с толку и неверно, ИМО. Точнее сказать, что ссылки на объекты передаются по значению. (Также примитивы не всегда выделяются из стека - рассмотрите примитивное поле внутри объекта ...) - person Jon Skeet; 27.10.2008
comment
По крайней мере, в C # int - это ключевое слово языка, эквивалентное типу Int32 CLR (фактически CTS). - person Scott Dorman; 31.01.2009
comment
@Jon Skeet, я знаю, что вас считают гуру C #, но из-за того, как работает АНГЛИЙСКИЙ ЯЗЫК, вы можете просто сказать, что передано по ссылке, поскольку это точно такое же значение, не связанное с программированием. Да, я знаю, что передача по ссылке в C # просто приводит к тому, что ссылка передается по ссылке. - person Tim Matthews; 05.02.2009
comment
К сожалению, в английском языке не выполняется передача чего-либо по ссылке и передача ссылки на что-либо по эквивалентным операторам по значению, и они не имеют эквивалентного значения в контексте языка программирования. - person Alan Krueger; 07.07.2010
comment
‒1. Это может точно описать, как Java справляется с этим, но для C # это совершенно неправильно. - person Joey; 12.01.2011
comment
Я не знаю Java, но нет типа Integer, а _2 _, _ 3_, и все они являются структурой, которая является типом значения. Примитивный означает в C #, что типы определены в FCL (Framework Class Library) командой CLR, и поэтому они называются примитивными. В этом случае даже объект Date называется примитивным типом. int - это ключевое слово, которое в точности совпадает с Int32, single это Int16 и т. Д. Они становятся объектами, когда их помещают в коробку, однако OP не сказал этого. - person Tarik; 24.04.2012
comment
Почему проголосовали за это? Ответ неверный. Это не совсем подходит для Java и даже близко не подходит для C #. Тот, кто прочитает это, будет знать о теме меньше, чем раньше. - person Thom Smith; 17.09.2012
comment
Я взял на себя смелость добавить аспект C # к этому ответу (вместо создания нового ответа). - person Isak Savo; 24.09.2013
comment
просто подумал, что стоит упомянуть, что, по крайней мере, в Java Integer также может быть нулевым, в то время как int не может быть нулевым и приведет к nullPointerException, если это так. Это еще одно ключевое различие между ними, которое может помочь тем, кто не знаком с терминологией. - person ghoulfolk; 25.08.2016
comment
@ghoulfolk Просто чтобы добавить к этому, хотя примитивные типы в Java и аналогичные типы значений в C # (например, int) не могут быть null, в C # вы можете разрешить null значения с помощью типов, допускающих значение NULL (например, int?). - person Ruben9922; 28.03.2017

Ну, в Java int - это примитив, а Integer - это объект. Это означает, что если вы создали новое целое число:

Integer i = new Integer(6);

Вы можете вызвать какой-нибудь метод на i:

String s = i.toString();//sets s the string representation of i

В то время как с int:

int i = 6;

Вы не можете вызывать для него какие-либо методы, потому что это просто примитив. Так:

String s = i.toString();//will not work!!!

приведет к ошибке, потому что int не является объектом.

int - один из немногих примитивов в Java (наряду с char и некоторыми другими). Я не уверен на 100%, но я думаю, что объект Integer более или менее имеет просто свойство int и целый набор методов для взаимодействия с этим свойством (например, метод toString ()). Итак, Integer - это интересный способ работы с int (так же, как, возможно, String - это интересный способ работы с группой символов).

Я знаю, что Java - это не C, но, поскольку я никогда не программировал на C, это лучшее, что я могу найти. Надеюсь это поможет!

Целочисленный объект javadoc

Целочисленное сравнение Ojbect и примитивов int

person cmcculloh    schedule 02.08.2008
comment
в C # int является синонимом Int32, см. stackoverflow.com/questions/62503/c-int-or-int32-should-i-care - person ripper234; 19.09.2008
comment
Я не знаю Java, но нет типа Integer, а Int32, Int64, и все они являются структурой, которая является типом значения. Примитивный означает в C #, что типы определены в FCL (Framework Class Library) командой CLR, и поэтому они называются примитивными. В этом случае даже объект Date называется примитивным типом. - person Tarik; 24.04.2012

Я добавлю к превосходным ответам, данным выше, и расскажу о упаковке и распаковке, а также о том, как это применимо к Java (хотя в C # это тоже есть). Я буду использовать только терминологию Java, потому что я больше разбираюсь в ней au fait.

Как упоминалось в ответах, int - это просто число (называемое типом без упаковки), тогда как Integer - это объект (который содержит число, следовательно, тип в рамке). В терминах Java это означает (помимо невозможности вызывать методы на int), вы не можете хранить int или другие типы, не являющиеся объектами, в коллекциях (List, Map и т. Д.). Чтобы сохранить их, вы должны сначала упаковать их в коробку соответствующего типа.

В Java 5 и более поздних версиях есть так называемые автоматическая упаковка и автоматическая распаковка, которые позволяют выполнять упаковку / распаковку за кулисами. Сравните и сопоставьте: версия Java 5:

Deque<Integer> queue;

void add(int n) {
    queue.add(n);
}

int remove() {
    return queue.remove();
}

Java 1.4 или более ранняя версия (нет и дженериков):

Deque queue;

void add(int n) {
    queue.add(Integer.valueOf(n));
}

int remove() {
    return ((Integer) queue.remove()).intValue();
}

Следует отметить, что, несмотря на краткость версии Java 5, обе версии генерируют идентичный байт-код. Таким образом, хотя автоматическая упаковка и автоматическая распаковка очень удобны, поскольку вы пишете меньше кода, эти операции делают выполняются за кулисами с теми же затратами времени выполнения, поэтому вам все равно нужно знать об их существовании. .

Надеюсь это поможет!

person Chris Jester-Young    schedule 03.08.2008
comment
Deque отсутствует в java 1.5 или 1.4. Он был добавлен в 1.6. - person Leo Izen; 19.09.2010

Я просто опубликую здесь, поскольку некоторые другие сообщения немного неточны в отношении C #.

Правильно: int - это псевдоним для System.Int32.
Неправильно: float - это псевдоним не для System.Float, а для System.Single

По сути, int является зарезервированным ключевым словом в языке программирования C # и является псевдонимом для типа значения System.Int32.

Однако float и Float - это не одно и то же, поскольку правильный системный тип для '' float '' - System.Single. Есть некоторые типы, подобные этому, с зарезервированными ключевыми словами, которые, похоже, не соответствуют именам типов напрямую.

В C # нет разницы между '' int '' и '' System.Int32 '' или любыми другими парами или ключевыми словами / типами системы, за исключением определения перечислений. С помощью перечислений вы можете указать размер используемого хранилища, и в этом случае вы можете использовать только зарезервированное ключевое слово, а не имя типа среды выполнения системы.

Будет ли значение в int будет сохранено в стеке, в памяти или как объект кучи, на который имеется ссылка, зависит от контекста и того, как вы его используете.

Это объявление в методе:

int i;

определяет переменную i типа System.Int32, находящуюся в регистре или в стеке, в зависимости от оптимизации. То же объявление в типе (структуре или классе) определяет поле члена. То же объявление в списке аргументов метода определяет параметр с теми же параметрами хранения, что и для локальной переменной. (обратите внимание, что этот абзац недействителен, если вы начинаете втягивать методы итератора в микс, это вообще разные звери)

Чтобы получить объект кучи, вы можете использовать бокс:

object o = i;

это создаст коробочную копию содержимого i в куче. В IL вы можете напрямую обращаться к методам объекта кучи, но в C # вам нужно вернуть его к типу int, который создаст еще одну копию. Таким образом, объект в куче не может быть легко изменен в C # без создания новой упакованной копии нового значения int. (Ух, этот абзац не так легко читать.)

person Lasse V. Karlsen    schedule 04.08.2008

Что касается Java 1.5 и автобокса, при сравнении Integer возникает важная особенность. объекты.

В Java объекты Integer со значениями от -128 до 127 являются неизменяемыми (то есть для одного конкретного целочисленного значения, скажем 23, все объекты Integer, созданные в вашей программе со значением 23, указывают на точное то же самое объект).

Пример, это возвращает истину:

Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2); //  true

Хотя это возвращает false:

Integer i1 = new Integer(128);
Integer i2 = new Integer(128);
System.out.println(i1 == i2); //  false

== сравнивается по ссылке (указывают ли переменные на один и тот же объект).

Этот результат может отличаться, а может и не отличаться в зависимости от того, какую JVM вы используете. Спецификация автобокса для Java 1.5 требует, чтобы целые числа (от -128 до 127) всегда помещались в один и тот же объект-оболочку.

Решение? =) Всегда следует использовать метод Integer.equals () при сравнении целочисленных объектов.

System.out.println(i1.equals(i2)); //  true

Дополнительная информация на java.net Пример на bexhuff.com

person andynil    schedule 05.08.2008
comment
Объекты, созданные с помощью оператора new, всегда будут возвращать false по сравнению с ==. Андреас путает Integer.valueOf (int) с новым Integer (int) - person McDowell; 15.09.2008
comment
Примечание: значение по умолчанию 127 выбирается из sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high"); - person KNU; 02.10.2014
comment
@andnil - Я работал с Bex в Stellent. Он отличный ресурс, чтобы процитировать +1 для справки на bexhuff.com! - person bcar; 18.01.2016
comment
stackoverflow.com/questions/20877086/ - person Ciro Santilli 新疆再教育营六四事件ۍ 17.02.2016

В Java есть два основных типа в JVM < / а>. 1) примитивные типы и 2) ссылочные типы. int - это примитивный тип, а Integer - это тип класса (который является своего рода ссылочным типом).

Примитивные значения не разделяют состояние с другими примитивными значениями. Переменная, тип которой является примитивным, всегда содержит примитивное значение этого типа.

int aNumber = 4;
int anotherNum = aNumber;
aNumber += 6;
System.out.println(anotherNum); // Prints 4

Объект - это динамически созданный экземпляр класса или массив. Справочные значения (часто просто ссылки) - это указатели на эти объекты и специальная пустая ссылка, которая не ссылается ни на какой объект. На один и тот же объект может быть много ссылок.

Integer aNumber = Integer.valueOf(4);
Integer anotherNumber = aNumber; // anotherNumber references the 
                                 // same object as aNumber

Также в Java все передается по значению. В случае объектов передаваемое значение является ссылкой на объект. Итак, еще одно различие между int и Integer в java заключается в том, как они передаются в вызовах методов. Например в

public int add(int a, int b) {
    return a + b;
}
final int two = 2;
int sum = add(1, two);

Переменная two передается как примитивный целочисленный тип 2. В то время как в

public int add(Integer a, Integer b) {
    return a.intValue() + b.intValue();
}
final Integer two = Integer.valueOf(2);
int sum = add(Integer.valueOf(1), two);

Переменная two передается как ссылка на объект, содержащий целочисленное значение 2.


@WolfmanDragon: передача по ссылке будет работать так:

public void increment(int x) {
  x = x + 1;
}
int a = 1;
increment(a);
// a is now 2

Когда вызывается инкремент, он передает ссылку (указатель) на переменную a. А функция increment напрямую изменяет переменную a.

А для типов объектов это будет работать следующим образом:

public void increment(Integer x) {
  x = Integer.valueOf(x.intValue() + 1);
}
Integer a = Integer.valueOf(1);
increment(a);
// a is now 2

Теперь вы видите разницу?

person grom    schedule 06.08.2008
comment
По вашему определению прохода по ссылке нет. Все, что передается, должно иметь значение (даже null является значением), даже если это просто значение указателя, в противном случае это просто пустой набор. По условиям CS передача по ссылке - это передача значения ссылки (указателя). Я немного запутался.? - person WolfmanDragon; 31.01.2009

В C # int - это просто псевдоним для System.Int32, строка для System.String, double для System.Double и т. Д.

Лично я предпочитаю int, string, double и т. Д., Потому что они не требуют оператора using System; :) Глупая причина, я знаю ...

person huseyint    schedule 02.08.2008
comment
И следует добавить, что C # int / Int32 не то же самое, что Java Integer. - person Judah Gabriel Himango; 05.03.2010

Есть много причин использовать классы-оболочки:

  1. Мы получаем дополнительное поведение (например, мы можем использовать методы)
  2. Мы можем хранить нулевые значения, тогда как в примитивах мы не можем
  3. Коллекции поддерживают хранение объектов, а не примитивов.
person Shravan    schedule 31.07.2014

На это уже был дан ответ для Java, вот ответ C #:

«Целое число» не является допустимым именем типа в C #, а «int» - это просто псевдоним для System.Int32. Кроме того, в отличие от Java (или C ++) в C # нет каких-либо специальных примитивных типов, каждый экземпляр типа в C # (включая int) является объектом. Вот демонстрационный код:

void DoStuff()
{
    System.Console.WriteLine( SomeMethod((int)5) );
    System.Console.WriteLine( GetTypeName<int>() );
}

string SomeMethod(object someParameter)
{
    return string.Format("Some text {0}", someParameter.ToString());
}

string GetTypeName<T>()
{
    return (typeof (T)).FullName;
}
person Wedge    schedule 04.08.2008
comment
Чтобы было ясно, в C # int, как и System.Int32, не являются объектами. Это типы значений, и среда CLR обрабатывает их иначе, чем объекты. - person Peter Meyer; 01.10.2008
comment
Собственно, в C # Int32 - это объект. Это объект структуры типа valuetype, производный от system.object. Он не обрабатывается особенно иначе, чем другие объекты значений, как int в Java. - person Wedge; 01.10.2008

Еще одна вещь, которую я не вижу в предыдущих ответах: в Java классы примитивных оболочек, такие как Integer, Double, Float, Boolean ... и String, считаются инвариантными, поэтому при передаче экземпляра этих классов вызываемые Метод не может каким-либо образом изменить ваши данные, в отличие от большинства других классов, внутренние данные которых могут быть изменены его общедоступными методами. Таким образом, у этого класса есть только методы получения, а не методы установки, кроме конструктора.

В java-программе строковые литералы хранятся в отдельной части памяти кучи, только экземпляр для литерала, чтобы сохранить память, повторно используя эти экземпляры.

person Telcontar    schedule 06.08.2008

int используется для объявления примитивной переменной

e.g. int i=10;

Целое число используется для создания ссылочной переменной класса Integer

Integer a = new Integer();
person nagarajn89    schedule 11.12.2011

На таких платформах, как Java, ints являются примитивами, а Integer - объектом, который содержит целочисленное поле. Важное отличие состоит в том, что примитивы всегда передаются по значению и по определению неизменяемы.

Любая операция с примитивной переменной всегда возвращает новое значение. С другой стороны, объекты передаются по ссылке. Можно утверждать, что точка на объект (также известная как ссылка) также передается по значению, а содержимое - нет.

person mP.    schedule 31.01.2009
comment
@peter Mortense, Как (int a; Integer a;) влияет на программу, я имею в виду, как они влияют на выполнение. - person Anuj Masand; 27.06.2017

программировали ли вы раньше (int) - один из примитивных типов, которые вы можете установить для своих переменных (точно так же, как char, float, ...).

но Integer - это класс-оболочка, который вы можете использовать для выполнения некоторых функций с переменной int (например, преобразовать ее в строку или наоборот, ...), но имейте в виду, что методы в классах-оболочках являются статическими, поэтому вы можете их использовать в любое время без создания экземпляра класса Integer. Подведем итоги:

int x;
Integer y; 

x и y являются переменными типа int, но y обернута классом Integer и имеет несколько методов, которые вы используете, но в случае, если вам нужно вызвать некоторые функции класса оболочки Integer, вы можете сделать это просто.

Integer.toString(x);

но имейте в виду, что и x, и y являются corect, но если вы хотите использовать их как примитивный тип, используйте простую форму (используется для определения x).

person Mr.Q    schedule 17.05.2014

Java:

int, double, long, byte, float, double, short, boolean, char - примитивы. Используется для хранения основных типов данных, поддерживаемых языком. примитивные типы не являются частью иерархии объектов и не наследуют Object. Их нельзя передать методом ссылки.

Double, Float, Long, Integer, Short, Byte, Character и Boolean, являются оболочками типа, упакованными в java.lang. Все оболочки числового типа определяют конструкторы, которые позволяют создавать объект из заданного значения или строкового представления этого значения. Использование объектов может добавить накладных расходов даже к самым простым вычислениям.

Начиная с JDK 5, Java включает в себя две очень полезные функции: автобоксинг и автоответчик. Autoboxing / unboxing значительно упрощает и оптимизирует код, который должен преобразовывать примитивные типы в объекты и наоборот.

Пример конструкторов:

Integer(int num)
Integer(String str) throws NumberFormatException
Double(double num)
Double(String str) throws NumberFormatException

Пример упаковки / распаковки:

class ManualBoxing {
        public static void main(String args[]) {
        Integer objInt = new Integer(20);  // Manually box the value 20.
        int i = objInt.intValue();  // Manually unbox the value 20
        System.out.println(i + " " + iOb); // displays 20 20
    }
}

Пример автобокса / автоответчика:

class AutoBoxing {
    public static void main(String args[]) {
        Integer objInt = 40; // autobox an int
        int i = objInt ; // auto-unbox
        System.out.println(i + " " + iOb); // displays 40 40
    }
}

P.S. Книга Герберта Шильдта была взята за образец.

person J-Alex    schedule 13.06.2016

Переменная типа int содержит 32-битное целое число со знаком. Целое число (с большой буквы) содержит ссылку на объект (класса) типа Integer или на null.

Java автоматически выполняет переход между ними; от Integer к int всякий раз, когда объект Integer появляется в качестве аргумента для оператора int или присваивается переменной int, или значение int присваивается переменной Integer. Такой кастинг называется боксом / распаковкой.

Если целочисленная переменная, ссылающаяся на null, распакована, явно или неявно, создается исключение NullPointerException.

person Community    schedule 26.11.2015

Int и Integer в Java и C # - это два разных термина, используемых для обозначения разных вещей. Это один из примитивных типов данных, которые можно присвоить переменной, которая может точно хранить. Одно значение объявленного типа за раз.

Например:

int number = 7;

Где int - тип данных, присвоенный номеру переменной, которая содержит значение семь. Итак, int - это просто примитив, а не объект.

В то время как Integer - это класс-оболочка для примитивного типа данных, который имеет статические методы. Это можно использовать в качестве аргумента метода, которому требуется объект, где int может использоваться в качестве аргумента метода, требующего целочисленного значения, которое может использоваться для арифметического выражения.

Например:

Integer number = new Integer(5);
person Ricky Muchedzi    schedule 07.08.2014

В обоих языках (Java и C #) int - это 4-байтовое целое число со знаком.

В отличие от Java, C # предоставляет целочисленные значения как со знаком, так и без знака. Поскольку Java и C # являются объектно-объектно-ориентированными, некоторые операции на этих языках не отображаются непосредственно на инструкции, предоставляемые средой выполнения, и поэтому должны быть определены как часть объекта определенного типа.

C # предоставляет System.Int32, который является типом значения, использующим часть памяти, принадлежащую ссылочному типу в куче.

java предоставляет java.lang.Integer, который является ссылочным типом, работающим с int. Методы в Integer не могут быть скомпилированы напрямую для инструкций времени выполнения. Поэтому мы помещаем значение типа int, чтобы преобразовать его в экземпляр Integer, и используем методы, которые ожидают экземпляр некоторого типа (например, toString(), parseInt(), valueOf() и т. Д.).

В C # переменная int относится к System.Int32.Any 4-байтовому значению в памяти, которое можно интерпретировать как примитивный int, которым можно управлять с помощью экземпляра System.Int32. Таким образом, int является псевдонимом для System.Int32.When с использованием методов, связанных с целыми числами, таких как int.Parse(), int.ToString() и т. Д. Целое число компилируется в структуру FCL System.Int32, вызывая соответствующие методы, такие как Int32.Parse(), Int32.ToString().

person Bindumalini KK    schedule 17.07.2014

В Java тип int - это примитивный тип данных, а тип Integer - это объект.

В C # тип int также является типом данных, аналогичным System.Int32. integer (как и любые другие типы значений) может быть упакован («завернут») в объект.

person thamashi97    schedule 27.04.2017

В Java int - это примитивный тип данных, а Integer - это вспомогательный класс, который используется для преобразования одного типа данных в другой.

Например:

double doubleValue = 156.5d;
Double doubleObject  = new Double(doubleValue);
Byte myByteValue = doubleObject.byteValue ();
String myStringValue = doubleObject.toString();

Примитивные типы данных хранят самую быструю доступную память, а класс Helper сложен и хранятся в heep-памяти.

ссылка на "Основное обучение Java" Дэвида Гасснера.

person Aqeel Haider    schedule 28.02.2016

«int» - это примитивный тип данных, а «Целое число» в классе Wrapper в Java. «Целое число» может использоваться в качестве аргумента метода, которому требуется объект, а «целое число» может использоваться в качестве аргумента метода, которому требуется целочисленное значение, которое может использоваться для арифметического выражения.

person MD RAHIIM    schedule 04.08.2017

01. Целое число может быть нулевым. Но int не может быть нулевым.

Integer value1 = null; //OK

int value2 = null      //Error

02. В любой класс коллекции можно передавать только значения типа Wrapper Classes.

(Классы оболочки - логические, символьные, байтовые, короткие, целые, длинные, с плавающей запятой, двойные)

List<Integer> element = new ArrayList<>();
int valueInt = 10;
Integer  valueInteger = new Integer(value);
element.add(valueInteger);

Но обычно мы добавляем примитивные значения в класс коллекции? Пункт 02 правильный?

List<Integer> element = new ArrayList<>();
element.add(5);

Да 02 правильный, beacouse autoboxing.

Автобоксирование - это автоматическое преобразование, которое компилятор java выполняет между примитивным типом и их соответствующим классом-оболочкой.

Затем 5 преобразовать в целочисленное значение с помощью автобокса.

person Priyantha    schedule 05.06.2018

int предопределен в библиотечной функции C #, но в java мы можем создать объект Integer

person Mausam Sinha    schedule 06.03.2017

(Версия для Java) Простыми словами int является примитивным, а Integer - это объект-оболочка для int.

Один пример, где использовать Integer vs int. Когда вы хотите сравнить переменную int и снова null, это вызовет ошибку.

int a;
//assuming a value you are getting from data base which is null
if(a ==null) // this is wrong - cannot compare primitive to null
{
do something...}

Instead you will use,
Integer a;
//assuming a value you are getting from data base which is null
if(a ==null) // this is correct/legal
{ do something...}
person Rishabh Agarwal    schedule 15.02.2018

В java, насколько мне известно, если вы ученик, тогда, когда вы пишете int a; тогда в java generic он будет компилировать код типа Integer a = new Integer(). Итак, в соответствии с родовыми типами Integer не используется, но используется int. так вот такая разница там есть.

person Aatu Dave    schedule 22.09.2016
comment
Есть еще 18 ответов на этот вопрос. Ваш добавляет что-то, что упустили другие? Не помогает то, что здесь нет грамматики. - person Teepeemm; 23.09.2016

int - примитивный тип данных. Integer - это класс-оболочка. Он может хранить данные типа int как объекты.

person Kavinda Pushpitha    schedule 03.06.2019

int - это примитивный тип данных, а Integer - это объект. Создание объекта с помощью Integer предоставит вам доступ ко всем методам, доступным в классе Integer. Но если вы создадите примитивный тип данных с помощью int, вы не сможете использовать эти встроенные методы, и вам придется определять их самостоятельно. Но если вам не нужны другие методы и вы хотите сделать программу более эффективной с точки зрения памяти, вы можете использовать примитивный тип данных, потому что создание объекта увеличит потребление памяти.

person Lourdes    schedule 03.07.2019