Как стать автором
Поиск
Написать публикацию
Обновить
167.91

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

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

Время на прочтение9 мин
Количество просмотров115K
Если вы не очень часто программируете на 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 программистов

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

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

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

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

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

Книги


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

Ошибки out of perm gen space в программах на Java

Время на прочтение2 мин
Количество просмотров14K
Часто при передеплое java приложений, случается ошибка OutOfMemory: PermGenSpace. Давайте разберемся что это такое, отчего она бывает, и как с этим бороться.
Читать дальше →

Sun Java Runtime Environment 6.0 Update 15

Время на прочтение1 мин
Количество просмотров2.4K
Компания Sun Microsystems, Inc. выпустила пятнадцатое по счету обновление для шестой версии средств разработки и исполнения приложений, написанных на языке Java.
Это снова сервисный выпуск, которые включает обновленные сертификаты безопасности, а также исправляет около десяти ошибок (подробнее). Полный перечень нововведений детально описан в этом файле.
Скачать можно на официальном сайте. Кроме того, обновиться можно и через встроенную систему. Это позволит сэкономить трафик, так как будут скачаны только обновленные компоненты.

UPG
С java.sun.com/javase/downloads/index.jsp почему то убрали 15 версию. Хотя народ уже успел скачать:
Java Runtime Environment 6.0 Update 15 (15.9 MB, Windows 9x/2000/XP/2003/Vista x86)
Java Runtime Environment 6.0 Update 15 (16.7 MB, Windows XP/2003/Vista/x64)

Сортировка больших объёмов данных, реализация на Java

Время на прочтение15 мин
Количество просмотров17K
Недавно на Хабре была статья Сортировка миллиона 32-битных int'ов в 2 мегабайтах памяти на Питоне. Заинтересовался, попробовал реализовать на Java.

Конечно, 32 строчки не получилось. Получилось 235.
Но мне показалось, что результат вполне можно использовать в качестве первого поста — не судите строго ;)
Читать дальше →

Обновился сайт web-фреймвока Grails

Время на прочтение1 мин
Количество просмотров776
image


Напомним, что не так давно компания SpringSource приобрела компанию G2One, занимавшуюся разработкой Groovy & Grails. Кроме нового приятного дизайна, появились ссылки на сайт с коммерческой информацией и обновился раздел плагинов, который получил более удобную навигацию.

Для тех, кто впервые слышит о Grails, пара слов о его особенностях:
  • Для разработки используется динамический язык Groovy, который является расширением языка Java в сторону Smalltalk, Ruby и работает поверх JVM
  • Фреймворк не написан с нуля, а представляет собой скорее DSL поверх Spring & Hibernate
  • Первые два пункта дают простую интеграцию с множеством библиотек и проектов на Java
  • Поддержкой проекта занимается компания SpringSource — один из технологических лидеров в Java-индустрии

Автоматический контроль качества Java-кода

Время на прочтение7 мин
Количество просмотров25K
Код, который пишет программист, должен быть рабочим – самое первое правило успешной работы, с которым согласится и сам программист, и все его начальники. Но, кроме того, что код должен просто работать, часто к нему предъявляются повышенные требования – наличие комментариев (внутренней документации), читаемость, быстроту внесения изменений, совместимость с явными и неявными стандартами. Всё то, что можно назвать качеством кода.

Однако, в отличие от работоспособности кода, которую можно оценить с помощью выполнения проверочных тестов, качество кода не является простой оценкой TRUE или FALSE. Более того, под качеством кода понимается набор субъективных оценок восприятия кода другим человеком. Однако давайте всё-таки попробуем как-то формализовать задачу оценки качества, и, при возможности, дать способ автоматического выполнения этой задачи.
Читать дальше →

Абсолютная загадка наследования в Java

Время на прочтение4 мин
Количество просмотров29K
Почему эта загадка абсолютная? По двум причинам:
• Она касается основ языка Java, а не какого-то малоизвестного нюанса API.
• Она расплавила мой мозг, когда я на нее наткнулся.
Если вы хотите проверить себя перед дальнейшим чтением, пройдите этот тест.
Читать дальше →

Транзакции в Spring

Время на прочтение5 мин
Количество просмотров38K
Статья описывает пример по работе с транзакциями в популярном framework Spring. Статья предполагает, что вы знакомы с java и spring. Рабочий пример кода можно скачать с sf

Читать дальше →

NetBeans в Java Real-Time

Время на прочтение2 мин
Количество просмотров5.2K
nb
NetBeans — очень удобная для разработчика среда, обычно отпугивающая своей тормознутостью, т.к. громоздка и написана на Яве. Что ж, будем надеятся, что однажды все наладится, а пока посмотрим, как эту ситуацию может исправить Real-Time Java.

Запуск NetBeans в JavaRTS

Учимся проектировать на основе предметной области (DDD: Domain Driven Design)

Время на прочтение8 мин
Количество просмотров222K

1. Введение



В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design).


Читать дальше →

Ближайшие события

Oracle обещает много инвестировать в Java

Время на прочтение1 мин
Количество просмотров688
Директоры компаний Oracle и Sun — Ларри Эллисон и Скотт Макнили — совместно выступили на конференции JavaOne, где рассказали о будущем активов Sun, которые перешли к новому владельцу. Нужно заметить, что это первое публичное выступление Эллисона с момента покупки Sun, которое произошло 20 апреля.

Эллисон предпочёл умолчать об аппаратной части, ничего не сказали о серверах, процессорах, системах хранения данных, сетевом оборудовании и тонких клиентах. Зато подробно рассказал о будущем технологии Java. Оно обещает быть светлым.

Эллисон напомнил, что именно его компания и раньше была главным инвестором в Java-технологии, у них всё middleware на 100% работает на Java. В будущем Oracle обещает продолжить эти инвестиции в полном объёме. Следующее поколение бизнес-приложений Oracle (Fusion Suite) полностью будет построено на Java. И это будет первый в мире пакет ERP и CRM, построенный на стандартной платформе.

Более того, Эллисон сообщил, что Oracle займётся даже разработкой нетбуков и мобильных телефонов под Java! Хотя это звучит просто невероятно, но таким образом Oracle собирается вступить в конкуренцию с Hewlett-Packard, Acer, Lenovo, Dell и другими компаниями на рынке нетбуков.

via eWeek

Face Detection на джаве — это просто!

Время на прочтение1 мин
Количество просмотров28K
Спешу поделиться с вами своею радостью :) Столкнулся я тут недавно с задачкой — нужно было определить местонахождения лиц на картинке.

Зачем это нужно — другой вопрос: мне, лично, понадобилось для создания модели распределения внимания по картинке, а кому-то, может быть, нужно для того, чтобы людей как в фейсбуке автоматически на групповой фотографии выделять.

Алгоритмы, в принципе, неплохо известны. Одним из лучших является алгоритм Viola & Jones, но поиск готовых имплементаций результатов не принёс. Было расстроился, но обратил внимание на замечательную нативную библиотеку — OpenCV. Библиотека ценна не только реализацией основных алгоритмов компьютерного зрения, но тем, что встречается решительно на всех платформах.

И что же вы думаете? Одним из первых в гугле выпадает вот такой замечательный проект JNI интерфейса к OpenCV!

Несколько минут закачки, десяток минут чтения документации с установкою программы, и ещё десяток — написание теста. А потом, и вот этими четырьмя строчками, просто берём и распознаём на картинке лица!

OpenCV cv = new OpenCV();
cv.loadImage("test.jpg", 300, 400);
cv.cascade("haarcascade_frontalface_default.xml");
Rectangle bounds[] = cv.detect();

Читать дальше →

Сериализация в Java

Время на прочтение7 мин
Количество просмотров374K
Сериализация это процесс сохранения состояния объекта в последовательность байт; десериализация это процесс восстановления объекта, из этих байт. Java Serialization API предоставляет стандартный механизм для создания сериализуемых объектов. В этой статье вы увидите как сериализовать объект, и почему сериализация иногда необходима. Вы узнаете об алгоритме сериализации используемом в Java и увидите пример, который иллюстрирует сериализованый формат объекта. В конце у вас должно сложиться чёткое представление о том, как работает алгоритм сериализации, а так же каким образом представлены части объекта в сериализованном виде.
Читать дальше →

SpringSource Tool Suite бесплатно, ROO и спецификация DI совместно с Google

Время на прочтение1 мин
Количество просмотров2.6K
image

На прошедшей конференции SpringOne Europe компания SpringSource сделала несколько объявлений:
  • SpringSource Tool Suite, плагин для Eclipse, упрощающий разработку Spring-приложений становится бесплатным. В ближайшее время ожидается прогресс в поддержке других продуктов SpringSource: Groovy & Grails.
  • Spring ROO — фреймворк для увеличения производительности Java-разработчиков при написании Spring-приложений путём использования Code Generation и Aspect Oriented Programming.
  • Партнёрство с Google для создания единой спецификации по Dependency Injection.

Необычное поведение generics

Время на прочтение1 мин
Количество просмотров6K
Случайно обнаружил нетипичную проблему с параметризацией и наследованием в Java.
Сразу оговорюсь, что все это представляет только академический интерес. В реальной жизни так криво писать никто не будет. Но формально такого быть не должно:
Interface.java
public interface Interface {
    void test(Class<Object> clazz);
}

BaseClass.java
public abstract class BaseClass<T> implements Interface {
    abstract public void test(Class<Object> clazz);
}

MyClass.java
public class MyClass extends BaseClass {
    public void test(Class<Object> clazz) {
    }
}
Компилятор выдает ошибку:
MyClass is not abstract and does not override abstract method test(java.lang.Class)

Перевод манов с оффсайта Sun. Часть 1

Время на прочтение3 мин
Количество просмотров2.1K
Еще в сентябре прошлого года, начиная изучение Java я наткнулся на подкаст Голодного «The Art Of Programming». В одном из них он прославлял мануалы? расположенные на оффсайте Sun. Достаточно долгое время проведя со словарем и IDE, я добился некоторого результата.
Недавно пришла мысль, что люди, не сильно владеющие английским языком не могут использовать этот ресурс, каким бы хорошим он ни был.
Ниже последует перевод первой статьи (она небольшая), а к хабралюдям есть вопрос: как вы оцениваете качество/целесообразность подобного перевода?

P.S. Публикую в блоге JAVA, потому что никак не получается опубликовать в «Стартап Программист»
P.P.S. За дельный совет в переводе спасибо miravingin


Читать дальше →

Вклад авторов