Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
22.03.2009, 19:47 | #1 |
Простые (ли?) задачки по JAVA
Предлагаю здесь публиковать маленькие задачки по языку Java.
Но маленькие, не значит простые! Это будет полезно тем, кто хочет изучить Java больше с теоретической сторны, а как известно, нет ничего практичней хорошеи теории Это ещё и полезно будет, если кто нибудь будет готовиться к сертификации SCJP
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе... Последний раз редактировалось ana; 01.04.2009 в 00:45.. Причина: Добавлено сообщение |
|
Реклама: | круиз астрахань ростов на дону на теплоходе | сергей мухин личная жизнь | мебели для дачи | Рекомендуем гипермаркет КНС - pantum 6550 - билеты на футбол в подарок каждому покупателю | город профессий коламбус |
31.03.2009, 20:11 | #2 |
Неактивный пользователь
Регистрация: 31.03.2009
Сообщений: 5
Репутация: 1
|
Re: Простые (ли?) задачки по JAVA
13 правильно?
|
01.04.2009, 00:44 | #3 | |||||||||||||||||||||||
Re: Простые (ли?) задачки по JAVA
Итак поехали>
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.. |
||||||||||||||||||||||||
08.04.2009, 18:17 | #4 |
Неактивный пользователь
Пол: Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
|
Re: Простые (ли?) задачки по JAVA
Почему получилось -2? Потому что 5-7=-2. В выражении i++ выполнится ПОСЛЕ того, как i поучаствует в вычислениях а ++i до. Префиксная и постфиксная форма.
|
10.04.2009, 12:44 | #5 |
Re: Простые (ли?) задачки по JAVA
Следующий пример в уме не могут решить примерно 90% программистов, хотя он всего две строчки
Пожалуйста только в голове, в Eclipse может каждый! Итак метод main, первая строчка> byte i=5; вторая строчка> System.out.println(~i); Вопрос, что будет выведено на консоль, и почему?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе... |
|
11.04.2009, 01:38 | #6 | |||||||||||||||||||||||
Re: Простые (ли?) задачки по JAVA
Согласен, что i++ меняется после, поэтому она остаётся 5, постфиксная форма, а вот префиксная увеличивает переменную до начала использования, т.е. 1+5=6 , но не 7 же!
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе... |
||||||||||||||||||||||||
15.04.2009, 12:54 | #7 |
Неактивный пользователь
Пол: Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
|
Re: Простые (ли?) задачки по JAVA
Не совсем так. Анализ выражения происходит так:
- так как 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.. Причина: Добавлено сообщение |
Сказали спасибо: |
17.04.2009, 09:24 | #8 |
Неактивный пользователь
Регистрация: 18.01.2008
Сообщений: 7
Репутация: 1
|
Re: Простые (ли?) задачки по JAVA
как напечатать "Hello, world" в консоли без функции main()
|
03.05.2009, 21:17 | #9 | |||||||||||||||||||||||
Re: Простые (ли?) задачки по JAVA
Никак... Запустить Java программу можно только через метод main ... Добавлено через 3 минуты Как убираются объекты? Допустим есть цикл> for (i=1; i<5: i++) { Objekt obj = new Object(); } // Вопрос> сколько объектов доступно для Garbage Collector?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе... Последний раз редактировалось ana; 03.05.2009 в 21:22.. Причина: Добавлено сообщение |
||||||||||||||||||||||||
04.05.2009, 11:36 | #10 |
Неактивный пользователь
Пол: Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
|
Re: Простые (ли?) задачки по JAVA
ну... цикл отработает 4 раза. Значит сборщику мусора достанется 3 объекта.
|
05.05.2009, 23:12 | #11 | |||||||||||||||||||||||
Re: Простые (ли?) задачки по JAVA
Если цикл отработает 4 раза, значит будет 4 раза вызвано new Object(), значит после выхода из цикла их можно будет убрать, или как? Но не 3! Почему 3?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе... |
||||||||||||||||||||||||
07.05.2009, 11:40 | #12 |
Неактивный пользователь
Пол: Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
|
Re: Простые (ли?) задачки по JAVA
Потому что объект не достанется сборщику мусора до тех пор, пока на него есть хотя бы одна ссылка. В данном случае четыре раза создается экземпляр объекта и только на последний экземпляр после выхода из цикла останется ссылка. Как-то так...
|
07.05.2009, 22:54 | #13 | |||||||||||||||||||||||
Re: Простые (ли?) задачки по JAVA
Все объекты, которые создаются в скобках {} там же и остаются... Вот что выдаст например Eclipse > [IMG]http://img15.**************/img15/9629/nowau.png[/IMG] Так, что вопрос остаётся, сколько объектов после выхода из цикла получит мусорщик?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе... |
||||||||||||||||||||||||
08.05.2009, 10:23 | #14 |
Неактивный пользователь
Пол: Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
|
Re: Простые (ли?) задачки по JAVA
О! Точно! Про область действия забыл. Значит 4 объекта и достанется.
|
08.05.2009, 20:22 | #15 | ||||||||||||||||||||||||||||||||||||||||||||||
Re: Простые (ли?) задачки по JAVA
Почему? Ведь уборщик мусора по идее начинает убирать объект, если на него нет ссылок,
Полностью согласен, но после выхода из цикла имеется только одна (!) ссылка на объект! Или нет?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе... |
|||||||||||||||||||||||||||||||||||||||||||||||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загадки и задачки | Nu Je | Юмор | 200 | 25.01.2021 08:58 |
Java начинающему. Что нужно для разработки Java-приложения? | mrzed | Java | 37 | 24.03.2011 15:31 |
Помогите решить задачки | Vladylbkin | Программирование | 1 | 07.10.2009 22:44 |
|
|