Зря так сильно на Оракл плюетесь. Возможно не самая лучшая корпорация с не самыми лучшими решениями, но по крайней мере они одно сделали хорошо: простимулировали очень бурное развитие Java, которое очень было необходимо в текущих реалиях.
Нельзя продать ТОЛЬКО идею. Надо много работать над персонажами, деталями. Мне кажется, нельзя добиться большого успеха только за счет идеи. Например, давайте посмотрим на Tiny Wings...
В качестве примера здесь можно было бы взять и саму игру Angry Birds, учитывая, что она сделана по мотивам вышедшей до нее флешевой «Crush The Castle».
Нет, я конечно понимаю, что «Google (Facebook/Вконтакте/баба Галя на скамейке/<any>) за мной следит и я чувствую себя некомфортно», с другой стороны, это делается по вполне разумным причинам: выдывать релевантные результаты поисков, релевантную рекламу, релевантное что-угодно.
Если хотят собирать статистику — пусть это делают, при условии, что я, в свою очередь, буду получать то, что мне нужно в каждый определенный момент времени, что мне интересно.
Когда я пользуюсь интернетом «как обычный человек», я не вижу смысла пытаться скрываться от всех и вся, усложняя жизнь себе и бизнес Им.
Если же мне нужна хоть какая-то анонимность: приватный режим браузера (или вообще другой браузер), тор/прокси/впн — вот она свобода.
Все остальное: еда для параноиков и фанатиков АНАНимнАсти.
Скажем, я лично не уверен, что new String("...") и «ююю» вообще компилируется в разные вещи.
Любая конструкция «foobar» является частью константного пула класса. Вызов «new String(»foobar")" порождает новый объект, который использует соответствующую константную строку. Байткод в комментарии выше это наглядно илюстрирует.
Скажем «Преобразование чисел» предложение оно вообще непонятно как может быть скомпилировано иначе чем в valueOf.
Boxing будет в любом случае проходить через valueOf(), однако вызов «new Integer(n)» javac-компилятор соптимизировать не сможет, т.к. иначе не будет выполняться (new Integer(0) != new Integer(0)), что будет противоречить спецификации языка.
Про отличия стринг билдера и буфера, это вообще очень странный совет, синхронизация дальше BIAS не надуется и на производительности скажется не более, чем сверка threadId с монитором. Сомневаюсь, что это сильный аргумент. Хотя, конечно билдер использовать более правильно, но на перформанс кивать тут довольно глупо, если это не мегаострое место в программе.
Не понимаю, почему вы считаете это «странным» советом. Применение синхронизации не к месту может действительно привести к неожиданной синхронизации потоков, когда этого можно было бы избежать. В случае со StringBuilder/StringBuffer это кажется маловероятным, но я не вижу причин, по которым можно себе прощать использование буффера вместо билдера из-за того, что «немного кода синхронизации погоды не сделают».
Боятся instanceof тоже не стоит, где-то была работа где изучались разные виды multiple dispatch...
Бояться — нет. Избегать, где это возможно — да. Оптимизации instanceof в HotSpot хоть и хороши, тем не менее не являются серебряной пулей — против них можно легко можно создать контр-пример. В реальных приложения такие контр-примеры случаются не часто. Но в хорошо-спроектированных реальных приложениях «instanceof» в принципе почти не встречается.
Тормознутость рефлекшена, кстати опять же сильно преувеличена, при умелом подходе оно бегает довольно шустро.
Ключевая фраза «при умелом подходе». Опять же, неиспользование рефлексии, где использования можно избежать, всегда быстрее, чем ее использование.
Тем не менее, ваш поинт о том, что использование различных механизмов (рефлексия, instanceof) не станет резким образом узким местом в производительности, более чем справедлив.
В общем случае (при применении к интерфейсам) — медленный, т.к. против оптимизации поиска интерфейсов в дереве наследования в HS несложно создать контр-пример, который сведет ее на нет.
Впрочем, в реальной жизни такие контр-примеры случаются реже.
«instanceof» на интерфейсах использует достаточно сложную систему проверок из-за возможности реализовывать множество интерфейсов (а также из-за их собственного дерева наследования). Собственно, этого вполне достаточно, чтобы этот оператор можно было считать медленным. Хотя, на классах эта проверка делается за константное время.
А вот во время моей учебы все учебники в основном покупались родителями.
И мне кажется, что основная причина подобного различия в том, что я пошел в школу тогда, когда вы ее уже почти оканчивали.
Впрочем, не буду врать, в одной из моих школ некоторые учебники действительно выдавались, но в ограниченом количестве, да и далеко не в лучшем состоянии.
Так что все равно готовьте семейный бюджет к такой финансововй яме, как обучение ребенка:)
«Время в зоне отправителя» — это текущее время в зоне отправителя.
Поэтому разница в час как раз обоснована тем, что текст поста и скриншот были сделаны с разницей в тот самый час.
Правда, самые важные пункты (написание вменяемых комментариев, разбиение методов на более компактные, форматирование по абзацам, именование переменных, взывание к совести автора кода), к сожалению, клавишами в IDE пока не решаются.
Учитывая, что в уходе девушки от вас вы считаете виноватым именно hotmail, мне кажется я понял, почему она ушла. Я бы тоже свалил бы как можно дальше от вашей логики.
Ничего себе «заканчиваются». А как же разбиение на модули, method handles и invokedynamic?
Это не менее мажорные фичи.
В качестве примера здесь можно было бы взять и саму игру Angry Birds, учитывая, что она сделана по мотивам вышедшей до нее флешевой «Crush The Castle».
Нет, я конечно понимаю, что «Google (Facebook/Вконтакте/баба Галя на скамейке/<any>) за мной следит и я чувствую себя некомфортно», с другой стороны, это делается по вполне разумным причинам: выдывать релевантные результаты поисков, релевантную рекламу, релевантное что-угодно.
Если хотят собирать статистику — пусть это делают, при условии, что я, в свою очередь, буду получать то, что мне нужно в каждый определенный момент времени, что мне интересно.
Когда я пользуюсь интернетом «как обычный человек», я не вижу смысла пытаться скрываться от всех и вся, усложняя жизнь себе и бизнес Им.
Если же мне нужна хоть какая-то анонимность: приватный режим браузера (или вообще другой браузер), тор/прокси/впн — вот она свобода.
Все остальное: еда для параноиков и фанатиков АНАНимнАсти.
Нормальные разработчики понимают этот термин в любом контексте.
Любая конструкция «foobar» является частью константного пула класса. Вызов «new String(»foobar")" порождает новый объект, который использует соответствующую константную строку. Байткод в комментарии выше это наглядно илюстрирует.
Boxing будет в любом случае проходить через valueOf(), однако вызов «new Integer(n)» javac-компилятор соптимизировать не сможет, т.к. иначе не будет выполняться (new Integer(0) != new Integer(0)), что будет противоречить спецификации языка.
Не понимаю, почему вы считаете это «странным» советом. Применение синхронизации не к месту может действительно привести к неожиданной синхронизации потоков, когда этого можно было бы избежать. В случае со StringBuilder/StringBuffer это кажется маловероятным, но я не вижу причин, по которым можно себе прощать использование буффера вместо билдера из-за того, что «немного кода синхронизации погоды не сделают».
Бояться — нет. Избегать, где это возможно — да. Оптимизации instanceof в HotSpot хоть и хороши, тем не менее не являются серебряной пулей — против них можно легко можно создать контр-пример. В реальных приложения такие контр-примеры случаются не часто. Но в хорошо-спроектированных реальных приложениях «instanceof» в принципе почти не встречается.
Ключевая фраза «при умелом подходе». Опять же, неиспользование рефлексии, где использования можно избежать, всегда быстрее, чем ее использование.
Тем не менее, ваш поинт о том, что использование различных механизмов (рефлексия, instanceof) не станет резким образом узким местом в производительности, более чем справедлив.
Впрочем, в реальной жизни такие контр-примеры случаются реже.
худшееденежноемихалковскоекачественное?И мне кажется, что основная причина подобного различия в том, что я пошел в школу тогда, когда вы ее уже почти оканчивали.
Впрочем, не буду врать, в одной из моих школ некоторые учебники действительно выдавались, но в ограниченом количестве, да и далеко не в лучшем состоянии.
Так что все равно готовьте семейный бюджет к такой финансововй яме, как обучение ребенка:)
Поэтому разница в час как раз обоснована тем, что текст поста и скриншот были сделаны с разницей в тот самый час.