Топ-100Уроки Java | CodOrbits
LogoCodOrbits

Уроки Java

Rocket

Раздел 1: Азы Java

Small Image 1Small Image 2Small Image 3

<Introduction/>

О языке Java

В данном вводном уроке кратко рассмотрим, что такое Java, где она используется и почему её стоит изучать. Java — это строго типизированный язык програ...

Small Image 1Small Image 2Small Image 3

<Java Features/>

Чем Java так особенна? Java машина.

Основной слоган Java таков: «Write once, run anywhere» — «Написано однажды, работает везде». Чтобы понять, откуда это взялось, начнём с краткого экску...

Small Image 1Small Image 2Small Image 3

<Installation/>

Установка Java

Прежде чем приступить к установке, давайте разберёмся, какие бывают Java-пакеты. Их два: JRE – для запуска java программ. Состоит из Java м...

Small Image 1Small Image 2Small Image 3

<First Program/>

Первая Java программа

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

Small Image 1Small Image 2Small Image 3

<Variables/>

Переменные в Java

Переменная — это как коробка с этикеткой. Этикетка — это имя переменной, а внутри коробки — то, что ты положил: число, текст, любой другой тип данных....

Small Image 1Small Image 2Small Image 3

<Scanner/>

Консольный ввод в Java

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

Small Image 1Small Image 2Small Image 3

<Comments/>

Комментарии в Java

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

Small Image 1Small Image 2Small Image 3

<Operators in Java/>

Арифметические операторы и операторы присвоения в Java

Есть пять типов операторов: операторы присвоения, арифметические операторы, операторы сравнения, логические операторы и условные операторы. С одним оп...

Small Image 1Small Image 2Small Image 3

<Comparison Operators/>

Операторы сравнения в Java

Операторы сравнения нужны, как можно догадаться, чтобы сравнивать. Сравнивать одно значение с другим. Например: 6 < 3. Знак > — это оператор “...

Small Image 1Small Image 2Small Image 3

<Logical Operators/>

Логические операторы в Java

Логических операторов всего три – “И”, “ИЛИ” и “НЕ”. В Java воспользоваться оператором “И” можно...

Small Image 1Small Image 2Small Image 3

<Conditional operators/>

Условные операторы в Java

В прошлых уроках мы изучили операторы сравнения и логические операторы. В этом уроке рассмотрим как выражения с операторами можно использовать. Чаще в...

Small Image 1Small Image 2Small Image 3

<Java Loops/>

Циклы в Java

Цикл может пригодиться в программе если нужно повторять какое-о действие или набор действий определенное количество раз. Есть три вида циклов: for, wh...

Small Image 1Small Image 2Small Image 3

<Break, Continue/>

Ключевые слова break, continue

В данном уроке рассмотрим ключевые слова break и continue. Если нужно раньше времени остановить цикл по какому-то условию, то используется ключевое сл...

Small Image 1Small Image 2Small Image 3

<Java Arrays/>

Массивы в Java

В этом уроке мы познакомимся с массивами в Java: разберём их концепцию, научимся с ними взаимодействовать и узнаем, какие типы массивов бывают. В прош...

Small Image 1Small Image 2Small Image 3

<Java Strings/>

Строки в Java

В прошлых уроках мы уже сталкивались со строками, когда передавали текст в кавычках “” в функцию вывода на консоль — например: System.out....

Small Image 1Small Image 2Small Image 3

<Java Functions/>

Функции в Java

В этом уроке мы познакомимся с понятием функций, которые в Java все же корректнее называть методами. Несмотря на это, термин “функция” шир...

Small Image 1Small Image 2Small Image 3

<Java Scopes/>

Область видимости в Java

После изучения функций, условий и циклов стоит поговорить об области видимости переменных — то есть, где переменные “видны” и доступны для...

Раздел 2: ООП

Small Image 1Small Image 2Small Image 3

<OOP in Java/>

Что такое ООП? Класс, объект

ООП (Объектно-ориентированное программирование) – это способ построения программных продуктов. Такие программные продукты состоят из объектов и ...

Small Image 1Small Image 2Small Image 3

<Constructor/>

Конструктор класса в Java

У класса может быть специальный метод, который не имеет возвращаемого значения и который имеет то же самое имя, что и класс. Этот метод называется кон...

Small Image 1Small Image 2Small Image 3

<Encapsulation in OOP/>

Инкапсуляция в Java

ООП основывается на трёх ключевых принципах: – Инкапсуляция, Полиморфизм, Наследование. Начнем с инкапсуляции. Инкапсуляция означает сокрытие де...

Small Image 1Small Image 2Small Image 3

<Access Modifiers/>

Модификаторы доступа в Java

В прошлом уроке мы рассмотрели базовые принципы инкапсуляции. Теперь, продолжая эту тему, пора познакомиться с модификаторами доступа public и private...

Small Image 1Small Image 2Small Image 3

<Getters, Setters/>

Свойства в ООП (getters, setters)

В Java поля класса никогда не следует определять как public, то есть они не должны быть доступны напрямую. Вместо этого поля должны быть private, а до...

Small Image 1Small Image 2Small Image 3

<Inheritance/>

Наследование в Java

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

Small Image 1Small Image 2Small Image 3

<Polymor phism/>

Полиморфизм в Java

Полиморфизм — возможность использовать одно и то же имя для разных реализаций методов или конструкторов. В Java полиморфизм реализуется с помощью пере...

Small Image 1Small Image 2Small Image 3

<Abstract Class/>

Абстрактный класс в Java

Абстрактный класс – общий концепт чего-либо. Это класс, который содержит в себе нереализованные методы (называются абстрактными методами), котор...

Small Image 1Small Image 2Small Image 3

<Interfaces/>

Интерфейсы в Java

Интерфейс – определяет поведение классов. В нем могут быть только поля и абстрактные методы (методы без реализаций, как мы помним). Интерфейс со...

Small Image 1Small Image 2Small Image 3

<Static Fields/>

Статические поля в Java

Допустим у нас есть класс и мы хотим чтобы какие-то поля или методы этого класса принадлежали одновременно всем объектам этого класса. Такие поля и ме...

Small Image 1Small Image 2Small Image 3

<Inner Class/>

Внутренние классы в Java

Внутренний класс – класс внутри другого класса. Некоторая доп. функциональность, которая относиться только к внешнему классу. Класс внутри друго...

Small Image 1Small Image 2Small Image 3

<Static Сlass/>

Статические классы в Java

Статический класс это всегда внутренний класс. Статического не внутреннего класса не бывает. Обычный внутренний класс и статический внутренний класс ч...

Small Image 1Small Image 2Small Image 3

<Ref Types & Val Types/>

Ссылочные типы и типы значений в Java

В Java есть два типа данных – ссылочные типы и типы значений. int, char ,float и т.д это типы значений. Это простые типы. Это просто число либо ...

Small Image 1Small Image 2Small Image 3

<Vals & Refs passing/>

Передача в метод ссылочных типов и типов значений

Рассмотрим передачу ссылочного типа в метод и передачу типа значения в метод. Для начала передадим в метод тип значения. public class LinkValInMethodE...

Раздел 3: Java Core

Small Image 1Small Image 2Small Image 3

<Annotations/>

Аннотации в Java

Поясним что такое аннотации в Java с помощью небольшой анналогии. Представьте себе склад с коробками. На каждой из коробок есть надпись, которая говор...

Small Image 1Small Image 2Small Image 3

<Exception Handling/>

Обработка исключений в Java

Если при работе Java приложения возникает ошибка(исключение) и обработка данной ошибки не предусмотрена в программе этого приложения, то приложение ОС...

Small Image 1Small Image 2Small Image 3

<Generics/>

Generics в Java

Если мы хотим сделать класс более гибким в плане типов, которые в нем используются, то можно воспользоваться обобщениями (generics). Класс в примере н...

Small Image 1Small Image 2Small Image 3

<Type casting/>

Приведение типов в Java

Часто бывает нужно изменить тип переменной. То есть, например, была создана переменная типа int, и нам в какой-то момент стало необходимо изменить ее ...

Small Image 1Small Image 2Small Image 3

<String Types/>

Типы строк в Java

Для хранения строки мы знаем тип String. Но он не всегда бывает эффективен. Поэтому есть еще другие классы для хранения строк и взаимодействия с ними,...

Small Image 1Small Image 2Small Image 3

<Wrapper Classes/>

Классы обертки в Java

Есть специальные классы обертки – Integer, Char, Float. Они также как и простые типы значений хранят в себе одно простое значение: Integer ̵...

Small Image 1Small Image 2Small Image 3

<Assert/>

Ключевое слово Assert в Java

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

Small Image 1Small Image 2Small Image 3

<Default Methods/>

Default методы в интерфейсах

В java 8 всё же появилась возможность добавлять реализации методов в интерфейс. Нужно в основном для того чтобы у классов реализующих интерфейс не был...

Small Image 1Small Image 2Small Image 3

<Anonymous Class/>

Анонимные классы в Java

Анонимный класс – одноразовая реализация интерфейса без создания полноценного класса. То есть нам не нужно создавать много объектов, будет тольк...

Small Image 1Small Image 2Small Image 3

<Functional Interface/>

Функциональные интерфейсы в Java

В прошлом уроке мы видели интерфейс с одним единственным абстрактным методом. Такой интерфейс называется функциональным. Функциональный интерфейс R...

Small Image 1Small Image 2Small Image 3

<Lambda Expressions/>

Лямбда выражения в Java

Что же такое лямбда выражения? Всё просто. Это просто сокращенная форма реализации функц. интерфейса с помощью анонимного класса. Реализовывать абстра...

Small Image 1Small Image 2Small Image 3

<Stream API/>

Java Stream API

Stream – для работы с коллекциями. Избавляет от необходимости вручную реализовывать операции над коллекциями. Проще говоря пишем запрос к коллек...

Small Image 1Small Image 2Small Image 3

<File/>

Работа с элементами файловой системы в Java. Класс File

File – класс для работы с элементами файловой системы. С помощью различных методов этого класса можно получить информацию о переданном в констру...

Small Image 1Small Image 2Small Image 3

<Object, toString/>

Класс Object в Java. Метод toString и его переопределение

Все классы в Java наследуют от некого класса Object. В этом классе определены некоторые важные методы, которые необходимо знать и самое главное уметь ...

Small Image 1Small Image 2Small Image 3

<Clone/>

Метод Clone в Java. Его переопределение

Второй метод Object это метод clone, который клонирует объект. Происходит копирование всех полей клонируемого объекта в новый объект-клон. Но по умолч...

Small Image 1Small Image 2Small Image 3

<Equals/>

Метод Equals в Java. Его переопределение

Следующий метод Object – это equals. Возвращает boolean значение. equals по умолчанию проверяет только то, ссылаются ли две ссылки на один и тот...

Small Image 1Small Image 2Small Image 3

<HashCode/>

Метод hashCode в Java. Его переопределение

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

Раздел 4: Коллекции

Small Image 1Small Image 2Small Image 3

<Collections. List Interface/>

Коллекции в Java. Интерфейс List

Что же такое коллекция? Это можно сказать такой особый тип массива. Мы знаем, что у обычного Java массива есть строгая граница количества элементов, к...

Small Image 1Small Image 2Small Image 3

<Iterator/>

Iterator в коллекциях Java

Благодаря Iterator можно перебирать любую коллекцию не вникая в особенности какой-либо из них. Пример программы: import java.util.*; @SuppressWarnings...

Small Image 1Small Image 2Small Image 3

<Queue Interface/>

Интерфейс Queue в Java

Благодаря классам реализующим Queue можно создавать массивы реализующие очередь. Что такое очередь? Очередь работает по принципу FIFO – first in...

Small Image 1Small Image 2Small Image 3

<Map Interface/>

Интерфейс Map в Java

Благодаря классам реализующим Map можно создать массив из пар ключ-значение. То есть один элемент этого массива это пара. Пример программы: import jav...

Small Image 1Small Image 2Small Image 3

<Set Interface/>

Интерфейс Set в Java

Благодаря классам реализующим Set можно создать массив в котором элементы не повторяются. HashSet это как hashmap, только без значений, только ключи. ...

Раздел 5: Потоки ввода/вывода

Small Image 1Small Image 2Small Image 3

<Input/Output Streams/>

Потоки ввода/вывода в Java. PrintWriter и PrintStream

Часто так бывает, что нам нужно ввести куда-то информацию и откуда-то ее вывести. Например, извлечь что-нибудь из файла или записать туда что-либо. Пр...

Small Image 1Small Image 2Small Image 3

<FileStream/>

FileStream в Java: чтение и запись файлов

FileOutputStream, FileInputStream – для чтения файла и записи в файл. В конструкторе должен быть указываем путь к файлу с которым будем совершат...

Small Image 1Small Image 2Small Image 3

<DataStream/>

DataStream в Java

DataInputStream DataOutputStream – чтение байтового потока и запись в байтовый поток в формате примитивных типов данных. Пример программы: impor...

Small Image 1Small Image 2Small Image 3

<Buffered Stream/>

BufferedStream в Java

BufferedInputStream, BufferedOutputStream – чтение байтового потока и запись в байтовый поток с добавлением буфера для улучшения производительно...

Small Image 1Small Image 2Small Image 3

<StringReader, StringWriter/>

StringReader и StringWriter в Java

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

Small Image 1Small Image 2Small Image 3

<Sequence InputStream/>

SequenceInputStream в Java

SequenceInputStream – сливает потоки в один поток. Он считывает от первого byte до последнего byte первого InputStream, затем делает то же самое...

Small Image 1Small Image 2Small Image 3

<Piped Stream/>

PipedStream в Java: передача данных между потоками

PipedInputStream, PipedOutputStream – применяется в многопоточной среде. Потоки в слове многопоточной, это не те потоки, которые мы сейчас изуча...

Small Image 1Small Image 2Small Image 3

<PushbackInputStream/>

PushbackInputStream в Java

PushbackInputStream – прочитав несколько байтов входного потока с помощью inpsrream.read() бывает необходимо вернуться и прочитать эти же уже пр...

Small Image 1Small Image 2Small Image 3

<OutputStreamWriter/>

OutputStreamWriter в Java

OutputStreamWriter – мост между символьными и байтовыми потоками. Пример программы: import java.io.*; import java.util.*; class OutputStreamWrit...

Small Image 1Small Image 2Small Image 3

<Object Stream/>

ObjectStream в Java

ObjectInputStream, ObjectOutputStream – для сериалиации/десериализации. Для сохранения копии объекта в поток (в файл, например) для восстановлен...

Small Image 1Small Image 2Small Image 3

<FilterStream/>

FilterStream в Java

FilterInputStream, FilterOutputStream – абстрактные классы для создания собственных потоков или добавления функционала к существующим. В примере...

Раздел 6: Многопоточность

Small Image 1Small Image 2Small Image 3

<Multi threading/>

Многопоточность в Java. Создание потоков с помощью Thread

Создать нить(поток) можно тремя способами: Код класса расширяющего или реализующего что-нибудь выше перечисленное будет выполняться в отдельном потоке...

Small Image 1Small Image 2Small Image 3

<Runnable/>

Интерфейс Runnable в Java

Реализуя Runnable тоже реализуется метод run в котором пишется код, который будет выполняться в отдельном потоке. Пример программы: //Создадим простен...

Small Image 1Small Image 2Small Image 3

<Volatile/>

Volatile переменная в Java

Для создания общей глобальной переменной, которую будут использовать несколько потоков используется слово volatile. Создадим два потока. Первый будет ...

Small Image 1Small Image 2Small Image 3

<Join/>

Метод join в Java

Метод join останавливает поток в котором этот метод был вызван пока не закончит выполнение поток к которому этот метод был вызван. Более понятно на пр...

Small Image 1Small Image 2Small Image 3

<Synchro nized/>

Синхронизация в Java с помощью Synchronized

Если несколько параллельных потоков одновременно хотят выполнить один и тот же кусок кода одного и того же объекта, то можно сделать так чтобы они вып...

Small Image 1Small Image 2Small Image 3

<Synchronized Static/>

Synchronized static в Java

synchronized static (блокировка на уровне класса), а просто synchronized (блокировка на уровне объекта). В коде ниже у нас уже будут 2 объекта ресурса...

Small Image 1Small Image 2Small Image 3

<Wait/Notify/>

Синхронизация с помощью Wait/Notify в Java

wait/notify – используется если нам нужно приостановить один поток и чтобы он ждал пока другой поток даст разрешение на продолжение выполнения о...

Small Image 1Small Image 2Small Image 3

<Yield/>

Метод yield в Java

Когда поток вызывает метод yield он говорит: мне сейчас не обязательно заканчивать свою работу и занимать время процессора и больше времени передастся...

Small Image 1Small Image 2Small Image 3

<Semaphore/>

Semaphore в Java

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

Small Image 1Small Image 2Small Image 3

<Reentrant Lock/>

ReentrantLock в Java – гибкая альтернатива synchronized

ReentrantLock ведет себя как synchronized, но есть некоторые отличия. Мы помним, что synchronized блочит цельный кусок кода, то есть synchronized, это...

Small Image 1Small Image 2Small Image 3

<CountDown Latch/>

Ожидание завершения потоков с помощью CountDownLatch

CountDownLatch – нужен когда требуется чтобы какой-то поток ждал пока не выполняться какое-то количество потоков. В примере ниже мейн останавлив...

Small Image 1Small Image 2Small Image 3

<CyclicBarrier/>

CyclicBarrier в Java

Принцып работы CyclicBarrier такой: потоки зависают друг за другом в месте вызова в них await. Когда зависло необходимое количество потоков, зависнувш...

Small Image 1Small Image 2Small Image 3

<Interrupt/>

Корректная остановка потоков в Java с помощью Interrupt

Чтобы резко остановить поток можно использовать метод Stop(), но резко останавливать не рекомендуется, это может быть опасно. Поэтому метод Stop преда...

Small Image 1Small Image 2Small Image 3

<Callable/>

Callable в Java

До этого мы рассматривали создание потоков с помощью Thread и Runnable. Последний вариант того как можно создать класс потока это реализовать Callable...

Small Image 1Small Image 2Small Image 3

<Executor Service/>

ExecutorService в Java: управление пулом потоков

Создание потока дорогостоящая операция. Поэтому можно вместо создания новых потоков переиспользовать те которые завершили свою работу. ExecutorService...

Small Image 1Small Image 2Small Image 3

<ReadWrite Lock/>

ReadWriteLock в Java

ReadWriteLock – класс содержащий 2 лока: один для чтения, другой для записи. Часто бывает так, что один поток пишет в ресурс, а много других пот...

Small Image 1Small Image 2Small Image 3

<ThreadLocal/>

ThreadLocal в Java: переменные потока

ThreadLocal – переменная ПОТОКА. Это не переменная объекта потока, а именно переменная ПОТОКА. То есть она принадлежит только одному потоку и су...

Small Image 1Small Image 2Small Image 3

<Fork/Join/>

Fork/Join framework в Java

fork/join framework – для разбиения задачи на подзадачи и чтобы эти подзадачи выполнялись в отдельных потоках. Также эти подзадачи могут тоже де...

Раздел 7: Сериализация

Small Image 1Small Image 2Small Image 3

<Serialization/>

Что такое сериализация в Java

Что такое сериализация мы уже проходили в разделе потоки ввода/вывода, но повторим, так как это основы сериализации. ObjectOutputStream – сериал...

Small Image 1Small Image 2Small Image 3

<Transient/>

Transient в Java

Как уже было сказано, при сериализации все поля сериализуемого объекта должны быть тоже Serializable. Если какое-то поле сериализуемого объекта не Ser...

Small Image 1Small Image 2Small Image 3

<SerialVersionUID/>

Контроль совместимости классов в Java с помощью SerialVersionUID

У каждого сериализуемого класса (именно класса, не объекта класса) есть поле SerialVersionUID. Это числовой идентификатор, который меняется при каждом...

Small Image 1Small Image 2Small Image 3

<Singleton Serialization/>

Сериализация Singleton без утраты его сути

Cинглтон это класс, который может иметь только один экземпляр. То есть другой экземпляр этого класса невозможно создать. Если мы сериализуем этот экзе...

Small Image 1Small Image 2Small Image 3

<Externali zable/>

Управляемая сериализация в Java: Externalizable

Externalizable – управляемая сериализация. Представим, что нужно сериализовать объект созданного нами класса расширяющий вообще сторонний класс,...

Раздел 9: SQL

Small Image 1Small Image 2Small Image 3

<SQL, MySQL/>

Основы SQL. Что такое СУБД и MySQL

Теперь разберемся как же работать с Базой Данных. То есть как создать таблицу, добавить в нее данные, извлечь из нее данные, удалить ее и т.д. Для это...

Small Image 1Small Image 2Small Image 3

<DDL in SQL/>

DDL в SQL: создание и удаление таблиц

Командой create database создадим базу данных с именем ecommerce, то есть интернет магазин. Перед прохождением раздела по SQL очень желательно пройти ...

Small Image 1Small Image 2Small Image 3

<DML in SQL/>

DML команды в SQL

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

Small Image 1Small Image 2Small Image 3

<Aggregate Functions/>

Агрегатные функции в SQL

Рассмотрим что такое агрегатные функции. Агрегатная функция может выполнить какие-либо операции над всеми значениями столбца или над группой значений ...

Small Image 1Small Image 2Small Image 3

<Group By. Having/>

Group By и Having в SQL

Далее разберем ключевое слово Group by и having. С помощью Group by можно разбить значения какого-либо выбираемого из таблицы аттрибута на группы. Гру...

Small Image 1Small Image 2Small Image 3

<Subqueries/>

Подзапросы в SQL

Теперь перейдем к подзапросам. Вот мы например вывели максимальное число в столбце. Оно ясное дело тоже было в какой-то строке таблицы (строка с id 7 ...

Small Image 1Small Image 2Small Image 3

<Join/>

Объединение таблиц в SQL с помощью JOIN

Далее разберем слово JOIN.  У нас есть две связанные таблицы. Как видим каждый продукт связан с категорией по внешнему ключу category_id. В categ...

Раздел 10: JDBC

Small Image 1Small Image 2Small Image 3

<JDBC Basics/>

Основы JDBC в Java

JDBC – программный интерфейс для взаимодействия Java приложения и базы данных. То есть, грубо говоря, мы можем работать с базой данных из Java п...

Small Image 1Small Image 2Small Image 3

<Transactions/>

Транзакции в SQL и JDBC

Представим, есть некоторая последовательность SQL запросов, которые должны последовательно выполняться. Если на определенном запросе возникнет ошибка,...

Small Image 1Small Image 2Small Image 3

<Savepoint/>

Savepoint в JDBC транзакциях

Класс SavePoint необходим для того, чтобы rollback был применен с определенной строки кода по определенную строку кода. Пример программы: import java....

Small Image 1Small Image 2Small Image 3

<Transaction Isolation/>

Изоляция транзакций в Java. Грязное чтение

Две или более выполняющиеся параллельно транзакции часто должны быть изолированы друг от друга. Есть три случая когда необходимо изолировать транзакци...

Small Image 1Small Image 2Small Image 3

<Non-repeatable read/>

Изоляция транзакций в Java. Неповторяющееся чтение

Допустим есть транзакция А и транзакция В в разных потоках. Допустим в транзакции А есть несколько select запросов подряд. Если транзакция В во время ...

Small Image 1Small Image 2Small Image 3

<Phantom Read/>

Изоляция транзакций в Java. Фантомное чтение

Фантомное чтение – по сути то же самое, что и неповторяющееся, только вместо update базы, будет insert в базу. Для того чтобы изолировать транза...

Small Image 1Small Image 2Small Image 3

<PreparedStatement/>

PreparedStatement в Java: защита от SQL-инъекций

Напрямую в запрос данные пользователя передавать нельзя! Это опасно. Пользователь может туда вставить любое sql выражение какое ему вздумается. Это на...

Small Image 1Small Image 2Small Image 3

<Stored Procedures/>

Использование хранимых процедур в Java

Хранимые процедуры это по сути функции, только вместо java кода sql код и эти функции хранятся в БД. Для создания этой процедуры в БД, нужно выполнить...

Раздел 11: HTML

Small Image 1Small Image 2Small Image 3

<HTML/>

Что такое HTML и зачем он нужен

HTML – это язык разметки веб-страницы. С помощью html мы задаем странице определенный каркас. То есть этот язык определяет в каком порядке будут...

Small Image 1Small Image 2Small Image 3

<Crucial HTML Tags/>

Ключевые теги HTML

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

Small Image 1Small Image 2Small Image 3

<Attributes/>

Атрибуты в HTML

Мы уже рассмотрели некоторые аттрибуты типа src, href и border. Как уже можно было понять, они нужны, чтобы каким-либо образом настраивать элементы на...

Small Image 1Small Image 2Small Image 3

<CSS Basics/>

Базовые концепции CSS

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

Small Image 1Small Image 2Small Image 3

<CSS Classes/>

Что такое классы в CSS

А что, если мы хотим применить определённый набор CSS-свойств вообще к любому элементу на странице, не указывая конкретный тег, например h1 { … ...

Small Image 1Small Image 2Small Image 3

<Div Block/>

Что такое div блок и зачем он нужен

Рассмотрим тег <div></div>. Это наверное один из самых часто встречающихся тегов в любом html документе. div сам по себе ничего не делает, но с ...

Small Image 1Small Image 2Small Image 3

<Structure Tags/>

Теги структуры страницы. Семантические теги

Все видели классическую структуру страницы: Верхняя часть страницы на которой панель навигации по сайту, логотип и другое, часть страницы с основным к...

Small Image 1Small Image 2Small Image 3

<CSS Selectors/>

Cелекторы в CSS

До этого мы использовали только селектор конкретного тега ( например h1 {…} ) и селектор класса ( например some-class-name {…} ). Селектор...

Раздел 14: Servlets

Small Image 1Small Image 2Small Image 3

<Java EE/>

Java Enterprise Edition (EE)

Java EE – стандарт разработки веб-приложений используя язык Java. Предоставляет множество средств для реализации клиент-серверных приложений. В ...

Small Image 1Small Image 2Small Image 3

<First Servlet/>

Создание первого Java-сервлета

Ниже приведен пример сервлета. Класс сервлета наследуется от класса HttpServlet и в нем реализуются методы doGet, doPost. В этих методах происходит пр...

Small Image 1Small Image 2Small Image 3

<Servlet Methods/>

Методы Java-cервлета

Помимо doGet у сервлета есть и другие методы. Рассмотрим вкратце зачем нужны методы init, doPost, service и destroy. import java.io.IOException; impor...

Small Image 1Small Image 2Small Image 3

<@WebServlet/>

Использование аннотации @WebServlet

Чтобы не конфигурировать путь, по которому будет происходить обращение к сервлету в web.xml можно использовать аннотацию WebServlet в коде сервлета. i...

Small Image 1Small Image 2Small Image 3

<Parameters in GET request/>

Работа с HTTP-запросами в Java-cервлетах: GET и POST

Для начала рассмотрим GET-запрос. GET-запросы позволяют клиенту передавать параметры через адресную строку браузера. Эти параметры затем можно легко и...

Small Image 1Small Image 2Small Image 3

<Redirect Methods/>

Redirect, forward, include в Java-сервлетах

Рассмотрим переход на другую страницу с помощью sendRedirect() sendRedirect() – перенаправляет на любой указанный аргументом адрес. Адрес в адре...

Small Image 1Small Image 2Small Image 3

<Cookies/>

Работа с Cookies в Java-cервлетах

Cookies это данные, которые генерируются сервером и хранятся в браузере клиента. Браузер клиента возвращает эти данные обратно на сервер когда клиент ...

Small Image 1Small Image 2Small Image 3

<Session/>

Работа с сессиями (Session) в Java-cервлетах

Если выбрать все cookies нашего веб-ресурса, то там всегда будет кук с именем SESSIONID и значением идентификатором. Этот идентификатор уникален для к...

Small Image 1Small Image 2Small Image 3

<Servlet Context/>

Интерфейс ServletContext

ServletContext – контекст является объектом общим для всего приложения. В объекте ServletContext можно хранить какие-либо данные общие для всех ...

Small Image 1Small Image 2Small Image 3

<Servlet Config/>

Интерфейс ServletConfig

ServletConfig – можно сказать, что то же самое, что и ServletContext, но в отличии от него хранит данные касающиеся только конкретного сервлета....

Small Image 1Small Image 2Small Image 3

<EncodeURL/>

encodeURL и encodeRedirectURL в Java-сервлетах

Часто так бывает, что клиент отключил cookies в браузере, а id сессии храниться в cookies, а как-то поддерживать сессию надо. Выход есть. Для этого ну...

Small Image 1Small Image 2Small Image 3

<Servlet Sync/>

Синхронизация в Java-сервлете

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

Small Image 1Small Image 2Small Image 3

<Filter/>

Что такое Filter в Java-сервлетах

Часто бывает, что нужно чтобы перед вызовом какого-либо сервлета или после вызова выполнялся какой-либо код. Для этого нужно реализовать интерфейс Fil...

Small Image 1Small Image 2Small Image 3

<Listeners/>

Слушатели (Listeners) в Java-сервлетах

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

Small Image 1Small Image 2Small Image 3

<Async Context/>

Оптимизация Java-cервлетов с помощью AsyncContext

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

Раздел 15: JSP

Small Image 1Small Image 2Small Image 3

<Java Server Pages (JSP)/>

Азы работы с Java Server Pages (JSP)

Для начала создадим папку jsp в папке приложения helloservlet. В ней будут храниться jsp файлы. Также создадим здесь файлик с расширением .jsp. JSP &#...

Small Image 1Small Image 2Small Image 3

<Comments/>

Комментарии в JSP

На JSP странице можно пользоваться двумя видами комментариев. <%—-%> и <!—->. Первый это jsp комментарий, второй это html комм...

Small Image 1Small Image 2Small Image 3

<Implicit Objects/>

Неявные объекты в JSP: session, request и др.

Допустим, мы хотим как в сервлете использовать на нашей JSP странице req и resp метода doGet. Где их взять? Для этого придумали специальные неявные об...

Small Image 1Small Image 2Small Image 3

<ActionBeans/>

Что такое actionBeans в JSP?

Мы рассмотрели action теги invoke и forward. Среди часто употребляемых еще есть useBean, setProprety, getProprety. Бин – это объект обычного кла...

Small Image 1Small Image 2Small Image 3

<MVC Pattern/>

Паттерн MVC в веб-разработке на Java

MVC – MODEL, VIEW, CONTROLLER. Популярная архитектура построения приложений. Нужно знать. Клиент может передавать какие либо данные в CONTROLLER...

Small Image 1Small Image 2Small Image 3

<Expression Language/>

Expression Language (EL) в JSP

В прошлом уроке мы извлекали созданный в контроллере бин с помощью actioBean. Чтобы для создания и получения бина не писать вот так: <jsp:useBean i...

Small Image 1Small Image 2Small Image 3

<JSTL/>

Работа с JSP Standard Tag Library (JSTL)

JSTL — это теговая альтернатива стандартному Java-коду на JSP. То есть все стандартные конструкции типа создания переменных, циклов, условий, исключен...

Раздел 16: Шаблоны проектирования

Small Image 1Small Image 2Small Image 3

<Design Patterns/>

Что такое шаблоны проектирования? Шаблон Factory в Java

При проектировании того или иного программного продукта разработчик сталкивается с большим количеством проблем. И многие из этих проблем бывают ТИПИЧН...

Small Image 1Small Image 2Small Image 3

<Singleton/>

Шаблон Singleton в Java: обеспечение единственного экземпляра

Singleton – класс, который гарантировано имеет только один экземпляр. Используется, как некий глобальный ресурс доступ к которому есть в любой т...

Small Image 1Small Image 2Small Image 3

<Data Access Object/>

Шаблон DAO в Java: работа с БД через объект

Data Access Object. Нужен чтобы отделить низкоуровневый доступ к данным от высокоуровневых сервисов. Низкоуровневый доступ – это, например, взаи...

Small Image 1Small Image 2Small Image 3

<Front Controller/>

Шаблон Front Controller в Java: централизованная обработка запросов

Вся суть паттерна Front Controller в том, что все запросы обрабатываются централизовано через одно место. То есть любой запрос сначала идет в Front Co...

Small Image 1Small Image 2Small Image 3

<Template/>

Шаблон Template в Java: поведение по умолчанию

Template – это просто абстрактный класс, который задает скелет для расширяющих его классов. Приведем пример из жизни. Например, наша жизнь: Рожд...

Раздел 17: Spring Framework

Small Image 1Small Image 2Small Image 3

<Spring Framework/>

Что такое Spring Framework и зачем он нужен

В разделе по сервлетам мы уже встречались с так называемыми бинами — это обычные объекты классов с приватными полями, геттерами и сеттерами. Так вот, ...

Small Image 1Small Image 2Small Image 3

<DI Using Setter/>

Внедрение зависимостей в Spring с помощью сеттера.

Помним, что в прошлом уроке внедрение админа в ПК происходило с помощью конструктора в классе ПК. Но внедрять также можно с помощью сеттера Класс Serv...

Small Image 1Small Image 2Small Image 3

<Injecting File Fields/>

Внедрение значений из внешнего файла в поля Spring бина.

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

Small Image 1Small Image 2Small Image 3

<Spring Scopes/>

Области видимости бинов (Spring Scopes)

Бин может иметь область, в которой он действует. Их 5: singleton, prototype, request, session и global-session. По дефолту scope у бина singleton. Это...

Small Image 1Small Image 2Small Image 3

<Spring Bean Lifecycle/>

Жизненный цикл Spring-бина

Жизненный цикл спринг бина таков: Что же это за init-method и destroy-method? Это что-то типа init и destroy методов в сервлете. Как мы помним, init м...

Small Image 1Small Image 2Small Image 3

<Annotation-driven Config/>

Конфигурация Spring бинов с помощью аннотаций

Как уже было упомянуто в конце прошлого урока, бины можно создавать не в applicationContext.xml, а аннотациями прямо в классах бинов. Благодаря этому ...

Small Image 1Small Image 2Small Image 3

<@Autowired/>

Аннотация @Autowired в Spring Framework

В прошлом уроке мы внедряли бин админа в бин ПК с помощью конструктора или сеттера помеченных аннотацией @Autowired. Но аннотация @Autowired намного м...

Small Image 1Small Image 2Small Image 3

<Class-driven Config/>

Конфигурация Spring бинов с помощью Java класса.

Иногда удобнее бывает конфигурировать бины не с помощью XML, а с помощью Java кода. То есть теперь вместо applicationContext.xml у нас будет Java клас...

Раздел 18: Spring MVC

Small Image 1Small Image 2Small Image 3

<Eclipse IDE Web App/>

Создание веб-приложения в Eclipse IDE

До данного урока мы компилировали и запускали приложения вручную через консоль. Давайте же с началом изучения темы spring MVC переместимся в удобную с...

Small Image 1Small Image 2Small Image 3

<Spring MVC/>

Основы Spring MVC. Как работает DispatcherServlet

Что же такое Spring MVC? Это набор средств для построения веб-приложений. Подобных тем приложениям, которые мы уже разрабатывали, но в отличии от разр...

Small Image 1Small Image 2Small Image 3

<Request Mapping/>

Аннотация RequestMapping в Spring MVC

Классов контроллеров в MVC-приложении может быть много. Давайте создадим еще один контроллер – MVController2. В адресной строке браузера можно у...

Small Image 1Small Image 2Small Image 3

<Form Data Handling/>

Обработка дынных формы в Spring MVC, передача данных в Model

Давайте создадим приложение в котором: Для начала, нужно создать страницу формы через которую пользователь будет отправлять данные в обработчик и стра...

Small Image 1Small Image 2Small Image 3

<Spring Form Tag/>

Специальный тег Form в Spring

В спринг есть специальные теги, которые упрощают нам разработку. В этом уроке рассмотрим специальный тег form:form. Тег form:form обеспечивает прямую ...

Small Image 1Small Image 2Small Image 3

<Spring Form Tags/>

Теги Spring Form: Select, Radio, Checkbox

Помимо тега form:input, рассмотренного в прошлом уроке, есть также и другие теги с которыми мы можем связывать поля объекта в аттрибуте. В этом уроке ...

Small Image 1Small Image 2Small Image 3

<Form Validation/>

Валидация форм в Spring MVC

Валидация – это проверка данных формы на то подходят ли они под какие-то условия. Для начала необходимо скачать hibernate validator. Можно скача...

Раздел 19: Hibernate

Small Image 1Small Image 2Small Image 3

<Hibernate/>

Введение в ORM с использованием Hibernate

Hibernate реализует ORM-модель построения приложений. Благодаря ORM можно сохранить объект в базу данных. При сохранении какого-либо объекта в базу да...

Small Image 1Small Image 2Small Image 3

<HQL Lang/>

Обзор языка запросов HQL в Hibernate

В hibernate используется HQL, а не SQL. HQL работает с таблицей через класс, который связан с ней. То есть в запросе к БД мы указываем не название таб...

Small Image 1Small Image 2Small Image 3

<HQL Update/>

HQL запросы в Hibernate. Обновление данных (Update)

Если мы извлекли из таблицы строку в объект, а потом изменили его с помощью например сеттера, то после коммита транзакции он измениться и в базе. pack...

Small Image 1Small Image 2Small Image 3

<HQL Delete/>

HQL запросы в Hibernate. Удаление данных (Delete)

Если извлечь строку таблицы в объект, а потом применить метод delete на этот объект, то строка, которую мы извлекали удалиться в базе данных. Таким об...

Small Image 1Small Image 2Small Image 3

<Hibernate Relationships/>

Настройка связей в Hibernate приложении

В базе данных обычно существуют связанные таблицы. Все стандартные виды связей (1-к-1, 1-ко-Многим, Многие-Ко-Многим) можно реализовать и между java к...

Small Image 1Small Image 2Small Image 3

<Bidirectional Relation/>

Двусторонняя связь между сущностями в Hibernate

Связь между объектами таблиц была односторонняя, то есть через объект Author удалялся из БД или сохранялся в БД связанный объект AuthorInfo. Теперь сд...

Small Image 1Small Image 2Small Image 3

<One-to-Many/>

Настройка связи Один-ко-Многим в Hibernate

Теперь настроим в нашем приложении связь 1-ко-Многим. Создадим еще одну таблицу “Книги авторов”, которая будет связана с таблицей author. ...

Small Image 1Small Image 2Small Image 3

<Fetch Types/>

Типы извлечения данных в Hibernate (fetch types)

LAZY, EAGER – это типы извлечения данных. Подробнее ниже. package HibernateApps; import java.util.List; import javax.persistence.CascadeType; im...

Small Image 1Small Image 2Small Image 3

<Many-to-Many/>

Настройка связи Многие-ко-Многим в Hibernate приложении

Теперь настроим в нашем приложении связь Многие-ко-Многим. Пусть теперь в нашем приложении будет еще одна новая таблица – “Издательство...