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

Java *

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

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

Abstract и Final class одновременно в языке программирования Java?!

Время на прочтение1 мин
Количество просмотров23K
Статья представляет авторское понимание главы из книги Effective Java, Second Edition by Joshua Bloch

Простым языком определим понятие абстрактного и финального класса:
Абстрактный класс не может быть инстанциирован, но он может иметь подклассы.
Финальный класс это класс от которого запрещено наследоваться.

Для более точного определения обратитесь к официальному туториалу:

Комбинация abstract и final для класса означает, что у класса не может быть наследников и нельзя создать экземпляр для данного класса.

Сделать класс abstract и final одновременно нам, например, необходимо когда мы ходим создать класс утилит, состоящих из статических методов (например java.lang.Math или java.util.Arrays).

Решение

Использование паттерна Builder в случае, когда мы сталкиваемся с конструктором с многими параметрами

Время на прочтение7 мин
Количество просмотров39K
Статья представляет вольный перевод главы из книги Effective Java, Second Edition by Joshua Bloch

В статье рассматриваются 3 альтернативных подхода к упрощению использования класса, с конструктором с многими параметрами.

Читать далее

Sun Tech Days и Хабралюди

Время на прочтение2 мин
Количество просмотров783
Все уже наверняка видели баннеры и слышали про намечающееся событие.

Sun Tech Days
8 и 9 апреля 2010 года в Санкт-Петербурге.

Захотелось написать пару слов о том «что это и зачем» для тех, кто ни разу не был по каким-то причинам и узнать (welcome в комменты) кто собирается из уважаемого Хабрасообщества в этот раз.

Для начала стоит сказать, что конференция международная и Sun привозит людей самых разных. Много докладов на английском языке. В прошлом году бесплатно делали синхронный перевод для тех у кого с языками не все гладко. Я ради интереса взял один раз незамысловатую приблуду для прослушивания перевода и… выключил минут через пять. Слушать можно, но благо уровень английского позволяет понимать и вживую. На стендах можно задавать вопросы и общаться с разработчиками.
Читать дальше →

Вышла NetBeans 6.9 Milestone 1

Время на прочтение1 мин
Количество просмотров816
С сегодняшнего дня доступна для скачивания новая тестовая NetBeans 6.9.
Для себя как для PHP-программиста выделил:
— поддержка Zend Framework (напомню что уже есть выбор Symfony);
— улучшенный PHPDoc;
— добавлены новые настройки форматирования Вашего PHP-кода;
— поработали также над обработкой CSS

Также добавлены новые прелести для Java разработчиков и увеличена скорость работы IDE, что не может не радовать )

Подробности здесь на оф. сайте.

Java 1.6.0_18 Update доступен — что нового?

Время на прочтение1 мин
Количество просмотров1.5K
Прежде всего — java.sun.com/javase/6/webnotes/6u18.htm l.

Коротко:

Саппорт для нескольких новых конфигураций — Windows 7, Red Hat Enterprise Linux 5.3, Firefox 3.6.

VisualVM версии 1.2 с новыми фичами (мне, например, понравился семлинг-профайлинг).

Java DB — добавлена Java DB 10.5.3.0.

Улучшения производительности, в т.ч. на уровне JVM (новая версия JVM — Hotspot 16 включена в релиз).

Никаких security fixes — все последние уже есть в 17-ой версии.

Прошу прощения за короткий пост, но времени мало, и решил лучше запостить такой. Все равно те, кому по настоящему интересно, пойдут читать оригинал :))

Марк Райнхольд о JDK 7, замыканиях, JRockit и HotSpot

Время на прочтение3 мин
Количество просмотров1.8K
Oracle TechCasts возобновились. Сегодня [т.е. 16-го февраля] Марк Райнхольд рассказывал о JDK 7 и отвечал на вопросы зрителей. Райнхольд обсуждал самое существенное, над чем он работает в проекте OpenJDK, и раскрыл некоторые предварительные наметки, направленные на объединение кода JRockit и HotSpot. Project Lambda, о котором обычно говорят, как о «замыканиях для Java», также был темой обсуждения.
Читать дальше →

Weborama + Java

Время на прочтение3 мин
Количество просмотров1.9K
Веборама+Java
Я уверен, что большинство пользователей habrahabr.ru проводит не малую часть своего времени слушая музыку.
Когда все старые песни уже изрядно поднадоели и хочется послушать чего-то нового на выручку приходят полезные веб-сервисы.
Существует множество веб-сервисов позволяющих слушать популярные композиции прямо с сайта, из них можно выделить вебораму, сайт-плеер.

Однако, эта статья не о том, на сколько удобно слушать и музыку на вебораме, она скорее поможет организовать свою коллекцию популярной музыки, используя яву и вебораму.

А что дальше?

Java сертификация — прохождение SCJP и SCBCD

Время на прочтение8 мин
Количество просмотров84K
Не нашел на хабре статей, в которых бы авторы описывали сертификации по Java и делились своим опытом подготовки и ощущениями от сдачи.
В некоторой степени хотел бы заполнить пробел этой статьей. Под катом – мое мнение по вопросу – сдавать или не сдавать сертификации, краткий обзор сертификаций по Java, а так же собственный опыт и ощущения от регистрации, подготовки и сдачи Java сертификаций SCJP и SCBCD.
читать далее

JVM изнутри – организация памяти внутри процесса Java

Время на прочтение2 мин
Количество просмотров122K
Наверное, все, работающие с Java, знают об управлении памяти на уровне, что для ее распределения используется сборщик мусора. Не все, к сожалению, знают, как именно этот сборщик (-и) работает, и как именно организована память внутри процесса Java.
Читать дальше →

Делаем простое веб приложение на Spring Framework MVC

Время на прочтение13 мин
Количество просмотров253K
image
В данной статье я хочу рассказать начинающим Java разработчикам, как написать простое веб приложение, используя популярный фреймворк Spring Framework.

При разрабокте приложения мы будем использовать утилиту Ant для автоматизации действий и изучим, как писать простой тест с помощью библиотеки JUnit. Весь код будем писать в Eclipse IDE.

Статья написана на основе первой части руководства «Introduction to Spring MVC». Вам достаточно иметь лишь общее представление о Spring, чтобы прочитать статью с пользой.

Так что милости просим :)
Читать дальше →

Корпоративный портал Jahia – обзор архитектуры (часть 1)

Время на прочтение13 мин
Количество просмотров7.5K
В статье представлен высокоуровневый обзор архитектуры корпоративного портала Jahia.

Jahia – одна из немногих open source систем, которая объединяет Java EE портал и управление
контентом в один продукт. CMS является законченным решением, представляющим альтернативу порталам
от крупных компаний.

Обзор призван помочь читателю разобраться с различными компонентами системы и связями между ними.
Также данный обзор может послужить основой для понимания исходного кода системы, который является
свободно доступным.

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

Java и паттерн Public Morozov

Время на прочтение3 мин
Количество просмотров32K
Однажды понадобилось мне переопределить на работающей программе поле, помеченное как private final. Причем останавливать программу было нельзя, ибо сервер. Ну и как маленькое дополнение тип переменной был определен как inner класс. Разумеется тоже private.

К счастью, программа позволяет на ходу подключать модули, содержащие произвольный код. А значит — в нашем распоряжении вся мощь reflection!
Читать дальше →

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

Пишем парсер на Java + MySQL

Время на прочтение15 мин
Количество просмотров44K
Недавно пробегал на Хабре пост про базу доменных имен с электронной почтой. Решил написать парсер, чтоб благополучно слить всю эту базу. Но так как очень быстро сервис загнулся в силу хабраэффекта (а может админы пофиксили, черт его знает), я пошел дальше и нашел просто базу доменов в plaintext'е в зоне .RU. Решил ее пропарсить с помощью whois на nic.ru. Но на последнем действует скрипт, благополучно притормаживая слив базы с одного ip адреса. Выход — использование proxy листа. И, будучи благополучно задушенным жабой покупать прокси листы, я решил написать на Java два скрипта:
1. Парсит samair.ru/proxy и сливает в mysql прокси лист.
2. Проходит по базе и проверяет timeout полученных проксей.

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

Google Collections LIbrary 1.0 final

Время на прочтение1 мин
Количество просмотров2.7K
Наконец-то вышла финальная версия Google Collections Library.Это библиотека коллекций, по сути дополняющая стандартные коллекции.
Что есть в Google Collections?
  • Дополнительные типы коллекций Multimap, Multiset, BiMap
  • Также есть неизменяемые типы коллекций, которые удобны в многопоточных программах
  • Классы утилит для Списков, Множеств и Карт
  • И многое другое…

Советую использовать эту библиотеку, для того чтобы не создавать свои велосипеды.
Видеоуроки по использованию библиотеки
ссылка на проект

Все о String.intern()

Время на прочтение4 мин
Количество просмотров125K
Думаю, что многие Java-разработчики знают или хотя бы слышали о методе String.intern(). Но далеко не каждый использует его в своих приложениях или представляет в каких случаях он полезен и полезен ли вообще. Так было и со мной до тех пор пока я не столкнулся с этим методом в одном из проектов. В тот момент я захотел узнать смысл и особенности его использования и набрел на одну весьма интересную статью ведущего разработчика Yahoo! по имени Ethan Nicholas, переводом которой теперь хочу поделиться с той частью Хабра-сообщества, которая не безразлична к языку Java.

Тем, кто знает об этом методе лишь понаслышке, добро пожаловать под кат.
Читать дальше →

Работа с ICQ в Java

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

Предыстория


Как-то раз мы решили создать свой собственный микроблоггинг с блекджеком и шлюхами c шахматами и поэтессами. Сначала сделали сайт, но быстро стало понятно, что для реализации идеи его недостаточно. Необходимо было работать с сообщениями через Jabber и ICQ.
Начали с простого — с джаббера. Никаких проблем тут не возникло — мы писали на Java, поэтому прикрутили Smack API и все заработало. Но, как это не печально, но самым популярным IM протоколом все еще является ICQ…

Задача


Итак, задача: залогиниться в ICQ, принимать и отправлять сообщения, понимать X-статусы, работать с кириллицей.

Рассмотрим пути решения.
Читать дальше →

Maven — зачем?

Время на прочтение7 мин
Количество просмотров85K
На просторах сети вообще и хабра в частности мне доселось видеть не один топик посвящённый Maven. И везде, где было обсуждение, возникали вопросы вида:
  • Что даёт его использование в проекте типа X?
  • Чем он лучше Ant/Make/sh?
  • А что делать если я хочу использовать в проекте antlr/JAX-WS/XDoclet?

Я полагаю, что все эти вопросы происходят из незнания что на свете есть гугл недостаточного понимания что такое Maven и какой подход к решению задач build management он предлагает. Что в свою очередь растёт из недостаточного внимания, которое авторы статей уделяют идеям стоящим за xml-файлами и завораживающими консольными командами.
Под кактом нет xml, примеров команд и многих килобайт вывода...

Yandex Maps и подготовка тайлов

Время на прочтение1 мин
Количество просмотров8.7K
Ребята тут выложили программу подготовки слоя тайлов для API Яндекс.Карт

В связи с этим выложу ка я написанную этим летом свою утилитку для нарезки большой карты на кусочки.

Выкладываю вместе с исходниками, программка написана на Java с использованием JAI и ImageIO.

Утилитку писал специально для Йоты вот для этой карты.

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

Релиз открытого Java-фреймворка Spring 3.0

Время на прочтение1 мин
Количество просмотров3.5K
Коллектив SpringSource, недавно вошедший в состав компании VMWare, выпустил первый релиз новой ветки популярного Java-фреймворка Spring 3.0, выступающего в роли свободной альтернативы Enterprise JavaBeans. Исходные тексты Spring доступны в рамках лицензии Apache 2.0. Одновременно доступно обновление инструментария SpringSource Tool Suite, который теперь поддерживает всю новую функциональность Spring 3.0.

Основные новшества Spring 3.0:
  • Полная оптимизация под Java 5: первое поколение Spring, требующее Java 5 или выше, синтаксис Java 5 применяется везде в Spring API и во всём коде реализации;
  • Новый язык выражений SpEL (Spring expression language): парсер выражений ядра для использования в бин-определениях (bean definitions);
  • Расширенная поддержка компонентов на базе аннотаций: ключевые возможности проекта Spring JavaConfig теперь доступны и в самом Spring;
  • Мощная модель стереотипов: создание «коротких» аннотаций через использование мета-аннотаций;
  • Стандартизованные аннотации с внедрением зависимостей (dependency injection): присутствие начальной поддержки пока не полностью готового стандарта JSR-330 для внедрения зависимостей в Java;
  • Декларативная модель валидации на основе ограничивающих аннотаций;
  • Расширенная поддержка связующих средств и средств форматирования;
  • Глобальная поддержка архитектурного стиля REST;
  • Прямое отображение объект/XML (OXM);
  • Полная поддержка Portlet 2.0;
  • Абсолютно новые возможности планирования: новые механизмы триггеров и TaskScheduler с первоклассной поддержкой cron;
  • Поддержка Java EE 6.
Читать дальше →

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