SlideShare une entreprise Scribd logo
1  sur  69
Переменные, типы данных,
операторы.
Виталий Унгурян
unguryan@itstep.org
Лексика языка. Лексемы.
идентификаторы (identifiers);
ключевые слова (key words);
литералы (literals);
разделители (separators);
операторы (operators).
Основы синтаксиса.
Язык Java различает прописные и
строчные буквы! 
Это означает, что имена всех функций и
ключевые слова следует записывать в
точности так, как они значатся в
примерах и справочниках.
X не то же самое, что x
Основы синтаксиса
Каждая команда (оператор) в
языке Java должна заканчиваться
точкой с запятой.
System.out.println("Hello, world!");
Основы синтаксиса
Хотя бы в одном из классов должен
существовать метод main(), в точности
такой, как в рассмотренном примере.
main метод и будет выполняться
первым.
В начале разбираться или пытаться запомнить
правильное написание этого метода необязательно –
Eclipse все сгенерирует сам, если поста­вить нужную
галочку.)
Что такое переменная?
Переменные
­своеобразные 
контейнеры, которые
могут нести в себе
числовые, строковые
или логические
значение.
Переменные
Переменная — это именованная
область памяти, куда может быть (пере)
записано и откуда может быть
прочитано значение определенного
типа. Тип переменной и её имя
задаются при объявлении переменной,
они не могут быть изменены далее в
одном блоке программы.
Локальные переменные
Лакальная переменная  ­ это
переменная объявленная
внутри тела метода.
Типизация
Типизация - это
способ защититься
от использования
объектов одного
типа вместо
другого, или по
крайней мере управлять таким
использованием.
Типы типизаций
Статическая типизация – это когда тип
данных определяется на этапе
компиляции.
Динамическая – на этапе выполнения
программы.
В java статическая
типизация.
Примитивные типы данных
Логические – boolean
Целые – byte, short, int, long
Дробные – float, double
Символьные – char
Разрядность и диапазон значений.
byte – используется для
хранения значений целых
чисел.
Разрядность: 1 байт.
Диапазон значений: от ­128 до 127
Разрядность и диапазон значений.
char ­ используется для
хранения кода символа
(целое положительное число).
Разрядность: 2 байта
Диапазон значений: от 0 до 65535
Разрядность и диапазон значений.
short – используется для
хранения целых значений. В
два раза больше типа byte.
Разрядность: 2 байта
Диапазон значений:
от ­32 768 до 32767
Разрядность и диапазон значений.
int (4 байта) –
от ­2 147 483 648 до 2 147 483 647
long (8 байт) –
от ­9223372036854775808 до
9 223 372 036 854 775 807
Разрядность и диапазон значений.
float (4 байта) –
от 3. 4е­038.. до 3. 4е+ 038
double (8 байт) –
от 1. 7е­308.. до 1. 7е+ 308
Разрядность и диапазон значений.
boolean – используется для
хранения логических значений
true или false.
Разрядность типа boolean зависит
от реализации JVM.
Дробные типы
Дробные числа сохраняются в
экспонициальной форме согласно
стандарта IEEE 754.
Дробные типы
Часть битов кодирует собой так
называемую мантиссу числа,
другая часть — показатель
порядка (степени), и ещё один бит
используется для указания знака
числа (0 — если число
положительное, 1 — если число
отрицательное).
Дробные типы
Математически это записывается так:
(-1)^s × M × 2^E,
где s — знак, M — мантисса, а E —
экспонента.
Экспонента записывается со сдвигом,
который можно получить по формуле,
приведённой выше.
double
Целочисленное деление на 0
генерирует исключение!
Деления на 0 чисел с плавающей
точкой является бесконечность (или
NaN в случае деления 0.0/0).
Так же есть константы
Double.NEGATIVE_INFINITY и
Double.POSITIVE_INFINITY, равные -1.0
/ 0.0 и 1.0 / 0.0 соответственно.
Имя переменной - идентификатор
Имя или идентификатор переменной
— это последовательность из строчных
и заглавных латинских букв, цифр, а
также символов «$» и «_».
Имя переменной может начинаться с
любого из перечисленных символов,
кроме цифры.
Java — язык, чувствительный к
регистру букв.
Синтаксис объявление
тип идентификатор;
int a;
short b;
char c, d;
char e;
Объявление c инициализацией
boolean b = true;
int a = 4;
short b = 10;
char c = 3, d = 5;
char c = 'F';
Ключевые слова
byte, short, int, long, float, double,
char, boolean
do, while, for, break, continue
if, else, switch, case, default, break
private, public, protected, final,
static, abstract, synchronized,
volatile, strictfp
Ключевые слова
false, true, null, return, void,
package, import
try, catch, finally, throw, throws
new, extends, implements, class,
instanceof, this, super
Константы
Константа — это именованная
ячейка памяти, способная хранить
данные, которые потом изменяться
не будут.
Константа — это переменная,
объявленная с ключевым словом
(модификатором) final. Также под
понятие константы можно подвести
понятие литерала.
Литералы
Литерал — это явно заданное в
коде значения одного из
допустимых типов, которые могут
использоваться в различных
выражениях языка (например, как
аргумент метода, выводящего что-
либо на экран).
Литералы
Литералы позволяют
задать в программе значения для
числовых, символьных и строковых
выражений, а также null-литералов
Литералы
Всего в Java определены
следующие виды литералов:
целочисленный (integer);
дробный (floating-point);
булевский (boolean);
символьный (character);
строковый (string);
null-литерал (null-literal).
Литералы целых типов
2 - литерал типа int
010 - литерал типа int заданный в
восьмеричной системе счисления
0x10 - литерал типа int заданный в
шестнадцатеричной системе счисления
2L - литерал типа long, можно
использовать строчную букву l (но не
рекомендуется)
Литералы целых типов
Начиная с JDK 7 можно использовать
целочисленные литералы в двоичной
системе. Для этого нужно использовать
префикс 0b или 0B:
int x = 0b1010;
Литералы целых типов
Начиная с JDK 7 можно вставлять
символы подчёркивания для
облегчения чтения больших числовых
литералов:
int x = 123_456_789;
double num = 8_343_398.0;
Литералы дробных типов
2F - литерал типа float, можно
использовать строчную букву f
2D - литерал типа double, можно
использовать строчную букву d
1.2 - литерал типа double
Литералы дробных типов
2e5 - литерал типа double, записанный в
научной нотации, число после e надо
воспринимать как показатель степени
десятки, на которую умножается число
указанное до e, т.е. в данном случае
записано число 2*10^5 = 200000
Литералы дробных типов
-1.23e-3 - литерал типа double,
-1.23*10-3
= -0.00123
2e-2f - литерал типа float,
численно равен 0.02
Символьные литералы
Символьные литералы
представляют собой один
символ и заключаются в
одинарные кавычки ˊsˊ, ˊaˊ.
Допускается запись символа
через Unicode u0041ˊ ˊ –
латинская буква ‘A’.
Специальные символы
b u0008 забой
t u0009 табуляция
n u000a конец строки
f u000c конец страницы
r u000d возврат каретки
Специальные символы
" u0022 "-двойная кавычка
' u0027 '-одинарная кавычка
 u005c -обратная косая
черта
восьмеричный код u0000 to
u00ff Код символа в
восьмеричном формате.
Литералы типа boolean
false – ложь
true - истина
Оператор
Оператор — это нечто,
выполняющее некоторое действие
над одним или двумя аргументами
(называемое операндами) и
выдающее результат.
Оператор
Синтаксически операторы чаще
всего размещаются между
идентификаторами или
литералами.
int a =3 + 3;
int b = 4 - 2;
int x = a + b - 2;
Разделители
Разделители – специальные
символы, используемые в
конструкциях языка
() { } [ ] ; , .
Операторы
Операторы в языке Java — это
специальные символы (или слова),
которые сообщают компилятору о
том, что вы хотите выполнить
операцию с не-которыми
операндами.
Унарные операторы
Операторы которые требуют
только один операн-да,
называются унарными.
Бинарные операторы
Операторы которые требуют
два операнда называются
бинарными.
Тернарные операторы
Операторы которые требуют
три операнда называются
тернарными.
Постфиксная и префиксная форма
Одни операторы ставятся перед
операндами и
называются префиксными, другие —
после, их называют постфиксными
операторами.
Большинство же операторов ставят
между двумя операндами, такие
операторы называют-ся инфиксными
бинарными операторами.
Оператор присваивания
x = 3; y = x; z = x;
многократное использование операции
присваивания в одном выражении
x1 = x2 = x3 = 0;
Не рекомендуется так делать.
Унарные операторы
Унарные операторы — производят
действие с одним аргументом или
выражением
 унарный минус "-" – меняет знак
числа или выражения на
противоположный;
 унарный плюс "+" – не выполняет
никаких действий над числом или
выражением;
Унарные операторы
инкремент "++"– увеличивает
значение переменной на 1;
декремент "--" – уменьшает
значение переменной на 1.
Бинарные операторы
Бинарные операторы —
используют два аргумента
(например сложение,
вычитание, умножение и т.д.)
Арифметические операторы
+ Сложение
- Вычитание
* Умножение
/ Деление
% Вычисление
остатка
++ Инкремент
-- Декремент
int a = 5 + 5;
a = b * c;
b++;
a = 10 % 2;
Операторы сравнения
== (равенство),
!= (неравенство),
> (больше),
>= (больше или равно),
< (меньше)
<= (меньше или равно)
Логические (булевые) операторы
Логические операции
операции выполняются над
переменными типа boolean и их
результатом также является
значение типа boolean.
Используются для построени
логических выражений.
Булевые операторы
!
отрицание – изменяет
false на true, и наоборот
Булевые операторы
&
операция И – результат
равен true, только, если оба
операнда равны true, иначе
результат – false;
Булевые операторы
|
операция ИЛИ – результат
равен true, только, если хотя бы
один из операндов равен true,
иначе результат – false.
Булевые операторы
^
операция исключающее ИЛИ –
результат равен true, только, если
операнды не равны друг другу,
иначе результат – false.
Таблица булевых логических операторов
Оператор
Результат
Оператор
Результат
& Логическое
И (AND)
&= И (AND)
присваиванием
| Логическое
ИЛИ (OR)
|= ИЛИ (OR) с
присваиванием
^ Логическое
Исключающее
ИЛИ(XOR)
^= исключающее ИЛИ
(XOR) с
присваиванием
Таблица булевых логических
операторов
|| оператор OR
быстрой оценки
Выражений
(short circuit OR)
==  Равно
&& оператор AND
быстрой оценки
Выражений
(short circuit AND)
!=  не равно
! логическое унарное
отрицание (NOT)
? : Тернарный
оператор if-then-else
Тернарная операция
[условие] ? [выражение-1] : [выражение-2].
int x = (n > 1) ? 0 : 1;
Тернарная операция
(от лат. ternarius — «тройной») —
возвращающает значение второго
или третьего операнда в
зависимости от значения
логического выражения, заданного
первым операндом.
Комбинированные операторы
В Java для арифметических,
булевых и битовых операций
можно использовать
комбинированные
(составные) знаки операций.
Комбинированные операторы
X = X + 2;
Это эквивалентно следующей
операции:
X += 2;
Примеры комбинированных
операций
1. Выражение x += b означает x = x + b.
2. Выражение x -= b означает x = x - b.
3. Выражение x *= b означает x = x * b.
4. Выражение x /= b означает x = x / b.
5. Выражение x %= b означает x = x % b.
6. Выражение x &= b означает x = x & b.
7. Выражение x |= b означает x = x | b.
8. Выражение x ^= b означает x = x ^ b.
9. Выражение x <<= b означает x = x << b.
10. Выражение x >>= b означает x = x >> b.
11. Выражение x >>>= b означает x = x >>> b.
Приоритетов операторов
В java все операторы имеют свой
приоритет при выполнении
операций.
Приоритет может быть изменен с
использованием круглых скобок.
Таблица приоритетов операторов
Операция Описание
() [ ] Круглые и квадратные скобки
++ -- + -~ !
Декремент, инкремент, унарный плюс, 
унарный минус, поразрядное отрицание, 
логическое отрицание
* / % Умножение, деление, остаток от деления
+ - Сложение, вычитание
>> >>> << Побитовый сдвиг вправо, побитовый 
сдвиг вправо с заполнением старшего 
бита нулем, побитовый сдвиг влево
> >= < <= Сравнение на больше, больше или равно, 
меньше, меньше или равно
Таблица приоритетов операторов
== != Сравнение на равенство, сравнение 
на неравенство
& Поразрядное и логическое И
^ Поразрядное и логическое 
исключающее ИЛИ
| Поразрядное и логическое ИЛИ
&& Логическое укороченное И
|| Логическое укороченное ИЛИ
? : Условная операция
=op Комбинированные операции (op – 
одна из арифметических или 
побитовых операций)

Contenu connexe

Tendances

9. java lecture library
9. java lecture library9. java lecture library
9. java lecture library
MERA_school
 
Массивы в Java
Массивы в JavaМассивы в Java
Массивы в Java
metaform
 
5. java lecture io
5. java lecture io5. java lecture io
5. java lecture io
MERA_school
 

Tendances (19)

Stream API
Stream APIStream API
Stream API
 
Java. Массивы. Многомерные массивы.
Java. Массивы. Многомерные массивы.Java. Массивы. Многомерные массивы.
Java. Массивы. Многомерные массивы.
 
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки.  ПеречисленияюJava. Введение в коллекции. Классы обертки.  Перечисленияю
Java. Введение в коллекции. Классы обертки. Перечисленияю
 
Discovering Lambdas in Java 8
Discovering Lambdas in Java 8Discovering Lambdas in Java 8
Discovering Lambdas in Java 8
 
List - списки
List - списки List - списки
List - списки
 
Java. Generic - шаблонные типы.
Java.  Generic - шаблонные типы.Java.  Generic - шаблонные типы.
Java. Generic - шаблонные типы.
 
десант презентация
десант презентациядесант презентация
десант презентация
 
Исключения и ошибки
Исключения и ошибкиИсключения и ошибки
Исключения и ошибки
 
Java. Сборщик мусора. Работа с памятью.
Java.  Сборщик мусора. Работа с памятью. Java.  Сборщик мусора. Работа с памятью.
Java. Сборщик мусора. Работа с памятью.
 
9. java lecture library
9. java lecture library9. java lecture library
9. java lecture library
 
Массивы в Java
Массивы в JavaМассивы в Java
Массивы в Java
 
Ruby: работа с массивами
Ruby: работа с массивамиRuby: работа с массивами
Ruby: работа с массивами
 
5. java lecture io
5. java lecture io5. java lecture io
5. java lecture io
 
Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.
 
Java. Многопоточность.
Java. Многопоточность.Java. Многопоточность.
Java. Многопоточность.
 
Discovering Lambdas (Speech)
Discovering Lambdas (Speech)Discovering Lambdas (Speech)
Discovering Lambdas (Speech)
 
C++ Базовый. Занятие 05.
C++ Базовый. Занятие 05.C++ Базовый. Занятие 05.
C++ Базовый. Занятие 05.
 
Основы MATLAB. Программирование
Основы MATLAB. ПрограммированиеОсновы MATLAB. Программирование
Основы MATLAB. Программирование
 
Java. Наследование.
Java. Наследование.Java. Наследование.
Java. Наследование.
 

En vedette

En vedette (9)

Uml
UmlUml
Uml
 
Java. Интерфейс Reference - типы ссылок
Java. Интерфейс Reference -  типы ссылокJava. Интерфейс Reference -  типы ссылок
Java. Интерфейс Reference - типы ссылок
 
Java. Циклы.
Java. Циклы.Java. Циклы.
Java. Циклы.
 
Java. Инкапсуляция.
Java. Инкапсуляция.Java. Инкапсуляция.
Java. Инкапсуляция.
 
Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.
 
Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация
 
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.
 
Java. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьJava. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередь
 
An Introduction to JVM Internals and Garbage Collection in Java
An Introduction to JVM Internals and Garbage Collection in JavaAn Introduction to JVM Internals and Garbage Collection in Java
An Introduction to JVM Internals and Garbage Collection in Java
 

Similaire à Java. Переменные, типы данных, операторы

03_JavaBasicConstructionsAndDatatypes
03_JavaBasicConstructionsAndDatatypes03_JavaBasicConstructionsAndDatatypes
03_JavaBasicConstructionsAndDatatypes
dklenov
 
Msu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing JavaMsu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing Java
olegol
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Java
metaform
 
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данных
Елена Ключева
 
8 повторение основ алгоритмизации и программирования
8 повторение основ алгоритмизации и программирования8 повторение основ алгоритмизации и программирования
8 повторение основ алгоритмизации и программирования
Средняя школа № 10 г. Слонима
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013
AliyaAringazinova
 
01 - Знакомство с Java
01 - Знакомство с Java01 - Знакомство с Java
01 - Знакомство с Java
phearnot
 
Вторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ruВторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ru
Alexander Shcherbinin
 
javascript
javascriptjavascript
javascript
sovest
 

Similaire à Java. Переменные, типы данных, операторы (20)

Java - основы языка
Java - основы языкаJava - основы языка
Java - основы языка
 
03_JavaBasicConstructionsAndDatatypes
03_JavaBasicConstructionsAndDatatypes03_JavaBasicConstructionsAndDatatypes
03_JavaBasicConstructionsAndDatatypes
 
Msu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing JavaMsu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing Java
 
Типы данных
Типы данныхТипы данных
Типы данных
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Java
 
OOP in JavaScript - Presentation by Eugene Kalosha
OOP in JavaScript - Presentation by Eugene KaloshaOOP in JavaScript - Presentation by Eugene Kalosha
OOP in JavaScript - Presentation by Eugene Kalosha
 
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данных
 
8 повторение основ алгоритмизации и программирования
8 повторение основ алгоритмизации и программирования8 повторение основ алгоритмизации и программирования
8 повторение основ алгоритмизации и программирования
 
Step 2
Step 2Step 2
Step 2
 
Razbiraemsya s preobrazovaniem_tipov
Razbiraemsya s preobrazovaniem_tipovRazbiraemsya s preobrazovaniem_tipov
Razbiraemsya s preobrazovaniem_tipov
 
Типы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиТипы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотеки
 
ввод и вывод элементов массива
ввод и вывод элементов массиваввод и вывод элементов массива
ввод и вывод элементов массива
 
Обзор Ruby
Обзор RubyОбзор Ruby
Обзор Ruby
 
основы програмирования Pascal
основы програмирования Pascalосновы програмирования Pascal
основы програмирования Pascal
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013
 
Погружение в Dart
Погружение в DartПогружение в Dart
Погружение в Dart
 
01 - Знакомство с Java
01 - Знакомство с Java01 - Знакомство с Java
01 - Знакомство с Java
 
02 if for
02 if for02 if for
02 if for
 
Вторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ruВторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ru
 
javascript
javascriptjavascript
javascript
 

Plus de Unguryan Vitaliy

Работа в команде, управление программными проектами
Работа в команде, управление программными проектамиРабота в команде, управление программными проектами
Работа в команде, управление программными проектами
Unguryan Vitaliy
 

Plus de Unguryan Vitaliy (20)

Модульное тестирование.
Модульное тестирование. Модульное тестирование.
Модульное тестирование.
 
Архитектурный шаблон MVC
Архитектурный шаблон MVCАрхитектурный шаблон MVC
Архитектурный шаблон MVC
 
Работа в команде, управление программными проектами
Работа в команде, управление программными проектамиРабота в команде, управление программными проектами
Работа в команде, управление программными проектами
 
Системы контроля версий
Системы контроля версийСистемы контроля версий
Системы контроля версий
 
Принципы SOLID
Принципы SOLIDПринципы SOLID
Принципы SOLID
 
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.
 
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoF
 
Ввведение в java
Ввведение в javaВвведение в java
Ввведение в java
 
Введение в hibernate
Введение в hibernateВведение в hibernate
Введение в hibernate
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
Введение в Spring
Введение в SpringВведение в Spring
Введение в Spring
 
Cookies, session и другое в JSP
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSP
 
JSTL
JSTLJSTL
JSTL
 
JSP
JSPJSP
JSP
 
JDBC
JDBCJDBC
JDBC
 
Сервлеты
СервлетыСервлеты
Сервлеты
 
Сетевое взаимодействие
Сетевое взаимодействиеСетевое взаимодействие
Сетевое взаимодействие
 
Введение в сетевые технологии
Введение в сетевые технологииВведение в сетевые технологии
Введение в сетевые технологии
 
XML
XMLXML
XML
 

Java. Переменные, типы данных, операторы