В Java для вывода результата на экран нужно воспользоваться командой System.out.println(3 + 4);
В данном примере выше будет ошибка компиляции “java: not a statement”.
Ошибки компиляции – это синтаксические ошибки в коде, которые препятствуют его компиляции.
Чтобы избежать этой ошибки в нашем случае, нужно выражению “3 + 4” присвоить числовую переменную, например
int result = 3 + 4;
и воспользоваться командой
System.out.println(result);
чтобы вывести на экран число 7.
В данном примере выше будет ошибка компиляции “java: not a statement”.
Ошибки компиляции – это синтаксические ошибки в коде, которые препятствуют его компиляции.
Чтобы избежать этой ошибки в нашем случае, нужно выражению “3 + 4” присвоить числовую переменную, например
int result = 3 + 4;
и воспользоваться командой
System.out.println(result);
чтобы вывести на экран число 7.
👍13👨💻1
Логические операции в Java (И, ИЛИ и др.) выполняются с помощью логических операторов и применяются к аргументам операции (или операндам).
Важные логические операции:
Логическое сравнение, оно же “>”, “>=“, “<“, “<=“ (знаки больше/меньше) и “==“ (сравнение двух аргументов).
Логическое неравенство. Обозначается как “!=“ и говорит о неравенстве двух аргументов.
Логическое И, оно же AND или конъюнкция. Обозначается символом “&” между двумя операндами.
Логическое ИЛИ, оно же OR или дизъюнкция. В Java обозначается символом “|” между двумя операндами.
Логическое отрицание, оно же NOT или инверсия. В Java обозначается символом “!” перед операндом. Применяется к одному операнду (которое true или false).
Важные логические операции:
Логическое сравнение, оно же “>”, “>=“, “<“, “<=“ (знаки больше/меньше) и “==“ (сравнение двух аргументов).
Логическое неравенство. Обозначается как “!=“ и говорит о неравенстве двух аргументов.
Логическое И, оно же AND или конъюнкция. Обозначается символом “&” между двумя операндами.
Логическое ИЛИ, оно же OR или дизъюнкция. В Java обозначается символом “|” между двумя операндами.
Логическое отрицание, оно же NOT или инверсия. В Java обозначается символом “!” перед операндом. Применяется к одному операнду (которое true или false).
👍7🤓3🤔2
Модификаторы доступа в Java — это ключевые слова, которые регулируют уровень доступа к разным частям кода.
Всего в Java есть четыре модификатора доступа.
private – ограничивает видимость данных и методов пределами одного класса.
default (package visible) – не обозначается ключевым словом, поскольку установлен в Java по умолчанию для всех полей и методов. Ограничивает видимость в пределах одного пакета.
protected – поля и методы будут видны:
- в пределах всех классов, находящихся в том же пакете;
- в пределах всех классов-наследников класса.
public – видимость не ограничена. Также используется в основном методе любого приложения на Java:
public static void main(String[] args) {}
Всего в Java есть четыре модификатора доступа.
private – ограничивает видимость данных и методов пределами одного класса.
default (package visible) – не обозначается ключевым словом, поскольку установлен в Java по умолчанию для всех полей и методов. Ограничивает видимость в пределах одного пакета.
protected – поля и методы будут видны:
- в пределах всех классов, находящихся в том же пакете;
- в пределах всех классов-наследников класса.
public – видимость не ограничена. Также используется в основном методе любого приложения на Java:
public static void main(String[] args) {}
👍6🔥3🤔1🤩1
Cпециальный модификатор final
Он, можно сказать, “цементирует” те участки нашей программы, где нам нужно постоянное, не меняющееся поведение.
Его можно применять в классах, методах и переменных.
Если в объявлении класса стоит модификатор final, это значит, что от данного класса нельзя наследоваться. Все его методы тоже становятся final, а значит их нельзя переопределить.
В Java уже реализовано много final-классов. Наиболее известный из тех, которыми мы постоянно пользуемся — String.
final-переменные по-другому называются константами. Первое значение, присвоенное константе, нельзя изменить.
Он, можно сказать, “цементирует” те участки нашей программы, где нам нужно постоянное, не меняющееся поведение.
Его можно применять в классах, методах и переменных.
Если в объявлении класса стоит модификатор final, это значит, что от данного класса нельзя наследоваться. Все его методы тоже становятся final, а значит их нельзя переопределить.
В Java уже реализовано много final-классов. Наиболее известный из тех, которыми мы постоянно пользуемся — String.
final-переменные по-другому называются константами. Первое значение, присвоенное константе, нельзя изменить.
👍5❤3🔥1🤓1👨💻1
Иммутабельность в Java
Иммутабельный (неизменяемый, immutable) класс — это класс, который после инициализации не может изменить свое состояние. То есть если в коде есть ссылка на экземпляр иммутабельного класса, то любые изменения в нем приводят к созданию нового экземпляра.
- Должен быть объявлен как final. Чтобы запретить от него наследоваться.
- Все поля класса должны быть приватными в соответствии с принципами инкапсуляции.
- Для корректного создания экземпляра в нем должны быть параметризованные конструкторы, через которые осуществляется первоначальная инициализация полей класса.
- Для исключения возможности изменения состояния после инстанцирования, в классе не должно быть сеттеров.
- Для полей-коллекций необходимо делать глубокие копии, чтобы гарантировать их неизменность.
Из того, что железобетонно нужно запомнить — все классы-обертки над примитивными типами — неизменяемые. Integer, Byte, Character, Short, Boolean, Long, Double, Float — все эти классы создают Immutable объекты.
Иммутабельный (неизменяемый, immutable) класс — это класс, который после инициализации не может изменить свое состояние. То есть если в коде есть ссылка на экземпляр иммутабельного класса, то любые изменения в нем приводят к созданию нового экземпляра.
- Должен быть объявлен как final. Чтобы запретить от него наследоваться.
- Все поля класса должны быть приватными в соответствии с принципами инкапсуляции.
- Для корректного создания экземпляра в нем должны быть параметризованные конструкторы, через которые осуществляется первоначальная инициализация полей класса.
- Для исключения возможности изменения состояния после инстанцирования, в классе не должно быть сеттеров.
- Для полей-коллекций необходимо делать глубокие копии, чтобы гарантировать их неизменность.
Из того, что железобетонно нужно запомнить — все классы-обертки над примитивными типами — неизменяемые. Integer, Byte, Character, Short, Boolean, Long, Double, Float — все эти классы создают Immutable объекты.
👍5👨💻3👀2❤1
Конкатенация строк в Java
Конкатенация или другими словами объединение используется при работе со строками (тип данных String) и означает слияние, "склеивание" двух строк в одну.
На картинке в коде объявлены две переменные типа String и им присвоены значения.
А дальше мы осуществили конкатенацию строк, то есть как бы "склеили" отдельные строчки в одну строчку с помощью оператора +.
Если Вы попробуете запустить этот код на своём компьютере, то в консоли увидите следующее:
Сегодня утро доброе
Сегодня утро не доброе, потому что сегодня понедельник
Конкатенация или другими словами объединение используется при работе со строками (тип данных String) и означает слияние, "склеивание" двух строк в одну.
На картинке в коде объявлены две переменные типа String и им присвоены значения.
А дальше мы осуществили конкатенацию строк, то есть как бы "склеили" отдельные строчки в одну строчку с помощью оператора +.
Если Вы попробуете запустить этот код на своём компьютере, то в консоли увидите следующее:
Сегодня утро доброе
Сегодня утро не доброе, потому что сегодня понедельник
👍2👌2🔥1
Метод .concat() в Java
Конкатенацию строк можно осуществлять не только с помощью оператора +, есть еще несколько способов.
Например, часто используемый метод для слияния строк в Java так и называется .concat() – от concatenation.
Метод .concat() в Java является одним из методов класса String и добавляет одну строку в конец к другой строке.
Синтаксис метода:
public String concat(String anotherString);
Если мы запустим данный код на своем компьютере, то в консоли увидим следующее:
У меня есть цель на ближайший год.Я должен стать Java разработчиком.
И так мы:
– добавили к значению переменной sentence "У меня есть цель на ближайший год." предложение "Я должен стать Java разработчиком."
– И в результате получили новое значение переменной sentence "У меня есть цель на ближайший год.Я должен стать Java разработчиком."
Конкатенацию строк можно осуществлять не только с помощью оператора +, есть еще несколько способов.
Например, часто используемый метод для слияния строк в Java так и называется .concat() – от concatenation.
Метод .concat() в Java является одним из методов класса String и добавляет одну строку в конец к другой строке.
Синтаксис метода:
public String concat(String anotherString);
Если мы запустим данный код на своем компьютере, то в консоли увидим следующее:
У меня есть цель на ближайший год.Я должен стать Java разработчиком.
И так мы:
– добавили к значению переменной sentence "У меня есть цель на ближайший год." предложение "Я должен стать Java разработчиком."
– И в результате получили новое значение переменной sentence "У меня есть цель на ближайший год.Я должен стать Java разработчиком."
👍8🔥1🤔1
Для чего используется StringBuilder?
Обычно StringBuilder используется, если нужно создать строку в несколько этапов, используя несколько операций конкатенации:
С помощью метода StringBuilder.append() мы изменяем значение, хранящееся внутри экземпляра StringBuilder. Эта операция очень дешёвая в использовании памяти в отличие создания новых объектов.
Излишнее использование оператора + приводит к тому, что JVM постоянно создаёт новые объекты, захламляя память и тратя дополнительные ресурсы на освобождение памяти от мусора.
Обычно StringBuilder используется, если нужно создать строку в несколько этапов, используя несколько операций конкатенации:
С помощью метода StringBuilder.append() мы изменяем значение, хранящееся внутри экземпляра StringBuilder. Эта операция очень дешёвая в использовании памяти в отличие создания новых объектов.
Излишнее использование оператора + приводит к тому, что JVM постоянно создаёт новые объекты, захламляя память и тратя дополнительные ресурсы на освобождение памяти от мусора.
👍7👨💻2💯1
Для чего нужен StringBuffer?
StringBuffer – это предшественник StringBuilder с теми же методами, но имеющий характерную особенность – методы StringBuffer синхронизированы, то есть класс потокобезопасен. StringBuilder же не является потокобезопасным, следовательно, его экземпляры должны использоваться только в одном потоке.
В большинстве случаев, выбирая между этими двумя классами, рекомендуется использовать именно StringBuilder, если не требуется потокобезопасность.
StringBuffer – это предшественник StringBuilder с теми же методами, но имеющий характерную особенность – методы StringBuffer синхронизированы, то есть класс потокобезопасен. StringBuilder же не является потокобезопасным, следовательно, его экземпляры должны использоваться только в одном потоке.
В большинстве случаев, выбирая между этими двумя классами, рекомендуется использовать именно StringBuilder, если не требуется потокобезопасность.
👍5🔥2✍1❤1
Чем различается frontend и backend разработка?
Frontend и backend – это как сцена и закулисье веб-приложения.
Фронтендеры разрабатывают интерфейсы, изучая и учитывая пользовательский опыт (UX), а бэкенд-программисты создают «внутрянку» сервиса, которая работает без участия пользователя.
Иными словами, frontend – та часть сайта, которую видит пользователь. Backend видит только разработчик, это программно–аппаратная часть, она находится на сервере.
К технологиям разработки frontend относятся HTML, CSS, JavaScript.
К технологиям backend разработки относятся Java, PHP, Python, JavaScript и другие.
Frontend и backend – это как сцена и закулисье веб-приложения.
Фронтендеры разрабатывают интерфейсы, изучая и учитывая пользовательский опыт (UX), а бэкенд-программисты создают «внутрянку» сервиса, которая работает без участия пользователя.
Иными словами, frontend – та часть сайта, которую видит пользователь. Backend видит только разработчик, это программно–аппаратная часть, она находится на сервере.
К технологиям разработки frontend относятся HTML, CSS, JavaScript.
К технологиям backend разработки относятся Java, PHP, Python, JavaScript и другие.
👍5😁2👀2✍1
Как взаимодействуют frontend и backend?
Взаимодействие фронтенда и бэкенда происходит по кругу:
– клиентская часть приложения (фронтенд) отправляет пользовательскую информацию на сервер (бэкенд);
– программа на сервере обрабатывает информацию (бэкенд);
– информация возвращается клиентской стороне (фронтенд) в понятной для пользователя форме.
Несмотря на то что бэкендом и фронтендом занимаются разные специалисты, каждому из них желательно понимать принципы, по которым работают коллеги.
Обязанности фронтенд– и бэкенд–разработчиков, как правило, разделены, но иногда программист решает проблемы как на стороне сервера, так и в клиентской части. Таких специалистов называют фулстек–разработчиками.
Взаимодействие фронтенда и бэкенда происходит по кругу:
– клиентская часть приложения (фронтенд) отправляет пользовательскую информацию на сервер (бэкенд);
– программа на сервере обрабатывает информацию (бэкенд);
– информация возвращается клиентской стороне (фронтенд) в понятной для пользователя форме.
Несмотря на то что бэкендом и фронтендом занимаются разные специалисты, каждому из них желательно понимать принципы, по которым работают коллеги.
Обязанности фронтенд– и бэкенд–разработчиков, как правило, разделены, но иногда программист решает проблемы как на стороне сервера, так и в клиентской части. Таких специалистов называют фулстек–разработчиками.
👍9✍1
Класс Object
В Java есть специальный суперкласс Object, который является родителем для всех остальных классов.
Поэтому ссылочная переменная класса Object может ссылаться на объект любого другого класса. Поэтому объекты всех классов могут реализовать те методы, которые определены в классе Object.
Методы класса Object:
– Class<?> getClass() – получает класс объекта во время выполнения;
– int hashCode() – возвращает хэш-код, связанный с вызывающим объектом;
– boolean equals(Object obj) – определяет, равен ли один объект другому;
– String toString() – возвращает строку, описывающую объект;
– Object clone() – создаёт новый объект, не отличающийся от клонируемого;
– void finalize() – вызывается перед удалением неиспользуемого объекта;
– void notify() – возобновляет выполнение потока, который ожидает вызывающего объекта;
– void notifyAll() – возобновляет выполнение всех потоков, которые ожидают вызывающего объекта;
– void wait() – ожидает другого потока выполнения.
В Java есть специальный суперкласс Object, который является родителем для всех остальных классов.
Поэтому ссылочная переменная класса Object может ссылаться на объект любого другого класса. Поэтому объекты всех классов могут реализовать те методы, которые определены в классе Object.
Методы класса Object:
– Class<?> getClass() – получает класс объекта во время выполнения;
– int hashCode() – возвращает хэш-код, связанный с вызывающим объектом;
– boolean equals(Object obj) – определяет, равен ли один объект другому;
– String toString() – возвращает строку, описывающую объект;
– Object clone() – создаёт новый объект, не отличающийся от клонируемого;
– void finalize() – вызывается перед удалением неиспользуемого объекта;
– void notify() – возобновляет выполнение потока, который ожидает вызывающего объекта;
– void notifyAll() – возобновляет выполнение всех потоков, которые ожидают вызывающего объекта;
– void wait() – ожидает другого потока выполнения.
👀3✍2👍2
Метод getClass()
Метод getClass() можно вызвать только на экземпляре (объекте) какого-либо класса и это позволит получить тип данного объекта:
Person tom = new Person("Tom");
System.out.println(tom.getClass()); // class Person
.getClass() нельзя вызвать у переменной примитивного типа!
public final Class getClass()
;Метод getClass() можно вызвать только на экземпляре (объекте) какого-либо класса и это позволит получить тип данного объекта:
Person tom = new Person("Tom");
System.out.println(tom.getClass()); // class Person
.getClass() нельзя вызвать у переменной примитивного типа!
👍3🔥2👏2