Обновить
348.07

Java *

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

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

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

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

double brace


С большим отрывом лидирует «double brace», уже обсуждавшийся ранее в статье Эффект «double brace» by zeroed. Подробное описание метода — 
http://www.c2.com/cgi/wiki?DoubleBraceInitialization
несомненно это самое забавное и неочевидное из списка. Однако как уже отмечалось, метод имеет свои минусы в виде анонимного класса на каждое использование этого метода. А также невозможности использования метода equals () для подобных объектов.

далее еще 10 пунктов!

Sun Java Runtime Environment 6.0 Update 16

Время на прочтение1 мин
Охват и читатели979
Как быстро от 15 пришли к 16 =)

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

JDK 6 Update 16
This release is Windows 7 support-ready and includes support for Internet Explorer 8, Windows Server 2008 SP2, and Windows Vista SP2. New features include the G1 garbage collector, plus performance and security enhancements.

java.sun.com/javase/downloads/index.jsp

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

Время на прочтение9 мин
Охват и читатели117K
Если вы не очень часто программируете на 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 мин
Охват и читатели498K
Не так давно я проводил опрос «Какие материалы о 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.5K
Компания 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 мин
Охват и читатели804
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.3K
nb
NetBeans — очень удобная для разработчика среда, обычно отпугивающая своей тормознутостью, т.к. громоздка и написана на Яве. Что ж, будем надеятся, что однажды все наладится, а пока посмотрим, как эту ситуацию может исправить Real-Time Java.

Запуск NetBeans в JavaRTS

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

Время на прочтение8 мин
Охват и читатели226K

1. Введение



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


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

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

Время на прочтение1 мин
Охват и читатели715
Директоры компаний 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 мин
Охват и читатели29K
Спешу поделиться с вами своею радостью :) Столкнулся я тут недавно с задачкой — нужно было определить местонахождения лиц на картинке.

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

Алгоритмы, в принципе, неплохо известны. Одним из лучших является алгоритм 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 мин
Охват и читатели379K
Сериализация это процесс сохранения состояния объекта в последовательность байт; десериализация это процесс восстановления объекта, из этих байт. Java Serialization API предоставляет стандартный механизм для создания сериализуемых объектов. В этой статье вы увидите как сериализовать объект, и почему сериализация иногда необходима. Вы узнаете об алгоритме сериализации используемом в Java и увидите пример, который иллюстрирует сериализованый формат объекта. В конце у вас должно сложиться чёткое представление о том, как работает алгоритм сериализации, а так же каким образом представлены части объекта в сериализованном виде.
Читать дальше →

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

Время на прочтение1 мин
Охват и читатели2.9K
image

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