Нет. В таком случае компилятор выдаст ошибку:
"Illegal combination of modifiers: ‘abstract’ and ‘static’". Модификатор
abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🎄3
Класс, помеченный модификатором
abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов.Метод, помеченный ключевым словом
abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥3🎄1
byte — (byte)0;
short — (short)0;
int — 0;
long — 0L;
float — 0f;
double — 0d;
char — \u0000;
boolean — false;
Объекты (в том числе String) — null.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3
С помощью ключевого слова
super мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private.super.method();
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🎄3☃1⚡1
void и Void
В языке программирования Java ключевое слово
Для
Этот класс можно использовать, например, в случаях, когда у вас есть обобщенный класс и вы хотите, чтобы метод ничего не возвращал (т.е. чтобы пользователь класса не ожидал ничего особенного оттуда получить):
Или если в проекте регулярно используется Call
В языке программирования Java ключевое слово
void используется для указания, что метод не возвращает никакого значения. Метод с возвращаемым типом void выполняет определенные действия, но не производит результат, который можно было бы использовать в вызывающей части программы.Для
void еще есть класс обёртка Void. Класс Void — это класс-заполнитель который нельзя создать и который хранит ссылку на объект Class, представляющий ключевое слово Java void.Этот класс можно использовать, например, в случаях, когда у вас есть обобщенный класс и вы хотите, чтобы метод ничего не возвращал (т.е. чтобы пользователь класса не ожидал ничего особенного оттуда получить):
interface I<T> {
T doStuff();
}
class A implements I<Void> {
@Override
public Void doStuff() {
// ничего другого вернуть нельзя
return null;
}
}
Или если в проекте регулярно используется Call
able<T> для выполнения каких-то асинхронных задач и в тех ситуациях, когда результат работы задачи ничего не должен возвращать, можно реализовать Callable<Void>.👍16❤2🔥1👏1
Generics - это технический термин, обозначающий набор свойств языка позволяющих определять и использовать обобщенные типы и методы. Обобщенные типы или методы отличаются от обычных тем, что имеют типизированные параметры.
Примером использования обобщенных типов может служить Java Collection Framework. Так, класс
LinkedList<E> - типичный обобщенный тип. Он содержит параметр E, который представляет тип элементов, которые будут храниться в коллекции. Создание объектов обобщенных типов происходит посредством замены параметризированных типов реальными типами данных. Вместо того, чтобы просто использовать LinkedList, ничего не говоря о типе элемента в списке, предлагается использовать точное указание типа LinkedList<String>, LinkedList<Integer> и т.п.Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1
Assert (Утверждение) — это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы. Утверждение может автоматически сигнализировать об обнаружении некорректных данных, что обычно приводит к аварийному завершению программы с указанием места обнаружения некорректных данных.
Утверждения существенно упрощают локализацию ошибок в коде. Даже проверка результатов выполнения очевидного кода может оказаться полезной при последующем рефакторинге, после которого код может стать не настолько очевидным и в него может закрасться ошибка.
Обычно утверждения оставляют включенными во время разработки и тестирования программ, но отключают в релиз-версиях программ.
Так как утверждения могут быть удалены на этапе компиляции либо во время исполнения программы, они не должны менять поведение программы. Если в результате удаления утверждения поведение программы может измениться, то это явный признак неправильного использования
assert. Таким образом, внутри assert нельзя вызывать методы, изменяющие состояние программы, либо внешнего окружения программы.В Java проверка утверждений реализована с помощью оператора
assert, который имеет форму:assert [Выражение типа boolean]; или assert [Выражение типа boolean] : [Выражение любого типа, кроме void];Во время выполнения программы в том случае, если поверка утверждений включена, вычисляется значение булевского выражения, и если его результат
false, то генерируется исключение java.lang.AssertionError. В случае использования второй формы оператора assert выражение после двоеточия задаёт детальное сообщение о произошедшей ошибке (вычисленное выражение будет преобразовано в строку и передано конструктору AssertionError).Please open Telegram to view this post
VIEW IN TELEGRAM
👍11☃1🐳1
Метод containsAll() интерфейса
Параметры:
c – коллекция, которую необходимо проверить на предмет содержания в этой коллекции
Возврат:
true
Collection проверяет входят ли в коллекцию все элементы переданной в параметре коллекции.
boolean containsAll(Collection<?> c);
Параметры:
c – коллекция, которую необходимо проверить на предмет содержания в этой коллекции
Возврат:
true
, если эта коллекция содержит все элементы указанной коллекции👍6🔥2
С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34🔥5☃1🆒1
Поскольку строки неизменяемы, их хэш код вычисляется и кэшируется в момент создания, не требуя повторного пересчета при дальнейшем использовании. Поэтому в качестве ключа
HashMap они будут обрабатываться быстрее.Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤2🎄2☃1🍾1
Если у какого-либо класса не определить конструктор, то компилятор сгенерирует конструктор без аргументов - так называемый «конструктор по умолчанию».
public ClassName() {}
Если у класса уже определен какой-либо конструктор, то конструктор по умолчанию создан не будет и, если он необходим, его нужно описывать явно.
Please open Telegram to view this post
VIEW IN TELEGRAM
☃12🎄3🎉2
С наступающим новым годом, друзья! Пусть всё получается, всё удается, ничего не зависает и не стоит на месте. Желаю, чтобы жизнь была интересной и захватывающей, чтоб не было времени на грусть и тоску, обиды и разочарования!
Пусть любое дело увенчается успехом, а твои достижения помогут достичь карьерного роста и технического прогресса!
Свежих идей и ярких воплощений нам всем!🎉 🍾🥂🎁
Пусть любое дело увенчается успехом, а твои достижения помогут достичь карьерного роста и технического прогресса!
Свежих идей и ярких воплощений нам всем!
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉45☃10🍾6🎄3🤩2🤝1🎅1
Метод Arrays.fill() для инициализации массива
Класс
Класс
java.util.Arrays имеет несколько методов с именем fill(), которые принимают разные типы аргументов и заполняют весь массив одним и тем же значением:long array[] = new long[5];У метода также есть несколько альтернатив, которые устанавливают диапазон массива в определенное значение:
Arrays.fill(array, 30);
int array[] = new int[5];Обратите внимание, что метод принимает массив, индекс первого элемента, индекс последнего элемента (не включительно) и значение.
Arrays.fill(array, 0, 3, -50);
🔥9🍾5💘2☃1❤1
Spring Framework предоставляет множество способов взаимодействия с базой данных, и одним из основных инструментов для этого являются Query Methods. Query Methods предоставляют простой способ создания запросов к базе данных на основе именованных методов в интерфейсах репозиториев.
Пример репозитория, если у нас ес
ть сущность User с полями username и email:
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByUsername(String username);
List<User> findByUsernameAndEmail(String username, String email);
}
В данном примере метод
findByUsername создает запрос, который извлекает всех пользователей с указанным именем пользователя из базы данных. Spring Data автоматически анализирует сигнатуру метода и создает SQL-запрос.Также, можно добавлять условия к запросам, используя ключевые слова, такие как
And, Or, Is, Equals, и т.д. в именах методов.Please open Telegram to view this post
VIEW IN TELEGRAM
👍14☃3❤2🎄1
Некоторые особенности:
👉 Пользовательский значок приложения с несколькими разрешениями и глубиной цвета.
👉 Собственный экран-заставка до JRE, отображаемый до запуска приложения Java.
👉 Открывает страницу загрузки Java, если не удается найти подходящую версию Java, или веб-сайт поддержки в случае ошибки.
👉 Поддерживает графический интерфейс и консольные приложения.
👉 Передаёт аргументы командной строки
👉 Легкий вес: 62 КБ.
👉 Это бесплатно и может использоваться в коммерческих целях.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥4❤🔥1👍1🎄1💘1
JDBC основан на концепции драйверов, которые позволяют получать соединение с базой данных по специально описанному URL. При загрузке драйвер регистрирует себя в системе и в дальнейшем автоматически вызывается, когда программа требует URL, содержащий протокол, за который этот драйвер отвечает.
Преимущества JDBC:
👉 Лёгкость разработки: разработчик может не знать специфики базы данных, с которой работает;
👉 Код практически не меняется, если компания переходит на другую базу данных (количество изменений зависит исключительно от различий между диалектами SQL);
👉 Не нужно дополнительно устанавливать клиентскую программу;
👉 К любой базе данных можно подсоединиться через легко описываемый URL.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥3🔥1🆒1
🤯12🙈9😱4🔥2👾1