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

Java *

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

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

Марк Райнхольд о 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 – обзор архитектуры (часть 2)

Время на прочтение12 мин
Количество просмотров4.5K
Вы читаете вторую часть обзора архитектуры корпоративного портала Jahia.

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

Корпоративный портал 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.
Читать дальше →

Обработка сигналов в Java

Время на прочтение3 мин
Количество просмотров15K
Передо мной частенько вставала задача написать какой-нибудь Java-сервис. В качестве ОС мы используем по большей части линукс, так что удобнее всего управляться с такими сервисами — работать с ними как с демонами. То есть, запускаем:
start-stop-daemon --start --make-pidfile --pidfile /var/run/myservice.pid --exec /usr/bin/java — -jar myservice.jar

, и останавливаем:
start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/myservice.pid

Команда --stop посылает JVM сигнал SIGTERM и сервис останавливается. Все как бы неплохо, JVM завершается в штатном порядке, если только вам не нужно выполнить по завершении работы сервиса какое-либо действие. Например явно освободить ресурс, или написать что-нибудь приятное в stdout.

Но все не так страшно, благо JVM начиная с 1.3.1 позволяет обрабатывать сигналы. За ответом как — под хабракат.
Читать дальше →

Вышел GlassFish v3

Время на прочтение1 мин
Количество просмотров2.9K
Одновременно с выходом NetBeans 6.8 состоялся выпуск финальной версии свободного (GPLv2 + CDDLv1.0) сервера приложений GlassFish v3. Позади остались более чем полтора года разработки и несколько «prelude»- и «preview»-релизов.

GlassFish v3 — первый сертифицированный сервер приложений, поддерживающий стандарт Java EE 6. Напомним, что недавно утвержденный стандарт Java EE 6 включает в себя:
  • enterprise-технологии: EJB 3.1, JPA 2.0, JDBC 4.0, CORBA 3.0;
  • Web-технологии: Servlet 3.0, JSP 2.2, JSTL 1.2, EL 2.2, JSF 2.0 (Facelets), RESTful web services;
  • вспомогательные технологии: Java Contexts and Dependency Injection (JCDI; ex-WebBeans), Bean Validation

Отличительными чертами собственно GlassFish v3 можно назвать:
  • микроядро на основе стандарта OSGi — обеспечивает старт сервера за считаные секунды;
  • Grizzly/Comet — поддержка неблокирующих обработчиков web-запросов и ответов на основе Java NIO и NIO.2
  • веб- и CLI-интерфейсы для управления и мониторинга;
  • веб-интерфейс Центра Обновлений, при помощи которого можно установить дополнительные, не входящие в основную поставку компоненты, такие как JRuby/Rails, Groovy/Grails, jMaki AJAX Framework, серверный JavaScript

Отныне именно GlassFish является официальной reference implementation (RI) для новых веб-технологий от Sun, переняв палочку эстафеты у Apache Tomcat. Также доступен корпоративный вариант Sun GlassFish Enterprise Server v3, отличающийся в первую очередь наличием Enterprise Manager — системы мониторинга и управления набором GlassFish-серверов. Заявлена поддержка средами разработки NetBeans 6.8, Eclipse 3.5.1 и IDEA 9.
Читать дальше →

Вышла NetBeans IDE 6.8

Время на прочтение1 мин
Количество просмотров950
С небольшим опозданием вышла новая версия популярной среды разработки с открытым исходным кодом NetBeans.

Некоторые из нововведений:
  • Поддержка Java EE 6;
  • Поддержка JavaFX 1.2.1, улучшены возможности редактирования .fx-файлов;
  • Новые возможности интеграции с kenai.com;
  • Полностью поддерживается PHP 5.3;
  • Поддержка Rails 2.3.4, усовершенствованный рефакторинг Ruby;
  • Улучшен профайлинг C/C++: определение утечек памяти, «узких мест»;


И многое другое…
качаем тут

Apache Maven — основы

Время на прочтение6 мин
Количество просмотров557K
После публикации топика о Maven в комментариях возникли вопросы о том, как начать с ним работать, с чего начать, как составлять файлы pom.xml, откуда брать плагины и т.п. Данный топик будет своего рода getting started или f.a.q.
Поехали!

boolean — боремся за Java память…

Время на прочтение2 мин
Количество просмотров36K
У Вас когда-либо случались такие ситуации, когда Ваше Java приложение трещит по швам? В моём случае это случилось из-за нехватки доступной оперативной памяти. И, естественно, обнаружилась нехватка в самый неподходящий момент: на носу очередной долгожданный релиз, один из серверов остановлен для обновления кода и данных и реинкарнация старого кода уже невозможна, в ближайшие дни запланировано несколько совещаний и собеседований, что сильно отвлекает от процесса оптимизации — в общем, ЧП не прошло незамеченным.

К слову сказать, сделай я правильный backup и экстренные работы по восстановлению жизнеспособности прошли бы гораздо более спокойно, но это была бы уже совсем другая история. Итак в моём распоряжении есть код, которому не хватает 15Gb оперативной памяти для нормального функционирования и очень длительный и дорогостоящий процесс запуска (около 5 часов), в ходе работы которого можно только сидеть со скрещенными пальцами и надеятся, что в этот раз заветные слова OutOfMemoryException не появятся в консоли удалённого сервера.
Не буду описывать всех ухищрений, которые пришлось проделать, чтобы восстановить остановленный сервер в течении трёх дней, но одним своим мини открытием поделюсь — boolean — это не тот тип данных, который Вы хотите использовать в высоконагруженных системах. Внимание вопрос:
Как Вы думаете, сколько памяти занимает boolean например на Ubuntu server x64?

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