Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 22:16 28.09.24 
Компютри и Интернет
   >> Java
Всички теми Следваща тема *Кратък преглед

Тема Java puzzles  
Авторpuzzler (Нерегистриран)
Публикувано15.08.07 12:30



Здравейте!

Чета в момента книгата "Java Puzzlers: Traps, Pitfalls and Corner Cases" на Joshua Bloch и NealGafter. Попаднах на една странна за мен ситуация:

Следващия код представлява безкраен цикъл и се изпълнява според очакванията - т.е. броя на извикванията не се изписва никога:

public class InTheLoop {
public static final int END = Integer.MAX_VALUE;
public static final int START = END - 100;

public static void main(String[] args) {
int count = 0;
for (int i = START; i <= END; i++)
count++;
System.out.println(count);
}
}

А следващия код, който според мен би трябвало да се държи по същия начин, изписва 101:

public static void main(String[] args) {
int END = Integer.MAX_VALUE;
int START = END - 100;

int count = 0;
for (int i = START; i <= END; i++)
count++;
System.out.println(count);
}

Това е във връзка с puzzle 28. Доста време се чудя и не намирам обяснение...
Единственото, което ми идва на ума е някаква оптимизация, тъй като се държи различно при дебъг... Работя на Еклипс под 64 битов Дебиан, та може и с това да е свързано...



Тема Re: Java puzzlesнови [re: puzzler]  
Автор EroS (непознат )
Публикувано16.08.07 11:17



Здравей,

предполагам че е от Eclipse-a, тъй като при мен си върви безкрайно, нищо не изкарва. Aз ползвам JDeveloper.

Успех!



Тема Re: Java puzzlesнови [re: EroS]  
Автор blRKOFF (JavaScientific)
Публикувано16.08.07 14:59



Aз пак ви препоръчвам ItelliJ IDEA



Тема Re: Java puzzlesнови [re: puzzler]  
Авторpuzzler (Нерегистриран)
Публикувано17.08.07 10:50



Благодаря за отговорите - явно ще пробвам с друга среда :-)



Тема аз от джава не разбирам много, нонови [re: puzzler]  
Авторhmm (Нерегистриран)
Публикувано31.08.07 11:11



защо цикълът в първия пример да е безкраен?

компилатора ли го оптимизира на безкраен предвид огромните числа? няма да е зле да си дръпна sdk-to и да пробвам нещо.
съжалявам за може би тъия въпрос!



Тема Re: аз от джава не разбирам много, нонови [re: hmm]  
Автор EroS (непознат )
Публикувано31.08.07 13:58



Java-та има "особеност", че
Integer.MAX_VALUE + 1 = Integer.MIN_VALUE
т.е. стигайки до макс стойност и добавяйки 1, то индекса става мин сотйност.

Незнам дали го обясних както трябва, дано :-)




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.