Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.07.2010, 00:00
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

java integer
Вопрос про java, может кто знает

Иногда в java переменные простых типов вроде int необходимо преобразовывать в объекты. Все простые типы имеют аналоги в виде классов, например тип int имеет аналог Integer, такие классы наз-ют объектными оболочками.
В различных случаях возможно преобразование объекта в простой тип и обратно.
Например, можно присвоить объект Integer переменной int
Код:
Integer obj = 4;
int var = obj;//теперь int = 4
Здесь целочисленное значение будет автоматически извлечено из объекта.
Теперь пример
Код:
public class ManagerTest {
     public static void main(String[] args) {
         //создпли объект
         Integer int1 = 90;
         //здесь компилятор автоматически извлечет целое число из объекта
        //увеличит его и снова поместит в объект
         int1++;

         System.out.println(int1);// отпечатает 91 
         //создадим новую переменную
         Integer n = int1;
        // и переменная n и int1 будут ссылаться на один и тот же объект  //=>условие выполнится
         if (n == int1) System.out.println("objects");

         n++;
         System.out.println(n);//92
         System.out.println(int1);//91 - ???????? почему не 92
     }
}
Ответить с цитированием
  #2 (permalink)  
Старый 31.07.2010, 00:28
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Если мне не изменя
Сообщение от Shaci
// и переменная n и int1 будут ссылаться на один и тот же объект //=>условие выполнится
проверьте с помощью equals
я полагаю, это все-таки различные объекты
Ответить с цитированием
  #3 (permalink)  
Старый 31.07.2010, 01:02
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Вот что мне на javatalks сказали:
Цитата:
Объекты-обертки, такие как Integer - они immutable, что значит, что они не могут быть изменены. Вообще. Поэтому во время инкремента на самом деле создается новый объект Integer и присваивается ссылке, таким образом после второго инкремента ссылки n и int1 указывают на разные объекты.
Каждый инкремент приводит к созданию нового объекта, это всё объясняет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищём Программиста JAVA Гордеева Оксана Работа 5 01.06.2010 21:14
Java ScrollTo. Скрол картинок на java. Надо подправить. vdm Ваши сайты и скрипты 1 28.10.2009 20:46
Java ScrollTo. Скрол картинок на java. Надо подправить. vdm Работа 0 27.10.2009 14:57
Java разработчик ищет удаленную работу. javaprogrammer Работа 0 22.12.2008 13:17
HELP: Java Script Error: “text” is undefined Aram Khachaturyan Общие вопросы Javascript 2 11.04.2008 16:57