-
Notifications
You must be signed in to change notification settings - Fork 72
4. Основы Java
Java — строго типизированный объектно-ориентированный язык программирования общего назначения, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Разработка ведётся сообществом, организованным через Java Community Process; язык и основные реализующие его технологии распространяются по лицензии GPL. Права на торговую марку принадлежат корпорации Oracle.
Википедия
Java испытал на себе влияние языков C и C++, перенял от них некоторые структурные аспекты, но и упростил написание кода. Основная особенность Java в том, что код, написанный на этом языке может переносится на разные платформы без сильного изменения. Если на C++ код пишется под конкретную платформу и опирается на ее возможности, то код Java пишется под JVM (Java Virtual Machine), которая исполняет его. Таким образом разработчик не зависит от операционной системы и платформы.
Помимо этого, в Java реализовано автоматическое управление памятью. Если в C/C++ разработчик самостоятельно должен следить за жизненным циклом объектов и избегать утечек памяти, то Java делает это самостоятельно, что также упрощает и ускоряет написание кода.
Java нашла применение в веб-разработке (бэкенд сервисов), мобильной разработке (Android), геймдеве (Minecraft) и других сферах.
Java построен на принципах ООП (объектно-ориентированного программирования), поэтому класс — базовая единица кода на Java. Всю программу на Java можно представить как взаимодействие набора классов и объектов. Класс может содержать в себе данные в виде переменных и логику программы в виде методов.
Каждая программа на Java должна содержать в себе как минимум один метод, обозначаемый словом main
. Он считается основным и является точкой входа для выполнения кода. В этом методе уже можно вызывать другие.
Пример:
public class FirstClass {
public static void main(String[] args) {
// ... код ...
}
}
Пример простого класса, который хранит в себе данные о человеке и выводит их
class Person{
String name; // имя
int age; // возраст
void displayData() {
System.out.printf("Name: %s \tAge: %d\n", name, age);
}
}
в Java предусмотрены следующие типы данных:
-
boolean — логические тип данных, хранит в себе значение
true
иfalse
.
boolean isTrue = true;
boolean isFalse = false;
- byte — целочисленный тип, хранит целое число от -128 до 127 и занимает 1 байт памяти.
byte a = -128;
byte b = 127;
- short — целочисленный тип, хранит целое число от -32768 до 32767 и занимает 2 байта памяти.
short a = -32768;
short b = 32767;
- int — целочисленный тип, хранит целое число от -2147483648 до 2147483647 и занимает 4 байта памяти.
int a = -2147483648;
int b = 2147483647;
- long — целочисленный тип, хранит целое число от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 и занимает 8 байт памяти.
long a = –9223372036854775808;
long b = 9223372036854775807;
- float — хранит число с плавающей точкой от -3.4E+38 до 3.4E+38.
float a = 8.5F;
float b = -3.2F;
- double — хранит число с плавающей точкой от -1.7E+308 до 1.7E+308.
double a = 8.5;
double b = -3.2;
- char — хранит одиночный символ и занимает 2 байта памяти.
char a = 'a';
- String — строковые переменные, не представляют собой примитивы и хранят в себе целые строки.
String name = "Alex";
Оператор | Описание |
---|---|
+ | Складывает значение по обе стороны |
- | Вычитает правый операнд из левого |
* | Умножает значения по обе стороны от оператора |
/ | Делит левый операнд на правый |
% | Возвращает остаток от деление левого операнда на правый |
++ | Инкремент - увеличение операнда на 1 |
-- | Декремент - уменьшение операнда на 1 |
Пример:
public class Test {
public static void main(String args[]) {
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("b / a = " + (b / a));
System.out.println("b % a = " + (b % a));
System.out.println("c % a = " + (c % a));
System.out.println("a++ = " + (a++));
System.out.println("b-- = " + (a--));
// Проверьте разницу в d++ и ++d
System.out.println("d++ = " + (d++));
System.out.println("++d = " + (++d));
}
}
Выполнение кода даст следующее:
a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++ = 10
b-- = 11
d++ = 25
++d = 27
Оператор | Описание |
---|---|
== | Равно |
!= | Неравно |
> | Больше |
< | Меньше |
>= | Больше или равно |
<= | Меньше или равно |
- && - логическое «И»;
- || - логическое «ИЛИ»;
- ! - логическое «НЕ».
В Java, как и в других ЯП, существуют условные конструкции, которые помогают направить выполнение кода в нужную сторону, а влияет на принятие решения условие.
Конструкция if/else проверяет истинность условия и в зависимости от результата либо выполняет блок кода, либо игнорирует его. На естественном языке конструкцию можно представить так:
если (это выражение верно) {
выполни этот код
}
Пример:
В этом случае, если условие окажется верным, то выполнится код в фигурных скобках.
int a = 6;
int b = 4;
if (a > b) {
System.out.println("Первое число больше второго");
}
Если мы хотим сделать что-то даже в том, случае, если условие окажется ложным, то можно применить else
. На естественном языке это выглядит так:
если (это выражение верно) {
выполни этот код
}
иначе {
выполни этот код
}
Пример:
В этом случае, если условие окажется верным, то выполнится код в фигурных скобках после if
, а если окажется ложным, то после else
.
int a = 6;
int b = 4;
if (a > b) {
System.out.println("Первое число больше второго");
}
else {
System.out.println("Первое число меньше второго");
}
Можно использовать проверку сразу нескольких условий, которые будут проверяться поочередно:
int a = 6;
int b = 4;
if (a > b) {
System.out.println("Первое число больше второго");
}
else if {
System.out.println("Первое число меньше второго");
}
else {
System.out.println("Числа равны");
}
Конструкция switch/case схожа с if/else и помогает проверять сразу несколько условий. После слова switch
в скобках указывается сравнимое значение. Это значение последовательно сравнивается со значениями после слова case
. Если найдется совпадение, то выполнится эта часть кода. В конце блоков необходимо ставить ключевое слово break
, иначе выполнение кода не остановится на одном блоке.
Пример:
Значение num
равняется восьми и именно оно указано для сравнения после слова switch
. Выполнится блок кода case 8:
, так как именно там значения совпадут.
int num = 8;
switch(num){
case 1:
System.out.println("число равно 1");
break;
case 8:
System.out.println("число равно 8");
num++;
break;
case 9:
System.out.println("число равно 9");
break;
default:
System.out.println("число не равно 1, 8, 9");
}
Также можно определить несколько значений для одного блока case
. Код будет выполнен при совпадении с одним из значений. Есть возможность добавить блок, который будет выполнен в любом случае, даже если совпадения не найдутся. Такой блок указывается после ключевого слова default
.
Пример:
int num = 3;
int output = 0;
switch(num){
case 1:
output = 3;
break;
case 2:
case 3:
case 4:
output = 6;
break;
case 5:
output = 12;
break;
default:
output = 24;
}
System.out.println(output);
✔️ Сайт
✔️ Чат в Telegram
✔️ Канал в Telegarm
Содержание
Командная строка
Кодировка UTF-8 в Java
Список полезных книг для автоматизаторов тестирования на языке Java
Список полезных книг для автоматизаторов тестирования на языке Python
Структура проекта
Github README.md
Java:
1. Вводное занятие. Сразу к практике.
2. Git. GitHub. Погружаемся.
3. Погружаемся в инструментарий и библиотеки
4. Основы Java
5. Продолжаем разрабатывать автотесты. PageObjects
6. JUnit 5
7. Allure Reports
8. Работа с файлами
9. Selenide #1
10. Jenkins. Создаем первую задачу
11. Управляем параметрами в коде и в Jenkins
12. Отправляем уведомления о результатах прохождения автотестов
13. Учимся быстро разрабатывать проекты для тестовых заданий
14. Selenoid
15. Библиотека Owner
16. REST API. Пишем автотесты с Rest assured
17. REST API. Декомпозируем UI тесты. Подключаем отчетность
18. REST API. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Allure TestOps
21. Переезд на собственную инфраструктуру Java
Python:
1. Вводное занятие. Сразу к практике!
2. Погружаемся в инструментарий и библиотеки
3. Git. GitHub. Погружаемся.
4. Основы Python
5. Selene #1
6. Основы Python. Часть II
7. Основы Python. Часть III
8. Page Object
9. Allure Reports
10. Работаем с файлами Python
11. Jenkins. Создаем первую задачу и управляем параметрами Python
12. Телеграм бот. Отправляем уведомления о результатах прохождения тестов
13. Pytest
14. Selenoid
15. Pytest. Часть II
16. Venv, Poetry и управление зависимостями проекта
17. REST API. Часть I. Пишем автотесты с Requests
18. REST API. Часть II. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android устройства
21. Allure TestOps
22. Переезд на собственную инфраструктуру Python