Слайд 2
![Lecturer Maksym Dobrynin (Максим Добрынин) Full-stack Java Developer](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-1.jpg)
Lecturer
Maksym Dobrynin (Максим Добрынин)
Full-stack Java Developer
Слайд 3
![Agenda Primitive types Integers Floating-point Variables Naming rules Arithmetic operations](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-2.jpg)
Agenda
Primitive types
Integers
Floating-point
Variables
Naming rules
Arithmetic operations and priority
Basic
Modulus
Compound
Class Math as utility
Type conversion and
incompatible type casting
Auto type promotion
Слайд 4
![Primitive types В Java существует 8 примитивных типов данных: byte](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-3.jpg)
Primitive types
В Java существует 8 примитивных типов данных:
byte (целые числа, 1
байт)
short (целые числа, 2 байта)
int (целые числа, 4 байта)
long (целые числа, 8 байтов)
float (вещественные числа, 4 байта)
double (вещественные числа, 8 байтов)
char (символ Unicode, 2 байта)
boolean (значение истина/ложь, 1 байт)
Слайд 5
![Primitive types. Integers Следующие типы относятся к целочисленными, могут хранить](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-4.jpg)
Primitive types. Integers
Следующие типы относятся к целочисленными, могут хранить знания в
следующих диапазонах и занимать соответствующие количество памяти в системе
Слайд 6
![Primitive types. Floating-point Следующие типы так называемые с плавающеей запятой](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-5.jpg)
Primitive types. Floating-point
Следующие типы так называемые с плавающеей запятой либо чаще
употреблямые как дробно-десятичные, могут хранить знания в следующих диапазонах и занимать соответствующие количество памяти в системе
Слайд 7
![Variables Переменная - это именованная область памяти конкретного типа данных,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-6.jpg)
Variables
Переменная - это именованная область памяти конкретного типа данных, которая может
хранить значение или другими словами - некий контейнер, в котором может храниться значение для дальнейшего использования в программе
В Java все переменные должны быть объявлены до их использования. Основная форма объявления переменных выглядит следующим образом: тип идентификатор [=значение]
int a; // объявление
int a, int b, double c; // объявление нескольких переменных
int a = 1; // инициаализация
int a = 1, int b = 0; // инициализация нескольких переменных
Слайд 8
![Variables Примитивные типы хранятся в области памяти JVM под названием Stack](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-7.jpg)
Variables
Примитивные типы хранятся в области памяти JVM под названием Stack
Слайд 9
![Variables. Naming rules Имя переменной должно начинаться с буквы (маленькой)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-8.jpg)
Variables. Naming rules
Имя переменной должно начинаться с буквы (маленькой) и состоять
из букв (Unicode) цифр и символа подчеркивания «_». Технически возможно начать имя переменной также с «$» или «_», однако это запрещено соглашением по оформлению кода в Java (Java Code Conventions). Кроме того, символ доллара «$», по соглашению, никогда не используется вообще. В соответствии с соглашением имя переменной должно начинаться именно с маленькой буквы (с заглавной буквы начинаются имена классов). Пробелы при именовании переменных не допускаются
Имя переменной не должно быть ключевым или зарезервированным словом языка Java
Имя переменной чувствительно к регистру. youngOne и youngone — разные имена
Если выбранное вами имя переменной состоит только из одного слова — запишите его маленькими буквами. Если оно состоит из более чем одного слова, то отделяйте каждое последующее слово в имени переменной заглавной буквой. Например: masterJedi, supremeChancellor
Слайд 10
![Arithmetic operations and priority Арифметические операции применяются в математических выражениях](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-9.jpg)
Arithmetic operations and priority
Арифметические операции применяются в математических выражениях таким же
образом, как и в алгебре. Следующие операции, доступные в Java
Слайд 11
![Arithmetic operations and priority. Basic К базовым операциям стоит отнести](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-10.jpg)
Arithmetic operations and priority. Basic
К базовым операциям стоит отнести привычные нам
математические операции (сложение, вычитание, умножение и деление)
int a = 1 + 1; double da = 1 + 1;
int b = a * 3; double db = da * 3;
int c = b / 4; double dc = db / 4;
int d = c - а;
Слайд 12
![Arithmetic operations and priority. Modulus Операция деления по модулю %](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-11.jpg)
Arithmetic operations and priority. Modulus
Операция деления по модулю % возвращает остаток
от деления. Эту операцию можно выполнять как над числовыми типами данных с плавающей точкой, так и над целочисленными
public static void main(String args[]) {
int x = 42;
double y = 42.25;
System.out.println("x mod 10 = " + x % 10);
System.out.println("y mod 10 = " + y % 10);
}
На выходе мы получим
х mod 10 = 2
у mod 10 = 2.2 5
Слайд 13
![Arithmetic operations and priority. Compound В Java имеются специальные операции](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-12.jpg)
Arithmetic operations and priority. Compound
В Java имеются специальные операции , объединяющие
арифметические операции с операциями присваивания
int a = 1, b = 2, c = 3;
a = a + 5; a += 5;
b = b * 4; b *= 4;
c = c+ a * b; c += a * b;
c = c % 6; c %= 6;
Такого рода объединенные операция порой облегчают читаемость кода и к сокращают его, поскольку никогда не стоит забывать, что каждый символ в операции (в коде) имеет свою меру в памяти и занимают ее, что ведет к увеличению веса программы в целомом
Слайд 14
![Class Math as utility Class Math - предназначен для группирования](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-13.jpg)
Class Math as utility
Class Math - предназначен для группирования общих (элементарных),
если хотите часто используемых операций (экспоненциальных, логарифмических, получение квадратного корня, тригонометрические функции и т.д.)
Полезные ссылки:
Официальная документация и описание
Краткое описание на русском языке
public static void main(String args[]) {
double a = 3.0, b = 4.0;
double c = Math.sqrt(a * a + b * b);
В данном выражении мы без труда получаем квадратный корень числа
Слайд 15
![Type conversion and incompatible type casting Когда данные одного типа](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-14.jpg)
Type conversion and incompatible type casting
Когда данные одного типа присваиваются переменной
другого типа, выполняется автоматическое преобразование типов, если удовлетворяются два условия:
оба типа совместимы
длина целевого типа больше длины исходного типа
При соблюдении этих условий выполняется расширяющее преобразование. Например, тип данных int всегда достаточно велик, чтобы хранить все допустимые значения типа byte, поэтому никакие операторы явного приведения типов в данном случае не требуются
Слайд 16
![Auto type promotion Помимо операций присваивания, определенное преобразование типов может](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-15.jpg)
Auto type promotion
Помимо операций присваивания, определенное преобразование типов может выполняться и
в выражениях. Это может происходить в тех случаях, когда требуемая точность промежуточного значения выходит за пределы допустимого диапазона значений любого из операндов в выражении. В качестве примера рассмотрим следующий фрагмент кода:
byte a = 40;
byte b = 50;
byte c = 100;
int d = a * b / c;
Слайд 17
![Auto type promotion Несмотря на все удобства автоматического продвижения типов,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-16.jpg)
Auto type promotion
Несмотря на все удобства автоматического продвижения типов, оно может
приводить к досадным ошибкам во время компиляции. Например, следующий правильный на первый взгляд код приводит к ошибке:
byte b = 50;
b = b * 2;
ОШИБКА ! Значение типа int не может быть присвоено переменной типа byte
Слайд 18
![Auto type promotion В языке Java определен ряд правил продвижения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207558/slide-17.jpg)
Auto type promotion
В языке Java определен ряд правил продвижения типов, применяемых
к выражениям. Сначала все значения типа byte, short и char продвигаются к типу int, как объяснялось выше. Затем тип всего выражения продвигается к типу long, если один из его операндов относится к типу long. Если же один из операндов относится к типу float, то тип всего выражения продвигается к типу float. А если любой из операндов относится к типу double, то и результат вычисления всего выражения относиться к типу double