Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Портал .::2BakSa.WS::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Java

Уважаемые пользователи nowa.cc и 2baksa.ws. У нас сложилось тяжёлое финансовое положение. Мы работаем для вас вот уже более 15 лет и сейчас вынуждены просить о помощи. Окажите посильную поддержку проектам. Мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: 826074280762 Webmoney WME: 804621616710
PayPal PayPal_Email E-mail для связи по вопросу помощи
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!
Ответ
 
Опции темы Опции просмотра Language
Старый 22.03.2009, 19:47   #1
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Простые (ли?) задачки по JAVA

Предлагаю здесь публиковать маленькие задачки по языку Java.
Но маленькие, не значит простые! Это будет полезно тем, кто
хочет изучить Java больше с теоретической сторны, а как известно,
нет ничего практичней хорошеи теории

Это ещё и полезно будет, если кто нибудь будет готовиться к сертификации SCJP
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...

Последний раз редактировалось ana; 01.04.2009 в 00:45.. Причина: Добавлено сообщение
ana вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Рекомендуем KNS.ru - проектор benq mh550 - более 50-ти тысяч наименований товаров со склада в Москветеатры москва билетывывеска светящаясякупить лига 02Conecte Brevo a Launched


Старый 31.03.2009, 20:11   #2
lexluther
Неактивный пользователь
 
Регистрация: 31.03.2009
Сообщений: 5
Репутация: 1
По умолчанию Re: Простые (ли?) задачки по JAVA

13 правильно?
lexluther вне форума
 
Ответить с цитированием Вверх
Старый 01.04.2009, 00:44   #3
ana
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Re: Простые (ли?) задачки по JAVA

Итак поехали>

int i = 5;
print (i++ + ++i);

Что будет напечатано, и почему?
Пожалуйста попробуйте решить вначале в голове

Цитата:
Сообщение от lexluther Посмотреть сообщение
13 правильно?


легко проверить если написать

print(i++ - ++i);

Код:
public class Test {
	public static void main(String[] args) {
		int i = 5;
		System.out.println(i++ - ++i);
	}
}
получилось -2

Почему?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...

Последний раз редактировалось ana; 01.04.2009 в 00:52..
ana вне форума
 
Ответить с цитированием Вверх
Старый 08.04.2009, 18:17   #4
Ignoramus
Неактивный пользователь
 
Пол:Мужской
Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
По умолчанию Re: Простые (ли?) задачки по JAVA

Почему получилось -2? Потому что 5-7=-2. В выражении i++ выполнится ПОСЛЕ того, как i поучаствует в вычислениях а ++i до. Префиксная и постфиксная форма.
Ignoramus вне форума
 
Ответить с цитированием Вверх
Старый 10.04.2009, 12:44   #5
ana
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Re: Простые (ли?) задачки по JAVA

Следующий пример в уме не могут решить примерно 90% программистов, хотя он всего две строчки

Пожалуйста только в голове, в Eclipse может каждый!

Итак метод main, первая строчка>

byte i=5;

вторая строчка>

System.out.println(~i);

Вопрос, что будет выведено на консоль, и почему?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
ana вне форума
 
Ответить с цитированием Вверх
Старый 11.04.2009, 01:38   #6
ana
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Re: Простые (ли?) задачки по JAVA

Цитата:
Сообщение от Ignoramus Посмотреть сообщение
Почему получилось -2? Потому что 5-7=-2. В выражении i++ выполнится ПОСЛЕ того, как i поучаствует в вычислениях а ++i до. Префиксная и постфиксная форма.

Согласен, что i++ меняется после, поэтому она остаётся 5, постфиксная форма, а вот префиксная увеличивает переменную до начала использования, т.е. 1+5=6 , но не 7 же!

__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
ana вне форума
 
Ответить с цитированием Вверх
Старый 15.04.2009, 12:54   #7
Ignoramus
Неактивный пользователь
 
Пол:Мужской
Регистрация: 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.. Причина: Добавлено сообщение
Ignoramus вне форума
 
Ответить с цитированием Вверх
Старый 17.04.2009, 09:24   #8
refactorer
Неактивный пользователь
 
Регистрация: 18.01.2008
Сообщений: 7
Репутация: 1
По умолчанию Re: Простые (ли?) задачки по JAVA

как напечатать "Hello, world" в консоли без функции main()
refactorer вне форума
 
Ответить с цитированием Вверх
Старый 03.05.2009, 21:17   #9
ana
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Re: Простые (ли?) задачки по JAVA

Цитата:
Сообщение от refactorer Посмотреть сообщение
как напечатать "Hello, world" в консоли без функции main()

Никак... Запустить Java программу можно только через метод main ...

Добавлено через 3 минуты




Как убираются объекты?

Допустим есть цикл>
for (i=1; i<5: i++) {
Objekt obj = new Object();
}
//

Вопрос> сколько объектов доступно для Garbage Collector?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...

Последний раз редактировалось ana; 03.05.2009 в 21:22.. Причина: Добавлено сообщение
ana вне форума
 
Ответить с цитированием Вверх
Старый 04.05.2009, 11:36   #10
Ignoramus
Неактивный пользователь
 
Пол:Мужской
Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
По умолчанию Re: Простые (ли?) задачки по JAVA

ну... цикл отработает 4 раза. Значит сборщику мусора достанется 3 объекта.
Ignoramus вне форума
 
Ответить с цитированием Вверх
Старый 05.05.2009, 23:12   #11
ana
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Re: Простые (ли?) задачки по JAVA

Цитата:
Сообщение от Ignoramus Посмотреть сообщение
ну... цикл отработает 4 раза. Значит сборщику мусора достанется 3 объекта.

Если цикл отработает 4 раза, значит будет 4 раза вызвано new Object(), значит после выхода из цикла их можно будет убрать, или как? Но не 3! Почему 3?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
ana вне форума
 
Ответить с цитированием Вверх
Старый 07.05.2009, 11:40   #12
Ignoramus
Неактивный пользователь
 
Пол:Мужской
Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
По умолчанию Re: Простые (ли?) задачки по JAVA

Потому что объект не достанется сборщику мусора до тех пор, пока на него есть хотя бы одна ссылка. В данном случае четыре раза создается экземпляр объекта и только на последний экземпляр после выхода из цикла останется ссылка. Как-то так...
Ignoramus вне форума
 
Ответить с цитированием Вверх
Старый 07.05.2009, 22:54   #13
ana
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Re: Простые (ли?) задачки по JAVA

Цитата:
Сообщение от Ignoramus Посмотреть сообщение
и только на последний экземпляр после выхода из цикла останется ссылка

Все объекты, которые создаются в скобках {} там же и остаются... Вот что выдаст например Eclipse >

[IMG]http://img15.**************/img15/9629/nowau.png[/IMG]

Так, что вопрос остаётся, сколько объектов после выхода из цикла
получит мусорщик?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
ana вне форума
 
Ответить с цитированием Вверх
Старый 08.05.2009, 10:23   #14
Ignoramus
Неактивный пользователь
 
Пол:Мужской
Регистрация: 16.01.2009
Сообщений: 38
Репутация: 11
По умолчанию Re: Простые (ли?) задачки по JAVA

О! Точно! Про область действия забыл. Значит 4 объекта и достанется.
Ignoramus вне форума
 
Ответить с цитированием Вверх
Старый 08.05.2009, 20:22   #15
ana
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Re: Простые (ли?) задачки по JAVA

Цитата:
Сообщение от Ignoramus Посмотреть сообщение
Значит 4 объекта и достанется.

Почему? Ведь уборщик мусора по идее начинает убирать объект, если на него нет ссылок,
Цитата:
Сообщение от Ignoramus Посмотреть сообщение
Потому что объект не достанется сборщику мусора до тех пор, пока на него есть хотя бы одна ссылка.

Полностью согласен, но после выхода из цикла имеется только одна (!) ссылка на объект! Или нет?
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...
ana вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загадки и задачки 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

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 00:22. Часовой пояс GMT +3.


Copyright ©2004 - 2024 2BakSa.WS

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.20041 секунды с 11 запросами