Переменные и типы данных

 

  • · Переменная (Variable) – это именованная область памяти, которая хранит в себе некоторое значение, которое можно изменить.

  • · Инициализация переменной – это первое присвоение ей значения. Все последующие присвоения новых значений этой переменной, не считаются инициализацией.

  • · Технически, имена переменных могут начинаться со знака «_» – нижнее подчеркивание, знака «$» и с любого алфавитного символа (имена не могут начинаться с цифр и других символов).

  • · Для именования локальных переменных в Java, рекомендуется использовать соглашение camel Casing. Чтобы выделить слова в идентификаторе, первые буквы каждого слова (кроме первого) сделайте заглавными. Например, myAge, myName.

  • · Язык Java чувствительный к регистру (casesensitivity). Например, MyName и myName – это разные имена.

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

  • · Не используйте венгерскую нотацию. Суть венгерской нотации сводится к тому, что имена идентификаторов предваряются заранее оговорёнными префиксами, состоящими из одного или нескольких символов. Например, String sClientName; int iSize;

  • · Имена переменных должны быть понятны и передавать смысл каждого элемента.

  • · В редких случаях, если у идентификатора нет точного семантического значения, используйте общие названия. Например, value, item.

  • · При создании переменной, используйте название-псевдоним, когда это возможно, а не полное имя типа.

  • · Константа (Constant) – это область памяти, которая хранит в себе некоторое значение, которое нельзя изменить.

  • · Правила использования констант:

  • 1) Константам необходимо присваивать значение непосредственно в месте создания;

    2) Попытка присвоения константе нового значения приводит к ошибке уровня компиляции;

  • · Преобразование типа (Casting или Type conversion) – это преобразование значения переменной одного типа в значение другого типа. (Преобразование не следует путать с приведением типов – Cast) Выделяют явное (explicit) и неявное (implicit) преобразование типов.

  • · Неявное преобразование типа (безопасное) – преобразование меньшего типа в больший или целого типа в вещественный. Является безопасным, так как не происходит потеря точности.

  • · Явное преобразование типа (опасное) – преобразование большего типа в меньший или вещественного типа в целый. Является опасным, так как происходит потеря точности результата без округления.

  • · Возможно неявное преобразование значения константы большего типа в меньший, при инициализации переменной значением константы, если значение константы не превышает максимально допустимого значения переменной.

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

  • +(сложения),

    − (вычитания),

    *(умножения),

    / (деления),

    % (получения остатка от деления)

  • · Язык Java предоставляет большой набор математических функций для выполнения различных вычислений.

  • · Math.sqrt() – математическая функция которая извлекает квадратный корень. В аргументных скобках указываем значение числа, из которого хотим извлечь квадратный корень.

  • · Math.pow() – возведения числа в степень. В аргументных скобках через запятую указываем два аргумента (первый – число, которое хотим возвести в степень, второй – степень, в которую мы хотим возвести число).

  • · Операции умножения, деления, получения остатка от деления имеют больший приоритет, чем сложения и вычитания, поэтому выполнятся в первую очередь.

  • · При получении результата остатка от деления – знак результата не сокращается и соответствует значению первого операнда (делимого).

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

  • · Оператор инкремента (++) увеличивает свой операнд на 1. Оператор инкремента может находиться как перед операндом, так и после него: ++variable или variable++.

  • · Префиксная операция увеличения – результатом выполнения этой операции является использование значения операнда после его увеличения.

  • · Постфиксная операция увеличения – результатом выполнения этой операции является использование значения операнда перед его увеличением.

  • · Оператор декремента (--) уменьшает свой операнд на 1. Оператор декремента может находиться как перед операндом, так и после него: --variable или variable--.

  • · Префиксная операция декремента – результатом выполнения этой операции является использования значения операнда после его декремента.

  • · Постфиксная операция декремента – результатом этой операции является использование значения операнда до его декремента.

  • · К операциям сравнения можно отнести операции:

  • > больше,

    >= больше или равно,

    < меньше,

    <= меньше или равно.

  • · К операциям проверки на равенство можно отнести операции:

  • != не равно.

  • · Результатом выполнения операций сравнения и проверки на равенство неравенство всегда будет либо false или true.

  • · Для предопределенных типов значений оператор равенства (==) возвращает значение true, если значения его операндов совпадают, в противном случае – значение false. Для типа string оператор == сравнивает значения строк.

  • · Оператор неравенства (!=) возвращает значение false, если его операнды равны, в противном случае – значение true.

  • · Оператор сравнения "меньше или равно" (<=) возвращает значение true, если первый операнд меньше или равен второму, в противном случае возвращается значение false.

  • · Оператор сравнения "меньше" (<) возвращает значение true, если первый операнд меньше второго, в противном случае возвращается значение false.

  • · Оператор сравнения "больше" (>) возвращает значение true, если первый операнд больше второго, в противном случае возвращается значение false.

  • · Оператор сравнения "больше или равно" (>=) возвращает значение true, если первый операнд больше или равен второму, в противном случае возвращается значение false.

  • · Все арифметические операции, производимые над двумя значениями типа (byte, short) в качестве результата, возвращают значение типа int.

  • · Для типов int, long не происходит преобразования типа результата арифметических операций.

  • · Локальная область – участок кода, внутри класса или блок, который ограничен фигурными скобками.

  • · Область видимости переменной – часть текста программы, в которой имя можно явно использовать. Чаще всего область видимости совпадает с областью действия.

  • · Переменная созданная внутри локальной области называется локальной переменной, область ее действия - от открывающей скобки локальной области до ее окончания (закрывающей скобки) блока, включая все вложенные локальные области.

  • · Переменная уровня класса называется глобальной переменной или полем.

  • · В коде можно создавать локальные области и в двух разных локальных областях хранить одноименные переменные.

  • · Если в коде имеются локальные области, то запрещается хранить одноименные переменные за пределами локальных областей. И наоборот, если за пределами локальных областей уже созданы переменные с каким-то именем, то в локальных областях этого уровня запрещается создавать одноименные переменные.

  • · Конкатенация – сцепление строк или значений переменных типа string, для получения строк большего размера с помощью операции +.

  • · Для форматирования числовых результатов и вывода их на экран можно использовать метод System.out.print() или System.out.println(), который вызывает метод String.format(). Также, можно воспользоваться методом System.out.printf(), который выводит строку с заданным форматированием.

  • · Инструкция форматирования выглядит так:

  • %[argument_index$][flags][width][.precision]conversion, где

  • o % – специальный символ, обозначающий начало конструкции форматирования.

  • o [argument_index$] – целое десятичное число, указывающее позицию аргумента в списке аргументов (1$ – первый аргумент из списка, 4$ – четвёртый). Не является обязательной частью конструкции; если позиция не задана, то аргументы будут браться в порядке очередности.

  • o [flags] – специальные флаги форматирования. Не является обязательной частью конструкции.

  • o [width] – положительное целое десятичное число, определяет минимальное количество символов, которые будут выведены. Не является обязательной частью конструкции.

  • o [.precision] – положительное целое десятичное число с точкой перед ним. Используется для ограничения количества символов. Не является обязательной частью конструкции.

  • o Conversion – символ, указывающий как аргумент должен быть отформатирован. Не является обязательной частью конструкции.

  • == равно,

     

  •  
  • · Если значение константы превышает максимально допустимый диапазон значения переменной, такое преобразование возможно с потерей результата (все старшие биты будут отброшены).

  • · Оператор присвоения (=) сохраняет значение своего правого операнда в месте хранения (переменной) обозначенной в левом операнде. Операнды должны быть одного типа (или правый операнд должен допускать явное преобразование в тип левого операнда).

  • · Если после знака присвоения идет выражение с вычислением или передачей каких-либо значений, то данная операция выполняется справа-налево. Для повышения приоритета операции можно использовать круглые скобки ( ).

  • · Только четыре операции гарантируют порядок вычислений слева направо: ,, ?:, && и ||

  • · Язык Java предоставляет большой набор операторов, которые представляют собой символы, определяющие операции, которые необходимо выполнить с выражением. К операторам, которые выполняют арифметические операции можно отнести операторы:


Добавить комментарий