какие значения можно сохранить в переменной типа int java
Переменные и типы данных в Java
Синтаксис является основой любого языка программирования. Java не является исключением. Поэтому если ты собираешься в будущем стать разработчиком, необходимо начать с азов. В этой статье мы рассмотрим, какие переменные бывают в языке Java и каковы основные типы данных.
Для того, чтобы тебе было проще понять, что такое переменная, вернемся к школьному курсу и вспомним простую формулу:
Если мы подставим значение к «х», например, х = 1, то значение выражения будет равно «2». Соответственно, если х = 2, значение выражения будет «3» и так далее. Как видишь, все достаточно просто. «Х» в нашем случае переменная, куда мы помещаем любое значение. Подставляя его в формулу, мы получаем определенный результат.
В языке программирования переменная – это своего рода контейнер или ящичек, куда можно положить любое значение, чтобы оно там хранилось до определенного момента, пока это значение нам не потребуется для каких-то вычислений.
В этом языке программирования выделяют четыре типа переменных:
Как видно, всего переменных 8, однако есть еще и девятый тип переменных – void. Но этот тип мы не будем рассматривать в данной статье. Познакомимся поближе с каждым из типов переменных.
Уже из названия понятно, что в качестве значения таким переменным присваиваются целые числа. Например, это может быть 5, 10, 25, 100 и так далее. Причем они могут быть как положительными, так и отрицательными, в зависимости от потребности разработчика. А теперь рассмотрим подробнее каждый из видов переменных:
В принципе, несложно понять, когда и в какой ситуации использовать каждую из этих переменных. Но для закрепления приведем маленький пример. Предположим, у Васи 5 апельсинов, а у Кати и Ани по 3. Нужно определить сколько всего апельсинов у ребят. Нетрудно догадаться, что здесь требуется использование целочисленных переменных, так как апельсины целые и не предполагается, что их будут делить на дольки.
Теперь нам нужно понять, какую именно переменную использовать. Здесь важно вспомнить, какое именно значение может принимать та или иная целочисленная переменная. Например, мы точно знаем, что количество апельсинов не будет выходить за пределы 127. В этом случае, можно смело объявлять byte.
Дальше, представим, что Вася, Катя и Аня выросли и стали заниматься поставками апельсинов. Теперь у каждого больше 1000 единиц этого вкусного фрукта. Объявлять byte мы больше не сможем. Если количество апельсинов не превышает 32767, мы можем работать с short, если больше с int и так далее.
Несмотря на то, что в Java представлено 4 целочисленных переменных, чаще всего будет использоваться только int. Более того этот тип в языке считается по умолчанию. А теперь посмотрим, как в Java объявляются переменные.
Java Core для самых маленьких. Часть 3. Переменные
В предыдущей статье мы говорили о типах данных, а теперь поговорим о вытекающей из этого теме, о переменных.
На скриншоте выше продемонстрирован пример создания переменных.
Давайте сразу научимся давать имена переменным правильно. Существует документ Java Code Conventions. В нем указаны правила к написанию кода на Java. Нужно это для того, что бы Java код в разных проектах был написан в едином стиле. Таким образом, новоприбывший на проект программист не будет отвлекаться на новый стиль кода, ведь он будет оформлен так же, как и на других проектах. Эти правила работают и при нейминге переменных.
Итак, переменные принято называть в lowerCamelCase стиле. Сейчас покажу как хорошо, а как плохо:
Вот было значение 1998, а на следующей строке стало 2000. А вот с константой так не получится. Константа гарантирует, что ее значение не изменится на протяжении всего времени выполнения программы. Как создать константу? Очень просто:
Нужно всего лишь дописать ключевое слово final перед типом данных переменной. Для простоты понимания, мы как бы «финализируем» значение переменной и говорим, что это значение конечное.
Обратим внимание на имя константы. Когда мы даем имя константе, то должны делать это в стиле SCREAMING_SNAKE_CASE. Давайте исправим мой код:
В целом, вас никогда не погладят по головке за правильный нейминг в коде. Подразумевается, что это нечто естественное при написании кода. Как правила этикета у людей. А вот если вы будете называть ваши переменные и константы абы как, получите незамедлительного леща.
Инициализация переменных
У всех переменных из моих примеров уже было присвоено начальное значение. Процесс присвоения начального значения называется инициализацией переменной. И не обязательно инициализировать переменную во время ее объявления. Java позволяет сделать это и позже.
Во-первых, можно объявлять переменные через запятую (если они одинакового типа):
При этом, смотрите, мы можем некоторые из них инициализировать прямо во время объявления. А теперь инициализируем оставшиеся:
Для инициализации переменных типа char я использовал цепочку присваиваний. Да, и так тоже можно. Хотя используется очень редко.
Если мы попытаемся провести какую-то операция с переменной, у которой нет значения, то получим ошибку.
Оператор присваивания
Литералы
В Java постоянные значения задаются литеральным представлением. Простым языком, при помощи определенных символов мы можем указывать тип данных. Вот например, при работе с целочисленными литералами нам не нужны никакие литералы. Мы просто пишем число 1998; и Java понимает, что это целочисленное значение.
Так, что еще за символы подчеркивания в значении переменной? Это всего-навсего декор. С JDK 7 допустимо указывать знаки подчеркивания, для разбиения больших чисел на разряды, для удобства чтения.
В вышеописанных примерах были литералы для целочисленных десятичных значений. А еще мы можем присвоить целому числу литерал в виде восьмеричного значения. Для этого вам нужно добавить в самом начале значения 0. Но в таком случае, логично, что это значение не сможет содержать цифры 8 и 9, поскольку они выходят за пределы восьмеричной системы счисления.
Мало того, еще мы можем использовать литерал шестнадцатеричных значений. Такие значения обозначают с начальным 0x или 0X, а цифры в пределах от 10 до 15 заменяются символами ABCDEF английского алфавита.
С JDK 7 есть возможность указывать целочисленные литералы в двоичном виде. Для этого вначале значения нужно указать 0b или 0B и соответственно в значениях можно использовать только цифры 0 и 1. В реальности, вам навряд ли понадобятся литералы шестнадцатеричных, восьмеричного или двоичных значений. Однако, знать о них нужно.
Литералы дробных чисел
Но существует и экспоненциальная форма записи этих чисел в виде 2.34e12;
Где число после символа ‘e’ обозначает степень 10-ти. Простыми словами, мы записали 2 целых и 34 сотых умноженное на 10 в 12 степени.
Как и в случае с целочисленными значениями, литералы с плавающей точкой поддерживают нижнее подчеркивание начиная с JDK 7.
Логические литералы
Символьные литералы
Для символьных литералов, которые присутствуют на вашей клавиатуре вы можете использовать одинарные кавычки, обернув ими необходимый вам символ введенный с клавиатуры.
Я не просто так обратил ваше внимание на символы с клавиатуры. Ведь существуют и такие символы, которых на клавиатуре нет, да и на символы они не похожи. Сейчас разберемся.
А вот если символ нельзя ввести непосредственно с клавиатуры, то для ввода таких символов используют ряд управляющих последовательностей. Например, символ переноса строки ‘\n’. Существуют последовательности, которые существуют для ввода значений в восьмеричной и шестнадцатеричной форме. Например, мы захотели ввести букву tu катаканы смайлик: ツ. Берем и пишем:
В данной таблице вы можете посмотреть наиболее используемые последовательности символов:
Когда-то давно, я писал статью про экранирование символом. Настоятельно рекомендую прочитать, как дополнительный материал. Узнаете много интересного.
Строковый литерал
Можно заключить последовательность символов в двойные кавычки и получить так называемую строку.
Динамическая инициализация
Пару слов о таком термине как динамическая инициализация. Ничего сложного, только звучит страшно.
Переменную можно инициализировать другой переменной. Также, допускается инициализация переменной результатом какого-то выражения.
Главное, чтобы тип данных выражения / инициализирующей переменной совпадал с типом данных целевой переменной.
Преобразование и приведение типов
Знаю, вы уже подустали, сделали массу перерывов и подходов. Обещаю, это последняя тема в этой статье.
Часто программисты сталкиваются с ситуацией, когда переменной одного типа приходится присваивать значение другого типа. Если оба типа данных совместимы, их преобразование будет выполнено автоматически. Для автоматического преобразования должно выполняться 2 условия:
Чтобы выполнить преобразование двух несовместимых типов данных, нужно воспользоваться приведением типов. Это явное преобразование одного типа в другой. И выглядит это вот так:
Нужно понимать, что преобразование вы проводите на свой страх и риск. Вы должны быть уверенным в том, что преобразуемое значение помещается в диапазон целевого типа. В противном случае вы получите некорректные данные.
Подводим итоги
В этой статье мы поговорили о многих важных вещах. Узнали, как создавать переменные и константы в Java, и чем они отличаются. Узнали о способах инициализации переменных. Разобрались с тем, что такое литералы и какие они бывают. А так же выполнили преобразование и приведение типов данных.
Скажем спасибо Егору за предоставленный материал.
Переменные в Java 8
Содержание
Синтаксис объявления переменных в Java следующий:
Типы переменных
В Java есть четыре типа переменных:
Соглашение об именовании переменных
В языке программирования Java существуют следующие соглашения о именовании переменных:
Язык программирования Java является строго типизированным языком. Каждая переменная должна быть объявлена перед использованием с указанием своего типа, имени и, возможно, начального значения.
Типы данных
В Java имеется восемь примитивных типов данных:
Значения по умолчанию
Переменным, объявленным внутри методов, всегда должно быть присвоено значение перед использованием. Если попытаться использовать локальную переменную до явного присвоения значения, то выйдет ошибка компиляции.
С полями классов ситуация несколько иная. Если поле класса (не важно статическое или нет) не инициализировано каким-нибудь значением, то ему будет присвоено значение по умолчанию. Значение по умолчанию — это null или 0 соответствующего типа.
Следующая таблица показывает соответствие типа данных и значения по умолчанию:
Тип данных | Значение по умолчанию для полей |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
char | ‘\u0000’ |
String (или любой объект) | null |
boolean | false |
Литералы
Литерал — это запись в исходном коде, представляющая собой фиксированное значение.
Можно присвоить литерал переменной примитивного типа:
Java переменные
В предыдущих уроках мы говорили о том, что класс в Java состоит из атрибутов и методов. Переменные могут быть атрибутами класса, параметрами метода или могут использоваться в программе для краткосрочного хранения данных. В языке Java все переменные должны быть объявлены, перед тем, как они будут использоваться.
Объявление переменных в java
При объявлении переменной, в следующей последовательности указываются:
Пример: объявление переменных без инициализации:
После каждой строки при объявлении переменных необходимо ставить точку с запятой «;».
Если нужно объявить несколько переменных одного типа, то это также можно сделать одной строкой, указав имена переменных через запятую.
Правила именования переменных в java
Типы данных в java
Каждая переменная и каждое выражение в Java обладает типом и этот тип строго определен.
Примитивные типы данных
В Java существует 8 примитивных типов данных:
Эти 8 типов служат основой для всех остальных типов данных. Примитивные типы обладают явным диапазоном допустимых значений.
Переменные типа byte полезны при работе с потоком данных, который поступает из сети или файла.
Тип int используется чаще при работе с целочисленными данными, нежели byte и short, даже если их диапазона хватает. Это происходит потому, что при указании значений типа byte и short в выражениях, их тип все равно автоматически повышается до int при вычислении.
Тип удобен для работы с большими целыми числами.
float — диапазон допустимых значений от
Удобен для использования, когда не требуется особой точности в дробной части числа.
double — диапазон допустимых значений от
Математические функции такие как sin(), cos(), sqrt() возвращают значение double
char — символьный тип данных представляет собой один 16-битный Unicode символ. Он имеет минимальное значение ‘\ u0000’ (или 0), и максимальное значение ‘\ uffff’ (или 65535 включительно). Символы char можно задавать также при помощи соответствующих чисел. Например символ ‘Ы’ соответствует числу 1067. Рассмотрим на примере:
Вывод этой программы будет:
Небольшой пример того, как узнать, какому числу соответствует символ. Основан на претиповании данных.
На выводе программа показывает, что символу 'J' соответствует число 74.
boolean — предназначен для хранения логических значений. Переменные этого типа могут принимать только одно из 2х возможных значений true или false.
Тип String
Тип String не является примитивным типом данных, однако это один из наиболее используемых типов в Java. String предназначен для хранения строк текста. Несколько примеров использования String
Для строк определен оператор «+»
Ссылочные типы данных
В ссылочные типы входят все классы, интерфейсы, массивы. Описанный выше тип String также относится к ссылочным типам. Этот класс из стандартной библиотеки Java.
Также существуют классы-оболочки:
В отличие от примитивных типов, они пишутся с заглавной буквы. Эти типы соответствуют примитивным типам, однако являются ссылочными. Их классы cодержат методы для преобразования типов, а также другие константы и методы полезные при работе с примитивными типами данных.
В качестве типа также выступает любой созданный нами класс при создании инстанции класса. Вспомним прошлый урок, где мы создали класс Cat, а потом создали переменную ourcat типа Cat при создании экземпляра класса.
На этом закончим наше знакомство с переменными и типами в Java.
Итак, в этом уроке мы узнали какие бывают типы данных, научились объявлять переменные. В следующем уроке рассмотрим приведение типов.
Комментариев к записи: 15
Вопрос по типу String.
String myString = new String(«The weather was fine»);
Тут все понятно: создается объект myString класса(типа) String и методу-конструктору этого класса передается «The weather was fine» в качестве параметра.
Тогда что происходит здесь:
String myString = «The weather was fine»;
И в первом и во втором случае создается и инициализируется переменная типа String второй способ записи короче, и обычно используется он.
Спасибо за ответ (и за ответ по временам года — там все понятно), но тут хотелось бы уточнение. Как я понимаю String — это объектный тип, то есть попросту является классом со своим набором атрибутов и методов, а также имеет конструктор(насколько я правильно понял — это метод класса, имеющий имя своего класса и позволяющий задать параметры при создании объекта этого класса).
Я рассматриваю тип, как класс, а переменную, как объект.
Суть вопроса:
Если:
String myString = new String(«The weather was fine»);
тоже самое что:
String myString = «The weather was fine»;
тогда могу ли я также как во втором случае создавать объекты, например собственного класса, имеющего конструктор с параметрами?
Второй вариант это такая фишка, придуманная для типа String, что бы было проще им пользоваться, так как используется он очень часто, поэтому сделали так чтобы создавать переменную типа стринг было так же просто как и переменные примитивных типов. Но на самом деле String это объектный тип со всеми вытекающими, тут вы правы, поэтому как и для любого объектного типа для String имеется возможность создать объект при помощи ключевого слова new. Для своего собственного класса вы не сможете воспользоваться вторым вариантом при создании объекта.
Еще добавлю следующее пояснение из Java Tutorial
Во втором случае, то что заключено между кавычек является строковым литералом, каждый раз, когда такой литерал встречается в коде, компилятор создает объект типа String c этим значением.
Если с английским хорошо, то можете изучить эту сатью http://www.ntu.edu.sg/home/ehchua/programming/java/j3d_string.html Там подробно расписано про тип String особенно пункт 2.1 посмотрите
Теперь все понятно, спасибо большое 🙂
Во первых, спасибо Вам большое за отличный материал и доступную подачу!
Если я не ошибаюсь, у Вас небольшая ошибка в блоке:
» //объявление переменных типа byte.
byte getByte, putByte;
// инициализация переменных
byte getByte = 0;
byte putByte = 0;»
Во время инициализации переменных Вы указываете их тип, тем самым повторно объявляя их.
Спасибо за внимательность, исправила.
1. иначе она NULL будет
2. что переменная будет котом. тип Cat это указание того, что переменная может использовать методы из класса Cat и атрибуты у нее такие как описаны в классе Cat.
В предыдущем уроке перед вашим комментарием я отвечала Дмитрию и довольно подробно все расписала. Прочитайте, может поймете, если не поймете, то просто пока запомните эту конструкцию, может поймете в будущем на практике
из за того, что у Java подобный синтаксис — считать его упрощенным С++ неправильно
Как передать значение одной переменной другой, при условии что они разных типов? Например, от типа byte типу float?
преобразование переменных описано в уроке 7 http://study-java.ru/uroki-java/urok-7-preobrazovanie-tipov-v-java/ но конкретно перевода byte to float там нет, поэтому придеся гуглить
Java Core для самых маленьких. Часть 2. Типы данных
Вступление
В этой статье мы не будем использовать ранее установленную IDE и JDK. Однако не беспокойтесь, ваш труд не был напрасным. Уже в следующей статье мы будем изучать переменные в Java и активно кодить в IDEA. Эта же статья является обязательным этапом. И в начале вашего обучения, вы, возможно, будете не раз к ней возвращаться.
Что для нас означает строгая типизация? Это значит, что все данные и каждое выражение имеет конкретный тип, который строго определен. А также то, что все операции по передаче данных будут проверяться на соответствие типов. Поэтому давайте поскорее узнаем какие типы данных представлены в Java!
Примитивы
В языке Java существует 8, оскорбленных сообществом, примитивных типов данных. Их также называют простыми. И вот какие они бывают:
В дальнейшем, комбинируя эти самые примитивы, мы сможем получать более сложные структуры. Но об этом нам еще рано беспокоиться. Сейчас же рассмотрим каждый из примитивов подробнее.
Тип byte
Тип short
Тип int
Тип long
Используются при точных вычислениях, которые требуют результата с точностью до определенного знака после десятичной точки (вычисление квадратного корня, функции синуса или косинуса и прочего).
Тип float
32-разрядный тип данных с плавающей точкой. Требует в два раза меньше памяти и в некоторых процессорах выполняется быстрее, по сравнению с double. Но если значения слишком велики или слишком малы, то не обеспечивает требуемую точность вычислений. Используется когда нужно число с дробной частью, но без особой точности.
Тип double
На хранение требуется 64 бита. Рационально пользоваться double, когда нужно сохранить точность многократно повторяющихся вычислений или манипулировать большими числами.
Тип char
16-разрядный тип данных в диапазоне от 0 до 2^16. Хранит значения от 0 до 65536. Этот тип может хранить в себе полный набор международных символов на всех известных языках мира (кодировка Unicode). То есть, по сути, каждый символ представляет из себя какое-то число. А тип данных char позволяет понять, что это число является символом.
Тип boolean
Может принимать только 2 значения true или false. Употребляется в условных выражениях. К примеру 1 > 10 вернет false, а 1