![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Предлагаю здесь публиковать маленькие задачки по языку Java.
Но маленькие, не значит простые! Это будет полезно тем, кто хочет изучить Java больше с теоретической сторны, а как известно, нет ничего практичней хорошеи теории ![]() Это ещё и полезно будет, если кто нибудь будет готовиться к сертификации SCJP ![]()
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
Последний раз редактировалось ana; 01.04.2009 в 00:45.. Причина: Добавлено сообщение |
|
|
|
|
| Реклама: | сотрудничество с гигачат | ювелирное торговое оборудование геи | ire 50x30 f1 | круизы по волге из самары на теплоходе 2026 | grundfos magna 3 50-120f |
|
|
#2
|
|
Неактивный пользователь
Регистрация: 31.03.2009
Сообщений: 5
Репутация: 1
|
13 правильно?
|
|
|
|
|
|
#3
|
|||||||||||||||||||||||
|
Итак поехали>
int i = 5; print (i++ + ++i); Что будет напечатано, и почему? ![]() Пожалуйста попробуйте решить вначале в голове ![]()
легко проверить если написать print(i++ - ++i); Код:
public class Test {
public static void main(String[] args) {
int i = 5;
System.out.println(i++ - ++i);
}
}
Почему?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
Последний раз редактировалось ana; 01.04.2009 в 00:52.. |
||||||||||||||||||||||||
|
|
|
|
|
#4
|
|
Неактивный пользователь
Пол:
Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
|
Почему получилось -2? Потому что 5-7=-2. В выражении i++ выполнится ПОСЛЕ того, как i поучаствует в вычислениях а ++i до. Префиксная и постфиксная форма.
|
|
|
|
|
|
#5
|
|
Следующий пример в уме не могут решить примерно 90% программистов, хотя он всего две строчки
![]() Пожалуйста только в голове, в Eclipse может каждый! ![]() Итак метод main, первая строчка> byte i=5; вторая строчка> System.out.println(~i); Вопрос, что будет выведено на консоль, и почему?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
|
|
|
|
|
|
|
#6
|
|||||||||||||||||||||||
Согласен, что i++ меняется после, поэтому она остаётся 5, постфиксная форма, а вот префиксная увеличивает переменную до начала использования, т.е. 1+5=6 , но не 7 же! ![]()
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
|
||||||||||||||||||||||||
|
|
|
|
|
#7
|
|
Неактивный пользователь
Пол:
Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
|
Не совсем так. Анализ выражения происходит так:
- так как i++ то для вычислений берется 5, затем i увеличивается на 1. Получаем 6. - так как ++i то i сначала увеличивается на 1 (не забываем, что уже было равно 6). Получаем 7. 5-7=-2. Добавлено через 3 минуты byte i=5; System.out.println(~i); На консоли будет -6. Задача не вызывает трудности, если знать, в каком виде хранятся отрицательные числа. 5 в двоичном виде будет ...101. Применив поразрядное логическое отрицание получим ... 11111010. А это двоичное представление числа -6 (не забываем про дополнение до 2-х). Последний раз редактировалось Ignoramus; 15.04.2009 в 12:57.. Причина: Добавлено сообщение |
|
|
|
| Сказали спасибо: |
|
|
#8
|
|
Неактивный пользователь
Регистрация: 18.01.2008
Сообщений: 7
Репутация: 1
|
как напечатать "Hello, world" в консоли без функции main()
|
|
|
|
|
|
#9
|
|||||||||||||||||||||||
Никак... Запустить Java программу можно только через метод main ... Добавлено через 3 минуты Как убираются объекты? Допустим есть цикл> for (i=1; i<5: i++) { Objekt obj = new Object(); } // Вопрос> сколько объектов доступно для Garbage Collector?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
Последний раз редактировалось ana; 03.05.2009 в 21:22.. Причина: Добавлено сообщение |
||||||||||||||||||||||||
|
|
|
|
|
#10
|
|
Неактивный пользователь
Пол:
Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
|
ну... цикл отработает 4 раза. Значит сборщику мусора достанется 3 объекта.
|
|
|
|
|
|
#11
|
|||||||||||||||||||||||
Если цикл отработает 4 раза, значит будет 4 раза вызвано new Object(), значит после выхода из цикла их можно будет убрать, или как? Но не 3! Почему 3?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
|
||||||||||||||||||||||||
|
|
|
|
|
#12
|
|
Неактивный пользователь
Пол:
Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
|
Потому что объект не достанется сборщику мусора до тех пор, пока на него есть хотя бы одна ссылка. В данном случае четыре раза создается экземпляр объекта и только на последний экземпляр после выхода из цикла останется ссылка. Как-то так...
|
|
|
|
|
|
#13
|
|||||||||||||||||||||||
Все объекты, которые создаются в скобках {} там же и остаются... Вот что выдаст например Eclipse > [IMG]http://img15.**************/img15/9629/nowau.png[/IMG] Так, что вопрос остаётся, сколько объектов после выхода из цикла получит мусорщик? ![]()
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
|
||||||||||||||||||||||||
|
|
|
|
|
#14
|
|
Неактивный пользователь
Пол:
Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
|
О! Точно! Про область действия забыл.
Значит 4 объекта и достанется. |
|
|
|
|
|
#15
|
||||||||||||||||||||||||||||||||||||||||||||||
Почему? Ведь уборщик мусора по идее начинает убирать объект, если на него нет ссылок,
Полностью согласен, но после выхода из цикла имеется только одна (!) ссылка на объект! Или нет? ![]()
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Загадки и задачки | Nu Je | Юмор | 202 | 17.05.2025 11:56 |
| Java начинающему. Что нужно для разработки Java-приложения? | mrzed | Java | 37 | 24.03.2011 16:31 |
| Помогите решить задачки | Vladylbkin | Программирование | 1 | 07.10.2009 22:44 |
|
|