Теги ‘java’

JAVA / В страданиях по свойствам: геттеры против публичных полей

Нет комментариев »

Да, в Java нет свойств объектов на манер Object Pascal, C#, Python и иже с ними. По этому поводу осознанно или неосознанно страдают много Java-разработчиков, и в их стане выделилось две существенные группы: одна следует Sun coding conventions и всегда все поля, кроме статических, делает private, оборачивает их геттерами и сеттерами, а другая следует зову сердца и просто выставляет public-поля наружу. (Есть ещё третья группа, которая понимает что к чему и перемешивает оба подхода; таких, к сожалению, мало).



Что же кроется за требованием convention’а, которому следуют разработчики из первой группы? Кроме очевидного требования об инкапсуляции, есть ещё одна тонкость. Читавшим спецификацию или хотя бы «Thinking in Java» она очевидна с пол-пинка, для всех остальных представляю задачку:



Что выведет эта программа?





JAVA / Java по-русски. Часть вторая: интернет-ресурсы

Нет комментариев »

image



В продолжение первой части. Сегодня будем рассматривать ресурсы о Java в интернете, которые подразделим на 4 части: вендоры, JUG, форумы, новости. А заодно подведём итоги.


Вендоры


Sun Microsystems



image

Основной сайт компании Sun содержит чисто рекламную информацию, поэтому рассматривать мы будем Сеть Разработчиков. Итак, что же здесь есть:

  • JavaFX — хит сезона. В рамках продвижения Sun проводит конкурсы по этой технологии, ещё вы можете найти документацию на русском языке и даже Wiki.
  • Академические программы — информация об образовательных программах. В основном это курсы для преподавателей и учебные материалы — лекции, написанные в рамках грантов.
  • Java SE, Java EE, Java ME, JavaCard за 2009 год не содержат практически никаких обновлений, а за предыдущие года есть разве что переводы некоторых статей.
  • Форум довольно мёртвый, за исключением раздела о JavaFX.
  • Ещё есть переводы англоязычных блогов The Aquarium и The Planetarium, посвящённых новостям о Java EE и Java для всех других платформ(SE, ME, FX, etc…) соответственно.



JAVA / Другие возможности Java

Нет комментариев »

Я продолжаю переводить источник первой статьи. Всё больше очевидных вещей, не смотря на это я все же решил, что повторение — не такое плохое занятие.



И коли источник исчерпыет себя — призыв к хабра-java-сообществу: «Don’t be jealous!», дополните этот список в комментариях, поделитесь опытом. А пока — продолжение предыдущей статьи, после монтажа, дубляжа и разбавления собственным опытом:


JDK tools



Почти все в курсе, что в поставку JDK входит внушительное число tools’ов. Однако в повседневной работе, думаю, многие кроме как java, javac, jar не используют. Что же ещё можно взять из папки bin:


JAVA / Книжная полка: Java

Нет комментариев »
По мотивам «JAVA ? Java по-русски. Часть первая: Книги» habrahabr.ru/blogs/java/66568/





Добрый день, уважаемые хабровчане!

В предыдущем обзоре Java книг, проведенном пользователем Scala, было рассказано о «практических» книгах, вышедших на рынок в последние три года. Я же хочу рассказать об этих и других книгах с несколько иного ракурса: попытаться выделить ценность информации книг.

Я не любитель читать с монитора, и предпочитаю книги покупать в бумажном варианте. Чтобы сделать осознанный выбор, следует отдавать себе отчет в том, что книга несет некие фундаментальные знания, но никак не сборник «последние фишки». Также в данной статье я хочу упомянуть о других известнейших трудах, не касающихся Java напрямую. Посмотрим, что лучше всего выбрать для обучения языку?


JAVA / Особенности обработки исключений

Нет комментариев »

Некоторые вещи иногда работают не так, как подсказывает интуиция. Это утверждение можно отнести к обработке исключений в Java. Далее — ситуации и примеры кода, которые отражают имеющиеся нюансы.



JAVA / Нетривиальные возможности Java

Нет комментариев »

Java — язык простой. И после года активного использования для Вас не остаётся секретов. Совершенно случайно я обнаружил, что на stackoverfow люди решили поделиться скрытыми возможностями (Hidden Features of Java). Вышло очень занимательно, получился своеобразный рейтинг нетривиальных возможностей, который я далее запротоколирую в вольном переводе на русский.


double brace



С большим отрывом лидирует «double brace», уже обсуждавшийся ранее в статье Эффект «double brace» by zeroed. Подробное описание метода — 

http://www.c2.com/cgi/wiki?DoubleBraceInitialization

несомненно это самое забавное и неочевидное из списка. Однако как уже отмечалось, метод имеет свои минусы в виде анонимного класса на каждое использование этого метода. А также невозможности использования метода equals () для подобных объектов.



JAVA / Узнаем параметр Generic-класса в Java

Нет комментариев »

Если вы не очень часто программируете на Java, то этот топик скорее всего будет для вас бесполезен. Не читайте его :)



Недавно понадобилось решить следующую задачу: определить класс, которым параметризован generic-класс.



Если кто-то сталкивался с подобной задачей, то наверное также сразу попробовал написать что-то вроде этого:

public class AbstractEntityFactory<E extends Entity> {

  public Class getEntityClass() {

    return E.class;

  }

}



Увы, IDE либо компилятор сразу укажут вам на ошибку («cannot select from a type variable» в стандартном компиляторе): "E.class" — не является допустимой конструкцией. Дело в том, что в общем случае во время исполнения программы информации о реальных параметрах нашего generic-класса может уже и не быть. Поэтому такая конструкция в Java не может работать.


JAVA / Более правильный способ тестирования Java программистов

Нет комментариев »

Многие тесты на сертификацию Java программистов содержат большое количество вопросов с вариантами выбора. От таких тестов толку немного: многие вещи, касающиеся API можно быстро узнать чтением документации или исходников. При этом, умение программировать, которое состоит по большей части из умения правильно сформулировать алгоритм и логически мыслить, совершенно не тестируется.



Компания betterprogramming.com из Сан-Франциско решила исправить эту проблему. Тест, находящийся на их сайте, вместо множества вопросов предлагает решить несколько задач. Задачи заключаются в реализации несложных алгоритмов (уровня районной олимпиады по программированию, первого тура ACM ICPC или легких задач в topcoder). Текст программы, написанный разработчиком исполняется на сервере, и по его результатам а также по времени, ушедшем на прохождения теста, выставляется оценка.



Попробовать этот тест можно здесь: www.betterprogrammer.com/


JAVA / Java по-русски. Часть первая: Книги

Нет комментариев »

image

Не так давно я проводил опрос «Какие материалы о Java вас интересуют на русском языке?» среди посетителей Хабра. Вторым этапом моего исследования будет обзор существующих русско-язычных ресурсов.


Книги



За 2009 на Ozon.ru можно найти 8 книг по Java (всего за последние 3 года их вышло 22 — примерно по 7 в год, на books.ru набор примерно такой же, так что наша выборка довольно репрезентативна). Посмотрим, что это за книги?


Языки программирования / Производительность C++ vs. Java vs. PHP vs. Python. Тест «в лоб»

Нет комментариев »

UP: по результатам обсуждения в комментариях, поправлен код Python (около 40% ускорения), написан код на Perl, компилируется Ruby (надо же попробовать), поправлен код на Java (на моей машине корректнее тестировать int, а не long). Скоро в статью добавятся новые графики :)



Вопрос производительности (скорости работы) различных языков часто всплывает в комментариях, на форумах, часто необоснованные :) . Встречаются статьи, в которых авторы приводят примеры, где выигрывает реализация на том или ином языке.



После прочтения очередной статьи мне захотелось самому разобраться «здесь и сейчас». Сначала захотелось сравнить Java и C++ (не верил я, что в вычислительных тестах ява может догнать и обогнать cpp). 10 минут и простой код на C++ и яве готов: простой цикл и математические операции. После написания теста подумал и перевёл их на php и python.