TechCave

Описание сайта

Основная информация

Java — строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре, с помощью виртуальной Java-машины. Дата официального выпуска — 23 мая 1995 года.

Рейтинг: 1
Создана 4 года назад
Владелец root

Стена группы

Загрузка...
1 год назад
#

Вложенные классы в Java



image

Добрый день Хабровчане!

На собеседованиях мне довольно часто попадались вопросы про вложенные классы. Поэтому я решил разобраться в них, систематизировать свои знания, а заодно и поделиться этими знаниями с вами.

Вложенный класс (InnerClass)

public class OuterClass {
    public class InnerClass{
    }
}


Из него видны:

— все (даже private) свойства и методы OuterClassа обычные и статические.

— public и protected свойства и методы родителя OuterClassа обычные и статические. То есть те, которые видны в OuterClassе.

Его видно:

— согласно модификатору доступа.

Может наследовать:

— обычные классы.

— такие же внутренние классы в OuterClassе и его предках.

Может быть наследован:

— таким же внутренним классом в OuterClassе и его наследниках.

Может имплементировать интерфейс

Может содержать:

— только обычные свойства и методы (не статические).

Создаётся из другого класса так:

OuterClass outerClass = new OuterClass();
OuterClass.InnerClass innerClass = outerClass.new InnerClass();


Источник
1 год назад
#

Каков должен быть размер у Thread Pool?



В нашей
статье Stream API & ForkJoinPool мы уже рассказывали про возможности изменять размер пула потоков, который мы можем использовать в параллельных обработчиках, использующих Stream API или Fork Join. Надеюсь эта информация вам пригодилась, когда находясь на должности Senior Java Developer, вы смогли увеличить производительность разработанной вами системы, изменив размер пула по умолчанию. Так как наши
курсы, в целом, заточены на переход ступеньку выше от джуниора и миддла выше, то часть программы строится исходя из основных вопросов задаваемых на собеседованиях. Один из из которых звучит так: «У вас есть приложение. И есть задача использующая Stream API или Fork Join, которая поддается распараллеливанию. При каких условиях вы можете счесть разумным изменить размер пула потоков заданный по умолчанию? Какой размер вы предложите в этом случае?»

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

Чтобы теоретические рассуждения подкрепить настоящими цифрами предлагаем погонять небольшой бенчмарк для стандартного метода Arrays.parallelSort(), реализующего разновидность алгоритма merge sort, и исполняемого на ForkJoinPool.commonPool(). Запустим этот алгоритм на одном и том же большом массиве с различными размерами commonPool и проанализируем результаты.



Источник
1 год назад
#

Generic исключения в лямбда-функциях



Как известно из функциональных интерфейсов в Stream API нельзя выбрасывать контролируемые исключения. Если по каким-то причинам это необходимо (например, работа с файлами, базами данных или по сети), приходится оборачивать их в RuntimeException. Это неплохо работает если ошибки игнорируются, но если их необходимо обрабатывать, то код получается громоздкий и трудночитаемый. Я заинтересовался можно ли объявлять интерфейсы и методы с generic исключениями и неожиданно для себя узнал, что можно.

Зададим такой функциональный интерфейс, от стандартного интерфейса Function<A, B> он отличается только наличием третьего generic-типа для бросаемого исключения.

public interface FunctionWithExceptions<A, B, T extends Throwable>{
	B apply(A a) throws T;
}


И объявим простенький метод, который преобразует коллекцию используя этот интерфейс, у этого метода также объявлен generic-тип для бросаемого исключения (совпадающий с типом исключения которое может выбросить функциональный интерфейс).

public static <A, B, T extends Throwable> Collection<B> map(Collection<A> source, FunctionWithExceptions<A, B, T> function) throws T {
	Collection<B> result = new ArrayList<>();
	for (A a : source) {
		result.add(function.apply(a));
	}
	return result;
}


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

Источник
1 год назад
#

Пошаговое руководство работы с Antlr4 с Maven проектом для Java через Intellij Idea



ANTLR — это генератор парсеров, который позволяет создавать парсер по описанию грамматики на одном из основных языков программирования. Он сам написан на java и прекрасно работает с Java.



Пошаговое руководство:



1) Поставить Oracle Java JDK и Intellij Idea, (можно пропустить этот шаг, если они уже поставлены), и запустить Intellij Idea



2) File-Setting-Plugins





Источник
1 год назад
#

Моделирование планеты маргариток



Моделирование планеты маргариток

  1. Лирика

  2. Описание интерфейса

  3. Декомпозиция

  4. Модель

  5. Логика



1. Лирика

Давным-давно, не помню где, я узнал об одном удивительном эксперименте, начало описания было такое: Представьте себе планету, примерно такую, как Земля, которая вращается вокруг звезды примерно такой, как Солнце. На планете есть жизнь, но не очень разнообразная — всего два вида маргариток — черные и белые. Представили? Какой заход! Автор красавчик, почти Экзюпери.

Источник
1 год назад
#

Стриминг и анализ логов Java приложений в MS Azure с использованием Log4j и Stream Analytics



В этой статье я покажу несколько работающих решений задачи передачи и анализа логов из Java приложений в MS Azure. Мы рассмотрим решения как для windows, так и для linux виртуальных машин, находящихся как в облаке, так и on-premise. В качестве подсистемы логирования для Java будем использовать log4j2.



Для анализа логов будем использовать Azure Stream Analytics.





Источник
1 год назад
#

Joker 2017


Расписание конференции: https://jokerconf.com/#schedule

Трансляция из второго зала. День 1.



Трансляция из второго зала. День 2.

1 год назад
#

Документируем и тестируем REST API с помощью SpringRestDocs



Добрый день, хочу затронуть тему документирования REST API. Сразу же оговорюсь, этот материал будет ориентирован на инженеров работающих в Spring экосистеме.

На нескольких последних проектах я использовал фреймворк SpringRestDocs, он успешно закрепился в портфолио, был показан знакомым, которые также начали успешно его применять и теперь я хочу поделиться с Вами в статье о его возможностях и преимуществах. Статья позволит разобраться с применением SpringRestDocs и начать его использовать.

Источник
Den
1 год назад
#

«В ЕЕ всегда есть альтернатива» — Дмитрий Александров (T-Systems) о Java EE / EE4J





В последнее время вокруг
Java EE много шумихи: сначала выход восьмой версии, затем новость о переходе в Eclipse Foundation и о переименовании. Но многие обсуждения новостей сводятся к тому, что люди думают о новом названии EE4J. Мы решили этим не ограничиваться и расспросить
Дмитрия Александрова (ведущего эксперта-программиста в T-Systems): он и имеет дело с Java EE в своей работе, и активен в EE-сообществе, и выступает с EE-докладами на конференциях. Так что вопросы мы ему задали и с точки зрения «применимость в вашей работе», и с точки зрения «что думает сообщество в целом», и заодно про доклады: он как раз уже завтра выступит у нас на
Joker.

Источник
1 год назад
#

Бесплатная YouTube-трансляция Joker 2017: Java 9, Concurrency, GC, Spring и, конечно, паззлеры





Круг замкнулся. Ровно год назад мы провели открытую трансляцию Joker 2016 для всех тех, у кого не было возможности зарегистрироваться. С тех пор мы провели более десятка трансляций с конференций по .NET, JavaScript, DevOps, мобильным технологиям, тестированию и Java, само собой.

Что стало лучше за год? Мы отработали технологию, пофиксили пару уязвимостей, начали транслировать через YouTube (а не через кастомный интерфейс), научились задавать вопросы от участников трансляции, забанили добрую сотню троллей, научились проводить интервью в перерывах без задержек и проволочек, начали делать трансляцию в 1440р… наверное, есть что-то еще.

Собственно, уже совсем скоро вы сможете увидеть, что у нас получилось —
3 ноября в 9:30 утра мы начнем двухдневную бесплатную трансляцию главного трека Joker 2017. Трансляция будет идти с одним перерывом «на сон». А еще она будет в разрешении 1440р, так что в кои-то веки вам понадобятся ваши крутые мониторы.

В программу вошли доклады Cay Horstmann, Алексея Шипилёва, Баруха
jbaruch Садогурского, Тагира
lany Валеева, Николая
xpinjection Алименкова, Евгения
EvgenyBorisov Борисова, Сергея
Milfgard Абдульманова и еще кое-кого.

Интересно? Давайте под кат.

Источник
1 год назад
#

«Иногда приходится заглядывать в код Spark»: Александр Морозов (SEMrush) об использовании Scala, Spark и ClickHouse





В случае с SEMrush бессмысленно спрашивать «какие языки и технологии использует компания»: здесь каждой команде предоставляют максимальную степень автономности, сводя «общее для всех» к минимуму. А вот конкретную команду вполне есть о чём расспросить.

Мы узнали, что в одном из проектов используют Scala, C++, Spark и ClickHouse. Выбор Scala сам по себе нестандартный, сочетание с C++ можно встретить ещё реже, СУБД ClickHouse от Яндекса тоже не самый распространённый выбор — поэтому мы решили задать несколько вопросов о том, как со всем этим живётся. На них нам ответил
Александр Морозов.

Источник
1 год назад
#

Joker


Евгений Борисов — Мифы о Spark, или Может ли пользоваться Spark обычный Java-разработчик

Евгений Борисов — Мифы о Spark, или Может ли пользоваться Spark обычный Java-разработчик
Java-конференция Joker 2016, Санкт-Петербург, 14-15.10.2016

Тот, у кого в руке молоток, во всём видит гвоздь — глупо? А что если это не молоток, а универсальный инструмент, который может быть и бензопилой, и пылесосом и зубной щёткой? В мире Big Data есть Hadoop и целый зоопарк инструментов, которые на него пашут, и каждый заточен под что-то своё. А ещё недавно там появился Spark, который можно применять для любых целей.

Если вы хотите писать в Hadoop с различных БД, стримить всякие источники в реальном времени, параллельно делать с данными какую-нибудь сложную обработку и не при помощи каких-то батчей, скриптов и SQL-запросов, а при помощи мощного функционального языка — добро пожаловать в Spark!

Данный доклад познакомит вас со Spark-ом: как он работает, какие задачи он способен выполнять, как им правильно пользоваться. Евгений и слушатели доклада обсудят проблемы и решения, с которыми поначалу сталкиваются неопытные Spark разработчики, разберутся с его синтаксисом и всякими хитростями.

Будет много live coding-а, и в конечном итоге слушатели выйдут с этого доклада с достаточными знаниями, чтобы начать самостоятельно работать на Spark-e.



Sander Mak — Java 9 Modularity in Action



Андрусь Адамчик — Apache Cayenne: альтернатива в мире Java ORM

Андрусь Адамчик — Apache Cayenne: альтернатива в мире Java ORM
Java-конференция Joker 2016, Санкт-Петербург, 14-15.10.2016



Алексей Кудрявцев — Computer Science еще жива

Алексей Кудрявцев — Computer Science еще жива
Java-конференция Joker 2016, Санкт-Петербург, 14-15.10.2016

1 год назад
#

Как писать на Spring в 2017



В одной из классических статей для новичков, мелькавших недавно на Хабре, рассказывалось про создание базового Web приложения на Java. Все начиналось с сервлета, потом создания JSP страницы и, наконец, деплоймента в контейнер. Посмотрев на это свежим взглядом я понял, что для как раз для новичков это, наверняка, выглядит совершенно жутко — на фоне простых и понятных PHP или Node.js, где все просто — написал контроллер, вернул объект, он стал JSON или HTML. Чтобы немного развеять это ощущение, я решил написать «Гайд для новичков в Spring». Цель это статьи — показать, что создание Web приложений на Java, более того — на Spring Framework это не боль и мучительное продирание через web.xml, persistence.xml, beans.xml, и собирание приложения как карточного домика по кусочкам, а вполне себе быстрый и комфортный процесс. Аудитория — начинающие разработчики, разработчики на других языках, ну и те, кто видел Спринг в его не самые лучше времена.



Источник
Den
1 год назад
#

Создание сервлетов для чайников. Пошаговое руководство



image

Когда начинающий разработчик сталкивается с сервлетами, ему бывает очень сложно понять, как он работает и от чего зависит эта работа. Всё потому, что все примеры и видеоуроки рассчитаны на людей, понимающих природу сервлетов и что за чем следует. Поэтому я решил написать руководство по созданию самых простых сервлетов. Возможно, эта статья кому-нибудь поможет.

Итак.

Предположим, что Вы уже где-то скачали пример с применением maven и Вам удалось задеплоить Ваш код на Tomcat (с этого обычно начинается познание сервлетов) любым способом (WAR-архивом или прямо из среды разработки). Вы имеете структуру приложения, в которой присутствует файл web.xml. C него и надо начинать создание страниц.

Источник
1 год назад
#

Что нового в IntelliJ IDEA 2017.2



Привет, Хабр!

Мы рады сообщить о выходе крупного обновления IDE –
IntelliJ IDEA 2017.2. Поскольку далеко не все следят за новостями в нашем официальном блоге (а также потому, что многим удобнее будет прочитать об этом на русском), в этом посте я расскажу что ждать от новой версии IDE. Кто спешит попробовать обновление самостоятельно, качайте с
сайта JetBrains, либо из
Toolbox App. Все остальные, добро пожаловать под кат.



Источник
13 14 16 17

Авторизация

Войти с помощью

Пользователи

GeekBrains

КАРКАМ

Нетология