Naming в Java. Как правильно называть методы и переменные?
Правильное именование методов и переменных в Java — ключевой момент для создания понятного и читаемого кода. Тем более в коммерческой разработке наш код читают и пользуются им другие разработчики, поэтому мы должны делать наименования максимально понятными для конкретных кейсов, чтобы не вводить никого в заблуждение. Вам за это мысленно скажут спасибо в будущем другие люди, которые придут на проект и окунутся в ваш код)
Вот несколько советов по неймингу:
1) Описание действия.
Название метода должно отражать выполняемое им действие. Например, calculateTotalAge() лучше, чем processData().
2) Избегайте сокращений.
Не используйте слишком много сокращений, чтобы ваш код был понятен. Например, getUserInfo() лучше, чем getUsrInfo().
3) CamelCase для переменных.
Принято использовать CamelCase для переменных, начиная с маленькой буквы. Например, totalCount или customerName.
4) Говорящие имена.
Имена переменных и методов должны быть говорящими. Это позволяет легче понимать их назначение. Например, calculateAverageAge().
5) Используйте английский.
Придерживайтесь английского языка для именования методов и переменных. Это стандарт и делает код более доступным для разработчиков со всего мира.
6) Избегайте однобуквенных имен.
Если только не используется для счетчиков в циклах, избегайте однобуквенных имен переменных. Например, index лучше, чем i.
7) Используйте нотацию для методов.
Используйте глагольную нотацию для методов (например, calculateTotal(), getUserInfo()). Иными словами, что метод делает, так его и называем.
8) Избегайте ненужных префиксов и суффиксов.
В большинстве случаев, они не несут дополнительной информации и только усложняют код.
9) Соблюдайте стандарты кодирования.
Если в проекте используются стандарты кодирования (например, Java Code Conventions), придерживайтесь их. Иными словами, код стайл проекта, которого придерживаются другие разработчики этого проекта.
Помните, что читаемость кода важнее краткости. Правильное именование сделает ваш код более понятным и поддерживаемым. Следуйте этим советам, и ваш код будет блеском чистоты и ясности! ✨
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Правильное именование методов и переменных в Java — ключевой момент для создания понятного и читаемого кода. Тем более в коммерческой разработке наш код читают и пользуются им другие разработчики, поэтому мы должны делать наименования максимально понятными для конкретных кейсов, чтобы не вводить никого в заблуждение. Вам за это мысленно скажут спасибо в будущем другие люди, которые придут на проект и окунутся в ваш код)
Вот несколько советов по неймингу:
1) Описание действия.
Название метода должно отражать выполняемое им действие. Например, calculateTotalAge() лучше, чем processData().
2) Избегайте сокращений.
Не используйте слишком много сокращений, чтобы ваш код был понятен. Например, getUserInfo() лучше, чем getUsrInfo().
3) CamelCase для переменных.
Принято использовать CamelCase для переменных, начиная с маленькой буквы. Например, totalCount или customerName.
4) Говорящие имена.
Имена переменных и методов должны быть говорящими. Это позволяет легче понимать их назначение. Например, calculateAverageAge().
5) Используйте английский.
Придерживайтесь английского языка для именования методов и переменных. Это стандарт и делает код более доступным для разработчиков со всего мира.
6) Избегайте однобуквенных имен.
Если только не используется для счетчиков в циклах, избегайте однобуквенных имен переменных. Например, index лучше, чем i.
7) Используйте нотацию для методов.
Используйте глагольную нотацию для методов (например, calculateTotal(), getUserInfo()). Иными словами, что метод делает, так его и называем.
8) Избегайте ненужных префиксов и суффиксов.
В большинстве случаев, они не несут дополнительной информации и только усложняют код.
9) Соблюдайте стандарты кодирования.
Если в проекте используются стандарты кодирования (например, Java Code Conventions), придерживайтесь их. Иными словами, код стайл проекта, которого придерживаются другие разработчики этого проекта.
Помните, что читаемость кода важнее краткости. Правильное именование сделает ваш код более понятным и поддерживаемым. Следуйте этим советам, и ваш код будет блеском чистоты и ясности! ✨
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5✍3🔥2👨💻2⚡1
Какой метод в Java используется для получения длины строки?
Anonymous Quiz
6%
getSize()
6%
size()
0%
count()
87%
length()
0%
Посмотреть ответ
👍3🎉2✍1🤓1
Отличие между == и .equals() в Java.
В Java существует два основных метода сравнения объектов: == и .equals(). Они имеют разные цели и поведение, и важно понимать, когда использовать каждый из них. Также вопрос о различии этих двух методов практически всегда присутствует на собеседовании уровня junior или trainee.
1) == (сравнение ссылок):
Оператор == сравнивает значения двух ссылок на объекты.
Возвращает true, если ссылки указывают на один и тот же объект в памяти, и false в противном случае.
Эффективен для примитивных типов данных. Пример на Картинке 1.
2) .equals() (сравнение содержимого):
Метод .equals() сравнивает содержимое объектов, а не их ссылки. И обычно переопределен в классах, чтобы определить равенство по логике приложения.
Часто используется для сравнения строк (пример на Картинке 1).
Переопределение метода .equals() также на Картинке 2.
Objects.equals():
Метод Objects.equals(a, b) может использоваться для сравнения двух объектов, учитывая возможность null.
Внутренне использует .equals(). Пример на Картинке 2.
Выбор между == и .equals() зависит от контекста и целей сравнения. Важно помнить о переопределении .equals() для пользовательских классов.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
В Java существует два основных метода сравнения объектов: == и .equals(). Они имеют разные цели и поведение, и важно понимать, когда использовать каждый из них. Также вопрос о различии этих двух методов практически всегда присутствует на собеседовании уровня junior или trainee.
1) == (сравнение ссылок):
Оператор == сравнивает значения двух ссылок на объекты.
Возвращает true, если ссылки указывают на один и тот же объект в памяти, и false в противном случае.
Эффективен для примитивных типов данных. Пример на Картинке 1.
2) .equals() (сравнение содержимого):
Метод .equals() сравнивает содержимое объектов, а не их ссылки. И обычно переопределен в классах, чтобы определить равенство по логике приложения.
Часто используется для сравнения строк (пример на Картинке 1).
Переопределение метода .equals() также на Картинке 2.
Objects.equals():
Метод Objects.equals(a, b) может использоваться для сравнения двух объектов, учитывая возможность null.
Внутренне использует .equals(). Пример на Картинке 2.
Выбор между == и .equals() зависит от контекста и целей сравнения. Важно помнить о переопределении .equals() для пользовательских классов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9✍2🔥2❤1
Может ли объект получить доступ к члену класса, объявленному как private? Если да, то каким образом?
☕️ Внутри класса доступ к приватной переменной открыт без ограничений;
☕️ Вложенный класс имеет полный доступ ко всем (в том числе и приватным) членам содержащего его класса;
☕️ Доступ к приватным переменным извне может быть организован через отличные от приватных методов, которые предоставлены разработчиком класса. Например: getX() и setX().
☕️ Через механизм рефлексии (Reflection API) (см. Картинку). Не рекомендуется использовать в проектах.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
☕️ Внутри класса доступ к приватной переменной открыт без ограничений;
☕️ Вложенный класс имеет полный доступ ко всем (в том числе и приватным) членам содержащего его класса;
☕️ Доступ к приватным переменным извне может быть организован через отличные от приватных методов, которые предоставлены разработчиком класса. Например: getX() и setX().
☕️ Через механизм рефлексии (Reflection API) (см. Картинку). Не рекомендуется использовать в проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍2👨💻2❤1🔥1🤓1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12👨💻2👍1
Какие из следующих слов являются ключевыми словами в Java?
Anonymous Quiz
8%
key, value, object
2%
function, loop, var
0%
execute, run, process
88%
return, static, final
2%
Посмотреть ответ
✍3👍2🎉2👨💻1
Вопрос из собеседования - Как и когда происходит увеличение количества корзин в HashMap?
Помимо capacity у HashMap есть еще поле loadFactor, на основании которого, вычисляется предельное количество занятых корзин capacity * loadFactor. По умолчанию loadFactor = 0.75.
По достижению предельного значения, число корзин увеличивается в 2 раза и для всех хранимых элементов вычисляется новое «местоположение» с учетом нового числа корзин.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Помимо capacity у HashMap есть еще поле loadFactor, на основании которого, вычисляется предельное количество занятых корзин capacity * loadFactor. По умолчанию loadFactor = 0.75.
По достижению предельного значения, число корзин увеличивается в 2 раза и для всех хранимых элементов вычисляется новое «местоположение» с учетом нового числа корзин.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍3👨💻2
Класс Object в Java.
Вопрос про класс Object и его методы очень часто встречается на собеседованиях. Это - база.
В Java есть специальный суперкласс 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–разработчика
✅ JavaStart. Подписаться
Вопрос про класс Object и его методы очень часто встречается на собеседованиях. Это - база.
В Java есть специальный суперкласс 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() – ожидает другого потока выполнения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍2👨💻2🔥1
Сегодня давайте поговорим о методе getClass() в Java.
getClass() - это метод, предоставляемый всеми объектами в Java, который возвращает объект типа Class. Но что это такое?
📘 Class - это специальный объект, который представляет собой метаинформацию о типе класса. С помощью getClass() мы можем получить доступ к этой метаинформации и узнать различные вещи о классе.
Например, мы можем узнать имя класса:
public class MyClass {
public static void main(String[] args) {
MyClass obj = new MyClass();
Class<?> clazz = obj.getClass();
System.out.println("Имя класса: " + clazz.getName());
}
}
Этот код выведет: Имя класса: com.example.MyClass.
💡 Почему это важно?
Метод getClass() может быть полезен, например, при рефлексии, когда нужно работать с классами во время выполнения программы. Метод очень полезен при отладке программы, чтобы найти возможную причину того или иного бага, особенно при разработке с использованием фреймворка Spring Boot.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
getClass() - это метод, предоставляемый всеми объектами в Java, который возвращает объект типа Class. Но что это такое?
📘 Class - это специальный объект, который представляет собой метаинформацию о типе класса. С помощью getClass() мы можем получить доступ к этой метаинформации и узнать различные вещи о классе.
Например, мы можем узнать имя класса:
public class MyClass {
public static void main(String[] args) {
MyClass obj = new MyClass();
Class<?> clazz = obj.getClass();
System.out.println("Имя класса: " + clazz.getName());
}
}
Этот код выведет: Имя класса: com.example.MyClass.
💡 Почему это важно?
Метод getClass() может быть полезен, например, при рефлексии, когда нужно работать с классами во время выполнения программы. Метод очень полезен при отладке программы, чтобы найти возможную причину того или иного бага, особенно при разработке с использованием фреймворка Spring Boot.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍2👍2👨💻2❤1🔥1
Что такое анонимный класс в Java?
Anonymous Quiz
18%
Это класс, который не может содержать методов
8%
Это класс, который явно (не анонимно) наследуется от другого класса
61%
Это класс, который не имеет имени
5%
Это класс, который не может быть использован в коде
8%
Посмотреть ответ
👍5✍2👨💻2❤1🔥1
Метод hashCode() в Java.
Сегодня мы поговорим о методе hashCode() в Java. Это как ключик, который открывает нам доступ к таинственному миру хранения объектов в коллекциях.
🔑 Что такое hashCode()?
hashCode() - это метод, который возвращает целочисленное значение (хэш-код) объекта. Этот код используется, например, при работе с коллекциями, чтобы быстро находить объекты.
🤔 Зачем он нужен?
Повышение производительности: Когда вы хотите найти объект в коллекции, быстрый доступ по хэш-коду ускоряет процесс.
Работа с коллекциями: HashSet, HashMap и другие коллекции используют hashCode() для эффективного хранения объектов.
Выведем представление ниже определенного объекта:
Person tom = new Person("Tom");
System.out.println(tom.hashCode()); // 2036368507
Метод .hashCode(), определенный классом Object, возвращает разные целые числа для разных объектов.
💡 Совет:
Библиотека Lombok в деле: если используете Lombok, аннотация @EqualsAndHashCode автоматически создаст hashCode().
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Сегодня мы поговорим о методе hashCode() в Java. Это как ключик, который открывает нам доступ к таинственному миру хранения объектов в коллекциях.
🔑 Что такое hashCode()?
hashCode() - это метод, который возвращает целочисленное значение (хэш-код) объекта. Этот код используется, например, при работе с коллекциями, чтобы быстро находить объекты.
🤔 Зачем он нужен?
Повышение производительности: Когда вы хотите найти объект в коллекции, быстрый доступ по хэш-коду ускоряет процесс.
Работа с коллекциями: HashSet, HashMap и другие коллекции используют hashCode() для эффективного хранения объектов.
Выведем представление ниже определенного объекта:
Person tom = new Person("Tom");
System.out.println(tom.hashCode()); // 2036368507
Метод .hashCode(), определенный классом Object, возвращает разные целые числа для разных объектов.
💡 Совет:
Библиотека Lombok в деле: если используете Lombok, аннотация @EqualsAndHashCode автоматически создаст hashCode().
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍3👨💻2
Метод .equals() в Java.
Сегодня мы поговорим о методе equals() в Java, как о ключевой команде для сравнения объектов.
💡 Зачем нужен equals()?
equals() - метод, который используется для сравнения содержимого объектов. Он позволяет ответить на вопрос: "Эти два объекта равны?"
🤔 Как его использовать:
1) Переопределение метода:
public class MyClass {
private String name;
private int age;
// ... конструктор, геттеры, сеттеры и другие методы
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // сравнение ссылок
if (obj == null || getClass() != obj.getClass()) return false; // проверка классов
MyClass myObject = (MyClass) obj;
return age == myObject.age && Objects.equals(name, myObject.name);
}
}
2) Сравнение с null:
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // ссылки идентичны
if (obj == null || getClass() != obj.getClass()) return false; // проверка классов
// ... остальной код
}
3) Использование Objects.equals():
return Objects.equals(name, myObject.name);
💡 Важное замечание:
- Переопределите hashCode(), если переопределяете equals(). Это очень важное правило, о котором спрашивают на каждом собеседовании на Java разработчика.
Библиотека Lombok в деле: если используете Lombok, аннотация @EqualsAndHashCode автоматически создаст equals().
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Сегодня мы поговорим о методе equals() в Java, как о ключевой команде для сравнения объектов.
💡 Зачем нужен equals()?
equals() - метод, который используется для сравнения содержимого объектов. Он позволяет ответить на вопрос: "Эти два объекта равны?"
🤔 Как его использовать:
1) Переопределение метода:
public class MyClass {
private String name;
private int age;
// ... конструктор, геттеры, сеттеры и другие методы
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // сравнение ссылок
if (obj == null || getClass() != obj.getClass()) return false; // проверка классов
MyClass myObject = (MyClass) obj;
return age == myObject.age && Objects.equals(name, myObject.name);
}
}
2) Сравнение с null:
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // ссылки идентичны
if (obj == null || getClass() != obj.getClass()) return false; // проверка классов
// ... остальной код
}
3) Использование Objects.equals():
return Objects.equals(name, myObject.name);
💡 Важное замечание:
- Переопределите hashCode(), если переопределяете equals(). Это очень важное правило, о котором спрашивают на каждом собеседовании на Java разработчика.
Библиотека Lombok в деле: если используете Lombok, аннотация @EqualsAndHashCode автоматически создаст equals().
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍3👨💻3⚡1
Сегодня наш путь ведет нас к методу toString() в Java, своего рода магическому зеркалу для объектов.
🌐 Что такое toString()?
Это метод, который возвращает строковое представление объекта. Когда мы вызываем его для объекта, он возвращает строку, представляющую его состояние.
💡 Зачем это нужно:
1) Отладка.
Удобно использовать toString() для вывода содержимого объекта в целях отладки.
2) Читаемость кода.
Полезно переопределять toString(), чтобы объекты были легко читаемы в логах или консоли.
🚀 Как использовать:
1) Простой вариант на Картинке 1:
public class MyClass {
private String name;
private int age;
// ... конструктор, геттеры, сеттеры и другие методы
@Override
public String toString() {
return "MyClass{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
2) Использование Objects.toString() на Картинке 2:
@Override
public String toString() {
return Objects.toString(name) + ", " + age;
}
3) Использование String.format() также на Картинке 2:
Override
public String toString() {
return String.format("Name: %s, Age: %d", name, age);
}
💡 Советы:
Библиотека Lombok в деле: если используете Lombok, аннотация @ToString автоматически создаст toString().
Переопределение toString() делает ваш код более читаемым и облегчает отладку.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
🌐 Что такое toString()?
Это метод, который возвращает строковое представление объекта. Когда мы вызываем его для объекта, он возвращает строку, представляющую его состояние.
💡 Зачем это нужно:
1) Отладка.
Удобно использовать toString() для вывода содержимого объекта в целях отладки.
2) Читаемость кода.
Полезно переопределять toString(), чтобы объекты были легко читаемы в логах или консоли.
🚀 Как использовать:
1) Простой вариант на Картинке 1:
public class MyClass {
private String name;
private int age;
// ... конструктор, геттеры, сеттеры и другие методы
@Override
public String toString() {
return "MyClass{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
2) Использование Objects.toString() на Картинке 2:
@Override
public String toString() {
return Objects.toString(name) + ", " + age;
}
3) Использование String.format() также на Картинке 2:
Override
public String toString() {
return String.format("Name: %s, Age: %d", name, age);
}
💡 Советы:
Библиотека Lombok в деле: если используете Lombok, аннотация @ToString автоматически создаст toString().
Переопределение toString() делает ваш код более читаемым и облегчает отладку.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3✍2👨💻2🔥1
Что такое "перегрузка методов" в Java?
Anonymous Quiz
1%
Возможность изменения значения переменной
1%
Возможность выполнения метода в обратном порядке
94%
Возможность создания метода с тем же именем, но с разными параметрами
3%
Возможность создания метода внутри метода
1%
Посмотреть ответ
👍3✍2🎉2👏1
Поговорим о методе clone() в Java, который открывает перед нами врата клонирования объектов.
🔍 Что такое clone()?
clone() - это метод, который используется для создания копии объекта. Он находится в интерфейсе Cloneable и создает поверхностную копию объекта.
🚀 Как использовать:
1) Имплементация интерфейса Cloneable (см. Картинку 1).
Объект, который мы хотим клонировать, должен реализовывать интерфейс Cloneable и переопределять метод clone().
2) Глубокое клонирование (см. Картинку 2).
В стандартной реализации clone() создается поверхностная копия объекта. Если вам нужно глубокое клонирование (с копированием вложенных объектов), вы должны переопределить clone() вручную.
3) Использование в коде (см. Картинку 2).
🛑 Осторожно:
Клонирование объектов может вызвать проблемы с производительностью и безопасностью. Иногда лучше использовать другие методы, такие как конструктор копирования или методы фабрики.
На практике в коммерческой разработке обычно используется клонирование с помощью метода конструктора, который создает новый объект.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
🔍 Что такое clone()?
clone() - это метод, который используется для создания копии объекта. Он находится в интерфейсе Cloneable и создает поверхностную копию объекта.
🚀 Как использовать:
1) Имплементация интерфейса Cloneable (см. Картинку 1).
Объект, который мы хотим клонировать, должен реализовывать интерфейс Cloneable и переопределять метод clone().
2) Глубокое клонирование (см. Картинку 2).
В стандартной реализации clone() создается поверхностная копия объекта. Если вам нужно глубокое клонирование (с копированием вложенных объектов), вы должны переопределить clone() вручную.
3) Использование в коде (см. Картинку 2).
🛑 Осторожно:
Клонирование объектов может вызвать проблемы с производительностью и безопасностью. Иногда лучше использовать другие методы, такие как конструктор копирования или методы фабрики.
На практике в коммерческой разработке обычно используется клонирование с помощью метода конструктора, который создает новый объект.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3✍2👨💻2🔥1