12 ответов:
intявляется примитивным типом. Переменные типаintсохраните фактическое двоичное значение для целого числа, которое вы хотите представить.int.parseInt("1")не имеет смысла, потому чтоintи не класс и поэтому не имеет никаких методов.
Integerэто класс, ничем не отличающийся от любого другого в языке Java. Переменные типаIntegerмагазине ссылки доIntegerобъекты, как и с любым другим ссылочным (объектным) типом.Integer.parseInt("1")- это вызов статический методparseIntклассаInteger(обратите внимание, что этот метод на самом деле возвращаетint, а неInteger).чтобы быть более конкретным,
Integer- это класс с одним полем типаint. Этот класс используется там, где вам нужноintобрабатывается как любой другой объект, например, в универсальных типах или ситуациях, когда вам нужна возможность обнуления.обратите внимание, что каждый примитивный тип в Java имеет эквивалент фантик класс:
byteиByteshortиShortintиIntegerlongиLongbooleanиBooleancharиCharacterfloatиFloatdoubleиDoubleклассы-оболочки наследуют от класса Object, и примитивный не. Поэтому он может быть использован в коллекции с объекта ссылка или с дженериками.
С java 5 у нас есть автобоксинг, и преобразование между примитивом и классом оболочки выполняется автоматически. Однако будьте осторожны, так как это может привести к тонким ошибкам и проблемам с производительностью; быть явным о преобразованиях никогда не повредит.
целое число-это просто обертка для примитивного типа int. Это позволяет использовать все функции класса Integer, чтобы сделать жизнь немного проще для вас.
Если вы новичок в Java, то вы должны научиться ценить документацию Java. Например, все, что вы хотите знать о Integer Класс подробно документировано.
это прямо из документации для целого класса:
в Класс Integer обертывает значение примитивного типа int в объект. Объект типа Integer содержит одно поле, тип которого-int.
Integerотносится к типу оболочки в Java, тогда какintявляется примитивным типом. Все, кроме примитивных типов данных в Java реализовано так же, как объекты, которые подразумевают, что Java является высококвалифицированным чистым объектно-ориентированным языком программирования. Если вам нужно, все типы примитивов также доступны как типы оболочки в Java. Вы можете иметь некоторое преимущество в производительности с примитивными типами, и поэтому типы обертки должны использоваться только тогда, когда это необходимо.в вашем примере как под.
Integer n = 9;постоянной
9идет авто-коробочные (auto-boxingиunboxingпроисходит автоматически отjava 5года) кIntegerи поэтому вы можете использовать оператор, как это, а такжеInteger n = new Integer(9). Это фактически достигается с помощью утвержденияInteger.valueOf(9).intValue();
переменная int содержит 32-разрядное целое число со знаком. Целое число (с заглавной буквы I) содержит ссылку на объект (класс) типа Integer или null.
Java автоматически выполняет приведение между ними; от Integer до int всякий раз, когда объект Integer встречается в качестве аргумента оператору int или присваивается переменной int, или значение int присваивается целочисленной переменной. Это кастинг называется бокс / распаковка.
Если целочисленная переменная, ссылающаяся на null при распаковке явно или неявно создается исключение NullPointerException.
(в приведенном тексте, термин "переменная" означает локальную переменную, поле или параметр)
int-это примитивный тип, а не объект. Это означает, что нет никаких методов, связанных с ним. Integer-это объект с методами (например, parseInt).
С новой java есть функциональность для автоматического бокса (и распаковки). Это означает, что компилятор вставит целое число.метод valueOf(int) или целое число.intValue () там, где это необходимо. Это означает, что на самом деле можно написать
Integer n = 9;трактуется как
Integer n = Integer.valueOf(9);
Integer-это класс-оболочка / объект, а int-примитивный тип. Это различие играет огромную роль, когда вы хотите хранить значения int в коллекции, потому что они принимают только объекты в качестве значений (до jdk1.4). JDK5 вперед из-за автобоксинга это совершенно другая история.
int- Это примитивный тип, представляющий целое число. тогда какInteger- это объект, который обертываетint. Элемент
для оптимизации выполнения кода Java,
intпримитивный тип(ы) был добавлен в том числеfloat,booletc. но они приходят вместе с wrapper-классы так что при необходимости вы можете конвертировать и использовать их в качестве стандартного объекта Java вместе со многими утилитами, которые входят в их функции-члены (например,Integer.parseInt("1")).
в Java int является примитивным типом данных, а Integer-вспомогательным классом, он используется для преобразования одного типа данных в другой.
например:
double doubleValue = 156.5d; Double doubleObject = new Double(doubleValue); Byte myByteValue = doubleObject.byteValue (); String myStringValue = doubleObject.toString();примитивные типы данных хранят самую быструю память, где вспомогательный класс является сложным и хранить в памяти.
ссылка из" David Gassner " Java Essential Training.
int- Это примитивный тип данных, в то время какInteger- Это тип ссылки или оболочки (класс) в Java.после
java 1.5которые вводят понятие автоупаковка и анбоксинг вы можете инициализировать обаintилиIntegerтакой.int a= 9 Integer a = 9 // both valid After Java 1.5.почему
Integer.parseInt("1");а неint.parseInt("1");??
Integer- это класс, определенный вjdkбиблиотеки иparseInt()статический метод принадлежитIntegerКласси
Integer.parseInt("1");возможно в java. ноintявляется примитивным типом (предположим, как ключевое слово) в java. Так что, вы не можете позвонитьparseInt()Сint.
Это взято из Java: Полная Ссылка, Девятое Издание
Java использует примитивные типы (также называемых простыми типами), например,int или двойной, для хранения основных типов данных, поддерживаемых язык. примитивные типы, а не объекты, используемые для этих количество для ради производительности. Использование объектов для этих значений добавил бы недопустимо накладные расходы даже самый простой из проведенные расчеты. Таким образом,примитивные типы не являются частью объекта иерархия и они не наследуют объект.
несмотря на производительность преимущество, предлагаемое примитивными типами, есть моменты, когда вы будете нужно представление объекта. Например, вы не можете пройти примитивный введите по ссылке на метод. Кроме того, многие стандартные данные структуры, реализованные Java работайте на объектах, а это значит, что вы не можете использовать эти (объектно-ориентированные) структуры данных для хранения примитивных типов. К обрабатывая эти (и другие) ситуации, Java предоставляет оболочки типов, которые являются классами, инкапсулирующими примитивный тип внутри объекта.
классы-оболочки относятся непосредственно к Java автоупаковка особенность. Тип обертки Double, Float, Long, Integer, Short, Байт, символ и логическое значение. Эти классы предлагают широкий спектр методов, которые позволяют полностью интегрировать примитивные типы в Иерархия объектов Java.
Comments