Чашечка Java
Ir al canal en Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
Mostrar más8 439
Suscriptores
-724 horas
-227 días
-6430 días
Archivo de publicaciones
8 438
Концепция Абстрактного Типа Данных
Доброго времени суток, хабравчане!
Следующий пост является изложением моих размышлений на тему природы классов и АТД. Эти размышления дополнены интересными цитатами из книг гуру разработки программного обеспечения
Введение
Начнем с того, что плавно подойдем к определению АТД. АТД, в первую очередь, представляет собой тип данных, что означет следущее:
наличие определенных доступных операций над элементами этого типа;
а также данные, относительно которых эти операции выполняются (диапазон значений).
Читать: https://habr.com/ru/articles/216725/?utm_campaign=216725
@a_cup_of_java | Другие наши каналы
8 438
IntelliJ IDEA 13.1: Весеннее обновление
Привет, Хабр!
Вместе с хорошим известием для Северного полушария, что продолжительность светлого времени суток увеличилась, мы хотим рассказать о релизе IntelliJ IDEA 13.1, случившемся на этой неделе. Но перед рассказом о новинках хотелось бы отметить еще одно, весьма ожидаемое всем Java-cообществом, событие…
Читать дальше
Читать: https://habr.com/ru/companies/JetBrains/articles/216667/?utm_campaign=216667
@a_cup_of_java | Другие наши каналы
8 438
Java 8 в IaaS InfoboxCloud в одну команду. Используем Java 8 в тестах
Совсем недавно вышла Java 8. Это большое и долгожданное событие для всех разработчиков на платформе JVM и безусловно повлияет на код в enterprise проектах.
Мы в InfoboxCloud очень любим технологии Java и ценим Java разработчиков. К релизу Java 8 мы написали скрипты, которые позволят в одну команду установить JRE 8 или JDK 8 в Облачную инфраструктуру InfoboxCloud на любою из ОС Linux. Просто выберите скрипт, вставьте в консоль и нажмите Enter. Гораздо лучше тратить время на написание хорошего кода, чем на установку java.
На Облачной платформе InfoboxCloud Jelastic поддержка Java 8 появится в следующем обновлении программного стека довольно скоро.
В этой статье мы, установив Java 8, рассмотрим как тестировать ваше разрабатываемое ПО с Java 8, собирая его под Java 7.
Читать: https://habr.com/ru/companies/infobox/articles/216563/?utm_campaign=216563
@a_cup_of_java | Другие наши каналы
8 438
Новое в Java 8
Java еще не умерла — и люди начинают это понимать.
Добро пожаловать в ведение по Java 8. Этот материал шаг за шагом познакомит вас со всеми новыми фичами языка. Вы научитесь использовать методы интерфейсов по умолчанию (default interface methods), лямбда-выражения (lambda expressions), ссылки на методы (method references) и повторяемые аннотации (repeatable annotations). Все это будет сопровождаться короткими и простыми примерами кода. В конце статьи вы познакомитесь с наиболее свежими изменениями в API, касающихся потоков, функциональных интерфейсов, расширений для ассоциативных массивов, а также с изменениями в API работы с датами.
Читать: https://habr.com/ru/articles/216431/?utm_campaign=216431
@a_cup_of_java | Другие наши каналы
8 438
Сравниваем производительность reflection в JDK8 и JDK7
Привет, Хабр!
Недавно, путешествуя по коду своего рабочего проекта набрел на довольно высоконагруженный spring бин, который производил обращения к методам объектов (иногда и объектов сгенерированных на лету классов) вызывая геттеры и сеттеры объекта через reflection. В бине уже был реализован кэш геттеров, однако я задался вопросом — насколько быстр reflection и можно ли сделать быстрее.
Читать: https://habr.com/ru/articles/216435/?utm_campaign=216435
@a_cup_of_java | Другие наши каналы
8 438
Java 8 Released
Поздравляю всех с официальным выходом Java 8.
Основные ссылки по данному вопросу:
1. Ссылка на скачивание
2. Ссылка на перечень изменений
Читать: https://habr.com/ru/articles/216303/?utm_campaign=216303
@a_cup_of_java | Другие наши каналы
8 438
QuisyReader
Под влиянием "500 слов в минуту без подготовки" решил реализовать программу которая бы работала на большинстве платформ, так и появилось сиё чудо под названием «QuisyReader».
Читать дальше
Читать: https://habr.com/ru/articles/216099/?utm_campaign=216099
@a_cup_of_java | Другие наши каналы
8 438
Concurrency: 6 способов жить с shared state
В многопоточном программировании много сложностей, основными из которых являются работа c разделяемым состоянием и эффективное использование предоставляемых ядер. Об использовании ядер пойдет речь в следующей статье.
С разделяемым состоянием в многопоточной среде существуют два момента, из-за которых возникают все сложности: состояние гонки и видимость изменений. В состоянии гонки, потоки одновременно изменяют состояние, что ведет к недетерменированному поведению. А проблема с видимостью заключаются в том, что результат изменения данных в одном потоке, может быть невидим другому. В статье будут рассказаны шесть способов как бороться с данными проблемами.
Все примеры приведены на Java, но содержат комментарии и я надеюсь будут понятны программистам не знакомым c Java. Данная статья носит обзорный характер и не претендует на полноту. В то же время она наполнена ссылками, которые дают более подробное объяснение терминам и утверждениям.
Читать: https://habr.com/ru/articles/216049/?utm_campaign=216049
@a_cup_of_java | Другие наши каналы
8 438
Автоматический контроль качества Java-кода
Код, который пишет программист, должен быть рабочим – самое первое правило успешной работы, с которым согласится и сам программист, и все его начальники. Но, кроме того, что код должен просто работать, часто к нему предъявляются повышенные требования – наличие комментариев (внутренней документации), читаемость, быстроту внесения изменений, совместимость с явными и неявными стандартами. Всё то, что можно назвать качеством кода.
Однако, в отличие от работоспособности кода, которую можно оценить с помощью выполнения проверочных тестов, качество кода не является простой оценкой TRUE или FALSE. Более того, под качеством кода понимается набор субъективных оценок восприятия кода другим человеком. Однако давайте всё-таки попробуем как-то формализовать задачу оценки качества, и, при возможности, дать способ автоматического выполнения этой задачи.
Читать: https://habr.com/ru/articles/63212/?utm_campaign=63212
@a_cup_of_java | Другие наши каналы
8 438
Абсолютная загадка наследования в Java
Почему эта загадка абсолютная? По двум причинам:
• Она касается основ языка Java, а не какого-то малоизвестного нюанса API.
• Она расплавила мой мозг, когда я на нее наткнулся.
Если вы хотите проверить себя перед дальнейшим чтением, пройдите этот тест.
Читать: https://habr.com/ru/articles/62602/?utm_campaign=62602
@a_cup_of_java | Другие наши каналы
8 438
Транзакции в Spring
Статья описывает пример по работе с транзакциями в популярном framework Spring. Статья предполагает, что вы знакомы с java и spring. Рабочий пример кода можно скачать с sf
Читать: https://habr.com/ru/articles/62484/?utm_campaign=62484
@a_cup_of_java | Другие наши каналы
8 438
NetBeans в Java Real-Time
NetBeans — очень удобная для разработчика среда, обычно отпугивающая своей тормознутостью, т.к. громоздка и написана на Яве. Что ж, будем надеятся, что однажды все наладится, а пока посмотрим, как эту ситуацию может исправить Real-Time Java.
Запуск NetBeans в JavaRTS
Читать: https://habr.com/ru/articles/61658/?utm_campaign=61658
@a_cup_of_java | Другие наши каналы
8 438
Учимся проектировать на основе предметной области (DDD: Domain Driven Design)
1. Введение
В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design).
Читать: https://habr.com/ru/articles/61524/?utm_campaign=61524
@a_cup_of_java | Другие наши каналы
8 438
Сериализация в Java
Сериализация это процесс сохранения состояния объекта в последовательность байт; десериализация это процесс восстановления объекта, из этих байт. Java Serialization API предоставляет стандартный механизм для создания сериализуемых объектов. В этой статье вы увидите как сериализовать объект, и почему сериализация иногда необходима. Вы узнаете об алгоритме сериализации используемом в Java и увидите пример, который иллюстрирует сериализованый формат объекта. В конце у вас должно сложиться чёткое представление о том, как работает алгоритм сериализации, а так же каким образом представлены части объекта в сериализованном виде.
Читать: https://habr.com/ru/articles/60317/?utm_campaign=60317
@a_cup_of_java | Другие наши каналы
8 438
SpringSource Tool Suite бесплатно, ROO и спецификация DI совместно с Google
На прошедшей конференции SpringOne Europe компания SpringSource сделала несколько объявлений:
* SpringSource Tool Suite, плагин для Eclipse, упрощающий разработку Spring-приложений становится бесплатным. В ближайшее время ожидается прогресс в поддержке других продуктов SpringSource: Groovy & Grails.
* Spring ROO — фреймворк для увеличения производительности Java-разработчиков при написании Spring-приложений путём использования Code Generation и Aspect Oriented Programming.
* Партнёрство с Google для создания единой спецификации по Dependency Injection.
Читать: https://habr.com/ru/articles/59329/?utm_campaign=59329
@a_cup_of_java | Другие наши каналы
8 438
Java web-разработчик, используешь ли ты wicket?
Читать: https://habr.com/ru/articles/59287/?utm_campaign=59287
@a_cup_of_java | Другие наши каналы
8 438
Необычное поведение generics
Случайно обнаружил нетипичную проблему с параметризацией и наследованием в Java.
Сразу оговорюсь, что все это представляет только академический интерес. В реальной жизни так криво писать никто не будет. Но формально такого быть не должно:
Interface.java
public interface Interface {
void test(Class clazz);
}
BaseClass.java
public abstract class BaseClass<t implements Interface {
abstract public void test(Class clazz);
}
MyClass.java
public class MyClass extends BaseClass {
public void test(Class clazz) {
}
}
Компилятор выдает ошибку:
MyClass is not abstract and does not override abstract method test(java.lang.Class)
Читать: https://habr.com/ru/articles/59135/?utm_campaign=59135
@a_cup_of_java | Другие наши каналы
8 438
Перевод манов с оффсайта Sun. Часть 1
Еще в сентябре прошлого года, начиная изучение Java я наткнулся на подкаст Голодного «The Art Of Programming». В одном из них он прославлял мануалы? расположенные на оффсайте Sun. Достаточно долгое время проведя со словарем и IDE, я добился некоторого результата.
Недавно пришла мысль, что люди, не сильно владеющие английским языком не могут использовать этот ресурс, каким бы хорошим он ни был.
Ниже последует перевод первой статьи (она небольшая), а к хабралюдям есть вопрос: как вы оцениваете качество/целесообразность подобного перевода?
P.S. Публикую в блоге JAVA, потому что никак не получается опубликовать в «Стартап Программист»
P.P.S. За дельный совет в переводе спасибо miravingin
Читать: https://habr.com/ru/articles/59120/?utm_campaign=59120
@a_cup_of_java | Другие наши каналы
8 438
Parse it!
Какое-то время назад мне по работе пришлось провести небольшое исследование. Суть его состояла в поиске наилучшего pdf-парсера реализованного на java.
Немного о проекте. В нем реализована система пересылки внутренних сообщений, к которым могут быть прикреплены файлы. Также есть поиск, который должен осуществляться по содержимому аттачментов. Большую часть подобных аттачментов составляют pdf-ки.
Собственно работа механизма довольно проста: при отсылке сообщения данные аттачмента парсятся и по ним стороится индекс.
Долгое время документы парсились при помощи библиотеки PDFBOX, работа которой не вызвала ни у кого радости: долго и со сбоями.
В итоге были выбраны 4 библиотеки, сравнением которых я занялся: PDFBOX, JPod, iText и Acrobat.
Читать: https://habr.com/ru/articles/57076/?utm_campaign=57076
@a_cup_of_java | Другие наши каналы
8 438
Анонсирован план развития Grails
Пока что разработчики сообщили о двух версиях:
Grails 1.2 «Bedivere» обещает быть релизом направленным на стабильность: обновление основных компонент(в том числе Spring до версии 3.0), переход с Jetty на Tomcat, выделение WebFlow в отдельный плагин, а так же GSP в самостоятельное решение. Релиз ожидается в июне 2009 года.
Grails 2.0 «Galahad» ставит свой целью упор на модульность плагинов с помощью технологии OSGi.
Параллельно с этими релизами будет вестись активная работа над плагинами для работы с JPA, JCR, Portlet & Flex.
P.S. Будущие релизы получили свои имена в честь рыцарей круглого стола короля Артура, в частности именно Галахад по легенде нашёл священный Грааль.
Читать: https://habr.com/ru/articles/56672/?utm_campaign=56672
@a_cup_of_java | Другие наши каналы
