Java

Джеймс Гослинг (James Gosling; 19 мая 1955 года, Калгари, Канада) — автор языка программирования Java

Java Core
Java Date
Java IO
Java Regex
Java.net
Java Cache
Java EE
Java Concurrency
Лямбда выражения
Stream API
JMX
JSP

Jackson JSON Processor
JavaDoc
Spring Framework
Spring Boot
Servlet
Maven
Apache Tomcat
GlassFish
Apache CXF
Установка Java SDK на Linux
ExtGWT
Swing
Apache Velocity
Основные интсрументы разработчика Java
Логирование
Запуск внешних программ
Jetty
Database - SQL, JDBC and etc
WebSockets

Testing

JUnit
JUnitBenchmarks
Mockito
PowerMock
JavaHamcrest
Обеспечение качества
Нагрузочное тестирование
Jersy мокать http
wiremock** - позволяет мокать http сервисы. Поднимает свой http сервер возвращающий заданные ответы.

Генерировать pdf, excel, csv использовать jstl, freemarker, velocity и jasperReports
Парсеры html: jsoup, JTidy, HtmlUnit, HttpComponents
Работа с JSON: JSON.simple, GSON, Jackson, JSONP (Выбор библиотеки)
Работа с XML: XMLBeans, JAXB, JDOM
Cериализации и передачи данных: Google Protobuf
Контейнер сервлетов: Apache Tomcat, Jetty, Netty
Система версионного контроля: Subversion, Git, svn
ESB: WSO2, JBoss esb
Автоматизация сборки проектов: Maven (pom.xml), Ant (build.xml), Gradle (build.gradle), GAnt, Buildr, Ivy
Полнотекстовый поиск: Lucene, Sphinx, Xapian (1)
Тестирование: Mockito, JUnit, Selenium, JMetor, JMock, EasyMock, PowerMock
Репозиторий git: gitlab
Репозиторий mvn: Nexus, Artifactory, Archiva.
NoSQL: MongoDB, Cassandra, Redis
СУБД SQL: MySQL, PostgreSQL
Система управления конфигурациями: Puppet, Chef
Сканер проблемного кода: SonarQube, PMD
Покрытие тестами: Coverity
Система непрерывной интеграции: Jenkins
Кэширования данных: Memcached
ORM: Hibernate, MyBatis
Работа с консольными параметрами: JCommander
Очереди: ReabitMQ, Kafka
Нагрузка производительности: JMH
Профайлинг приложений:
Http client: unirest, OkHttp, retrofit

Maven – фреймворк для автоматизации сборки проектов;
JUnit – обеспечит эффективность автоматического тестирования приложений;
Apache Log4j – библиотека логирования;
Jenkins – система непрерывной интеграции;
Hibernate – ORM (настройки, конфигурация в properties, xml файлах и в аннотациях);
hibernate-generic-dao – реализация DAO от Google, реализует основные методы для работы с данными базы данных, упрощает реализацию фильтрации и сортировки в методах;
Spring – реализация аутентификации и авторизации (security), контейнер сервисов и бинов (конфигурация в xml файлах и в аннотациях), используем также при создании тестов.
• JRebel — инструмент для автоматизированного деплоймента изменённого кода (JRebel, JRebel Quickstart)
Apache MINA – framework для создания сетевых приложений,
Google protobuf – библиотека кодирования и декодирования структурированных данных. Структура данных определяется заголовочными файлами *.proto, компилятор генерирует из них Java классы (также есть возможность генерации для других языков программирования: C++, Objective-C и т. д., что обеспечивает свойство кроссплатформенности);
• java.util.concurrent – используем стандартный пакет.
• Netty - Высокопроизводительный NIO-сервер (1)
Metrics- мониторинг программы (презентация, графики)
Redis — сетевое журналируемое высокопроизводительное хранилище данных типа «ключ-значение». (wiki, habr)
Mockito - mock-тестирование. Mock-объект имитирует поведение реального объекта заданным образом. Во время unit-тестирования mock-объекты могут симулировать поведение бизнес-объектов и бизнес-логику, что иногда необходимо из-за сложности реального поведения.
Nginx - Отказоустойчивый сервер для ресурсов с высоким трафиком. Описание возможностей. Это HTTP-сервер и обратный прокси-сервер, а также почтовый прокси-сервер.
gitlab - open source проект аналог GitHub
Hazelcast - In-memory-data-grid
• Google Guice - это инфраструктура для внедрения или инъекции зависимостей
• Graphite - построение графиков

- Java Logging
• log4j — используют подсевшие на него изначально и не видящие необходимости перехода.
SLF4J — очень популярен в библиотеках. Многие переехали на него, не выдержав ужасов commons-logging
• Logback — обычно современные high-performance серверы, которых не устраивает log4j.
HtmlUnit - Инструмент для автоматизации тестирования веб-сайтов работающая на Java-платформе
• Graylog - посмотр логов красиво, надстройка над elastic

Commons IO
Spring. Dependency Injection Styles slides code

Виртуалка - cloudstack

Управления проектами и задачами:
Redmine
SourceForge
GitHub - (код ревью, вики)
YouTrack
Jira

Code review:(ревью)
jetbrains Upsource
atlassian clover
atlassian Crucible

ишью трекер

gwt super dev mode - супер дебагинг GWT

Данный вариант может масшабироваться, но на это требуется закладываться на этапе проектирования на уровне архитектуры, учитывая бизнес логику.
Разобрать: Morphia, Nginx, , RabbitMQ, Hadoop

Термины и понятия в Java:
Handler - обработчик событий, это реализация обработки данных переданными в него
Listener - слушатель событий, это интерфейс который нужно реализовать и делать какие то действия при наступлении события, и передается классу который при наступлении события вызывает определенный метод, в качестве параметров в функциях передается событие (Event)
Event - событие
Thred - поток

Последовательность обучения
Ресурсы
Правила написания кода на Java (Code Conventions for the Java)
Java Style Guidelines
Строковые классы Java. Сравнение производительности

Java update TimeZone

Java PaaS:
Jelastic
OpenShift
Cloud Bees
Heroku

Спецификации

Спецификация - текстовый документ, в котором предоставлен набор официальных правил, соглашений, вариантов использования для определенной технологии или систем.
JSR (Java Specification Request) Запрос на Спецификацию Java - документы (спецификации) с дополнениями к платформе Java, Каждая JSR имеет свой номер
JSR для JEE, Список всех JSR
JCP (Java Community Process) - организация или объединение группы людей по согласованию и утверждению всех JSR
Список всех JSR - jsr.org
W3C (Word Wide Web Consortium) - организация по разработке официальных спецификаций для всемирной сети интернет
HTTP, HTML, CSS, XML

Собеседование Java

Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License