Какая команда SQL используется для выборки данных из таблицы?
Anonymous Quiz
1%
UPDATE
0%
DELETE
7%
INSERT
88%
SELECT
1%
TRUNCATE
3%
Посмотреть ответ
🤓5👍2😁2🎉2👏1
Уровни логирования в Java.
Мы выяснили, что такое логи и что такое логирование Java. Нетрудно догадаться, что если в лог-файл записывать все действия программы, то там будет большое количество различных сведений.
В некоторых ситуациях лог-файлы могут генерироваться очень быстро и в огромных размерах. В этом случае найти нужную информацию в логах будет очень нелегко. Поэтому, чтобы контролировать объемы записываемой информации, придумали различные уровни логирования.
Уровни логирования применяются в программах на различных языках программирования, в том числе и на Java. Различают несколько основных уровней (Картинка 1):
debug — выводится информация, которая пригодится для отладки программы;
info — обычные и стандартные сообщения, чаще всего информативные;
warning — нефатальное предупреждение;
error — записи ошибок;
fatal — фатальная ошибка;
off — сообщения не выводятся;
trace — информация для точной отладки;
all — выводится вся информация.
Чаще всего в коммерческой разработке используются уровни debug, info, warning, error и trace.
В конфигурационном файле нашего приложения в любой момент можно включить или выключить запись любого уровня логирования. Либо оставить несколько уровней, чтобы писались в лог, либо же оставить какой-то один уровень.
👉 JavaStart. Подписаться
Мы выяснили, что такое логи и что такое логирование Java. Нетрудно догадаться, что если в лог-файл записывать все действия программы, то там будет большое количество различных сведений.
В некоторых ситуациях лог-файлы могут генерироваться очень быстро и в огромных размерах. В этом случае найти нужную информацию в логах будет очень нелегко. Поэтому, чтобы контролировать объемы записываемой информации, придумали различные уровни логирования.
Уровни логирования применяются в программах на различных языках программирования, в том числе и на Java. Различают несколько основных уровней (Картинка 1):
debug — выводится информация, которая пригодится для отладки программы;
info — обычные и стандартные сообщения, чаще всего информативные;
warning — нефатальное предупреждение;
error — записи ошибок;
fatal — фатальная ошибка;
off — сообщения не выводятся;
trace — информация для точной отладки;
all — выводится вся информация.
Чаще всего в коммерческой разработке используются уровни debug, info, warning, error и trace.
В конфигурационном файле нашего приложения в любой момент можно включить или выключить запись любого уровня логирования. Либо оставить несколько уровней, чтобы писались в лог, либо же оставить какой-то один уровень.
👉 JavaStart. Подписаться
👍8❤3✍2👨💻1
Библиотеки логирования Java.
Уровни логирования рассмотрели, теперь о библиотеках!
Библиотеки логирования Java — это набор инструментов, который применяют при логировании программ. Различают несколько популярных инструментов логирования:
– Apache log4j
Это первый набор инструментов для логирования Java, который появился еще в 1999-м году. Внутри себя имеет различные способы вывода логов, несколько форматов логирования и мн. др. Раньше данная библиотека активно применялась, но уже долгое время этот проект не развивается.
– JUL
Имеет множество уровней логирования, например, только для отладки у этого инструмента есть в арсенале 3 отладочных уровня вместо одного стандартного.
– SLF4J
Этот инструмент является оберткой над многими популярными логгерами, например: logback, log4j, jul и др.
– Logback
Был создан как альтернатива умирающему log4j, поэтому он вобрал в себя все лучшее из этого инструмента, при этом усовершенствовал некоторые показатели.
У меня на проекте, например, используется библиотека для логирования SLF4J.
👉 JavaStart. Подписаться
Уровни логирования рассмотрели, теперь о библиотеках!
Библиотеки логирования Java — это набор инструментов, который применяют при логировании программ. Различают несколько популярных инструментов логирования:
– Apache log4j
Это первый набор инструментов для логирования Java, который появился еще в 1999-м году. Внутри себя имеет различные способы вывода логов, несколько форматов логирования и мн. др. Раньше данная библиотека активно применялась, но уже долгое время этот проект не развивается.
– JUL
Имеет множество уровней логирования, например, только для отладки у этого инструмента есть в арсенале 3 отладочных уровня вместо одного стандартного.
– SLF4J
Этот инструмент является оберткой над многими популярными логгерами, например: logback, log4j, jul и др.
– Logback
Был создан как альтернатива умирающему log4j, поэтому он вобрал в себя все лучшее из этого инструмента, при этом усовершенствовал некоторые показатели.
У меня на проекте, например, используется библиотека для логирования SLF4J.
👉 JavaStart. Подписаться
👍7✍3🔥1
Какая из следующих коллекций в Java представляет собой неизменяемый список элементов?
Anonymous Quiz
9%
ArrayList
14%
HashSet
8%
LinkedList
65%
ImmutableList
5%
Посмотреть ответ
👍6🤓3😁2🎉2👏1👨💻1
Модификатор доступа static в Java. Часть 1.
Очень частый вопрос, который задают джунам на собеседованиях - Расскажите про модификатор static в Java.
Давайте рассмотрим ключевое слово static: его применение к переменным, методам, блокам инициализации, вложенным классам (nested classes).
Сначала в общих чертах:
В языке программирования Java ключевым словом static помечают члены (поля или методы), которые принадлежат классу, а не экземпляру этого класса.
Это означает, что какое бы количество объектов вы не создали, всегда будет создан только один член, доступный для использования всеми экземплярами класса.
Ключевое слово static применимо к переменным, методам, блокам инициализации, импорту и вложенным классам (nested classes).
Дальше поговорим подробнее о каждом случае.
👉 JavaStart. Подписаться
Очень частый вопрос, который задают джунам на собеседованиях - Расскажите про модификатор static в Java.
Давайте рассмотрим ключевое слово static: его применение к переменным, методам, блокам инициализации, вложенным классам (nested classes).
Сначала в общих чертах:
В языке программирования Java ключевым словом static помечают члены (поля или методы), которые принадлежат классу, а не экземпляру этого класса.
Это означает, что какое бы количество объектов вы не создали, всегда будет создан только один член, доступный для использования всеми экземплярами класса.
Ключевое слово static применимо к переменным, методам, блокам инициализации, импорту и вложенным классам (nested classes).
Дальше поговорим подробнее о каждом случае.
👉 JavaStart. Подписаться
👍12🔥3✍2🎉1
Модификатор доступа static в Java. Часть 2.
Вопрос про модификатор доступа static является действительно излюбленным на собеседованиях, поэтому продолжаем разбираться!
Статические поля (переменные класса).
В языке Java, если поле объявляется статическим (путем добавления модификатора static), то в независимости от количества созданных объектов класса — всегда будет существовать только один экземпляр статического поля. Значение такого поля будет единым и общим для всех объектов класса, содержащих это поле (Картинка 1).
С точки зрения используемой памяти, статические переменные размещаются в специальном пуле в памяти JVM, называемом Metaspace (до Java 8 он назывался Permanent Generation или PermGen, который был полностью удален и заменен на Metaspace).
Пример статического поля (Картинка 2).
Предположим, у нас есть класс Car с несколькими атрибутами (полями). Каждый экземпляр данного класса будет иметь свою, отличающуюся от других копию этих переменных экземпляра. Значения таких полей можно менять в объектах независимо друг от друга.
А теперь предположим, что нам требуется переменная-счетчик для хранения количества созданных объектов Car, которая являлась бы общей для всех его экземпляров. При этом необходимо, чтобы каждый из них имел к ней доступ и мог изменять.
Тут-то нам и пригодится статическая переменная (numberOfCars).
Теперь для каждого объекта этого класса будет увеличиваться один и тот же экземпляр переменной numberOfCars. Давайте это проверим, посмотрим на Картинку 3.
👉 JavaStart. Подписаться
Вопрос про модификатор доступа static является действительно излюбленным на собеседованиях, поэтому продолжаем разбираться!
Статические поля (переменные класса).
В языке Java, если поле объявляется статическим (путем добавления модификатора static), то в независимости от количества созданных объектов класса — всегда будет существовать только один экземпляр статического поля. Значение такого поля будет единым и общим для всех объектов класса, содержащих это поле (Картинка 1).
С точки зрения используемой памяти, статические переменные размещаются в специальном пуле в памяти JVM, называемом Metaspace (до Java 8 он назывался Permanent Generation или PermGen, который был полностью удален и заменен на Metaspace).
Пример статического поля (Картинка 2).
Предположим, у нас есть класс Car с несколькими атрибутами (полями). Каждый экземпляр данного класса будет иметь свою, отличающуюся от других копию этих переменных экземпляра. Значения таких полей можно менять в объектах независимо друг от друга.
А теперь предположим, что нам требуется переменная-счетчик для хранения количества созданных объектов Car, которая являлась бы общей для всех его экземпляров. При этом необходимо, чтобы каждый из них имел к ней доступ и мог изменять.
Тут-то нам и пригодится статическая переменная (numberOfCars).
Теперь для каждого объекта этого класса будет увеличиваться один и тот же экземпляр переменной numberOfCars. Давайте это проверим, посмотрим на Картинку 3.
👉 JavaStart. Подписаться
🔥8👍3❤2✍2
Модификатор доступа static в Java. Часть 3.
Причины использовать статические поля.
1) Когда значение поля должно быть общим для всех объектов класса, в котором оно определено;
2) Когда значение поля не зависит от наличия объектов класса, в котором оно определено;
3) Когда значение поля может быть изменено из любого объекта класса, в котором оно определено.
Ключевые моменты статических полей.
1) Статические переменные могут быть созданы только, как переменные класса. Они не могут быть локальными переменными (IDEA выдаст ошибку Modifier 'static' not allowed here или java: illegal start of expression). Картинка 1.
2) К статическим полям класса можно получить доступ без создания объекта, используя имя класса (ссылка на объект не нужна). Картинка 2.
3) Несмотря на то, что получить доступ к статическим полям можно с помощью ссылки на объект (например, car1.numberOfCars), мы должны воздерживаться от её применения, поскольку в этом случае становится не совсем понятно, является ли эта переменная переменной экземпляра или же переменной класса. Вместо этого всегда необходимо ссылаться на статические переменные, используя имя класса (например, Car.numberOfCars). Картинка 3.
4) Статические поля не сериализуются. При десериализации такие поля будут иметь значения по умолчанию, заданные JVM при создании объекта.
👉 JavaStart. Подписаться
Причины использовать статические поля.
1) Когда значение поля должно быть общим для всех объектов класса, в котором оно определено;
2) Когда значение поля не зависит от наличия объектов класса, в котором оно определено;
3) Когда значение поля может быть изменено из любого объекта класса, в котором оно определено.
Ключевые моменты статических полей.
1) Статические переменные могут быть созданы только, как переменные класса. Они не могут быть локальными переменными (IDEA выдаст ошибку Modifier 'static' not allowed here или java: illegal start of expression). Картинка 1.
2) К статическим полям класса можно получить доступ без создания объекта, используя имя класса (ссылка на объект не нужна). Картинка 2.
3) Несмотря на то, что получить доступ к статическим полям можно с помощью ссылки на объект (например, car1.numberOfCars), мы должны воздерживаться от её применения, поскольку в этом случае становится не совсем понятно, является ли эта переменная переменной экземпляра или же переменной класса. Вместо этого всегда необходимо ссылаться на статические переменные, используя имя класса (например, Car.numberOfCars). Картинка 3.
4) Статические поля не сериализуются. При десериализации такие поля будут иметь значения по умолчанию, заданные JVM при создании объекта.
👉 JavaStart. Подписаться
👍9❤2🔥2⚡1✍1
Всем привет! Это снова Леонид :)
Хочу рассказать вам, как я сменил свою первую работу в IT.
Изначально я пришел в T-systems стажером, но через два месяца меня перевели в junior разработчики. Я активно выполнял задачи, всегда изучал что-то новое и стремился к росту.
Спустя еще примерно пол года я решил поговорить со своим менеджером о повышении на следующий уровень. Это даже не переход с junior на middle, а просто небольшая ступень между junior и junior +.
Мы обговорили цели и задачи, которые я должен выполнить. Прошло некоторое время, я работал над поставленными задачами, все шло хорошо, но менеджеры предложили еще немного подождать и дали новые задачи.
Тут я решил посмотреть, что сейчас рынок может мне предложить, обновил резюме и пошел на собеседования. За тот период у меня было около 30 собеседований в разные компании и в итоге выбрал оффер от компании Nexign.
В T-systems я стремился к повышению на 30 процентов, что может показаться много, но для junior разработчика это вполне нормально. Nexign сделал предложение на +250 процентов и должность middle. Это был первый серьезный скачок в карьере.
Это был интересный опыт. Главное всегда поддерживать себя в форме и быть готовым к собеседованиям, если на текущем месте работы все идет не так как хотелось бы.
В рамках курса JavaStart мы хорошо готовим ребят к собеседованиям, проводя собеседования, близкие к реальным и с обязательной обратной связью.
Пишите в комментариях как у вас дела :)
👉 JavaStart. Подписаться
Хочу рассказать вам, как я сменил свою первую работу в IT.
Изначально я пришел в T-systems стажером, но через два месяца меня перевели в junior разработчики. Я активно выполнял задачи, всегда изучал что-то новое и стремился к росту.
Спустя еще примерно пол года я решил поговорить со своим менеджером о повышении на следующий уровень. Это даже не переход с junior на middle, а просто небольшая ступень между junior и junior +.
Мы обговорили цели и задачи, которые я должен выполнить. Прошло некоторое время, я работал над поставленными задачами, все шло хорошо, но менеджеры предложили еще немного подождать и дали новые задачи.
Тут я решил посмотреть, что сейчас рынок может мне предложить, обновил резюме и пошел на собеседования. За тот период у меня было около 30 собеседований в разные компании и в итоге выбрал оффер от компании Nexign.
В T-systems я стремился к повышению на 30 процентов, что может показаться много, но для junior разработчика это вполне нормально. Nexign сделал предложение на +250 процентов и должность middle. Это был первый серьезный скачок в карьере.
Это был интересный опыт. Главное всегда поддерживать себя в форме и быть готовым к собеседованиям, если на текущем месте работы все идет не так как хотелось бы.
В рамках курса JavaStart мы хорошо готовим ребят к собеседованиям, проводя собеседования, близкие к реальным и с обязательной обратной связью.
Пишите в комментариях как у вас дела :)
👉 JavaStart. Подписаться
👍12❤4🔥4👏1
Что произойдет, если объявить конструктор класса с модификатором доступа private?
Anonymous Quiz
13%
Компилятор Java выдаст ошибку компиляции
7%
Конструктор будет доступен только для наследников класса
71%
Конструктор будет доступен только внутри класса
4%
Конструктор будет доступен в пределах текущего пакета
4%
Посмотреть ответ
👍10✍3👏2🔥1🎉1
Модификатор доступа static в Java. Часть 4.
Статические методы (методы классов).
Подобно статическим полям, статические методы также принадлежат классу, а не объекту, поэтому их можно вызывать без создания экземпляра класса, в котором они находятся. При этом следует помнить, что из статического метода можно получить доступ только к статическим переменным или к другим статическим методам.
В противном случае при компиляции будет выведена ошибка (Картинка 1).
Пример статического метода:
На Картинке 2 представлен утилитный метод sumOfInts, принимающий на вход последовательность целых чисел и возвращающий сумму этих чисел.
Статические методы обычно используются для выполнения операции, не зависящей от создания экземпляра. При этом, они широко используются для создания служебных (утилитных) или вспомогательных классов, поскольку их можно вызывать без создания нового объекта этих классов.
В JDK служебные классы активно используются: Collections, Math, Arrays; StringUtils из Apache или CollectionUtils из Spring framework. Все методы этих классов являются статическими.
👉 JavaStart. Подписаться
Статические методы (методы классов).
Подобно статическим полям, статические методы также принадлежат классу, а не объекту, поэтому их можно вызывать без создания экземпляра класса, в котором они находятся. При этом следует помнить, что из статического метода можно получить доступ только к статическим переменным или к другим статическим методам.
В противном случае при компиляции будет выведена ошибка (Картинка 1).
Пример статического метода:
На Картинке 2 представлен утилитный метод sumOfInts, принимающий на вход последовательность целых чисел и возвращающий сумму этих чисел.
Статические методы обычно используются для выполнения операции, не зависящей от создания экземпляра. При этом, они широко используются для создания служебных (утилитных) или вспомогательных классов, поскольку их можно вызывать без создания нового объекта этих классов.
В JDK служебные классы активно используются: Collections, Math, Arrays; StringUtils из Apache или CollectionUtils из Spring framework. Все методы этих классов являются статическими.
👉 JavaStart. Подписаться
👍8✍3❤2⚡2🔥2
Модификатор доступа static в Java. Часть 5.
Статические методы в интерфейсах.
В версии Java 8 появилась возможность определения статических методов в интерфейсах.
Их поведение напоминает поведение методов по умолчанию (default methods), но есть существенные отличия – они не могут быть переопределены методами в реализующих интерфейс классах.
Такая особенность позволяет избежать нежелательных результатов, которые возможны в случае некорректной реализации метода в классе.
Пример кода с использованием статического метода в интерфейсе можно увидеть на Картинке 1.
Обратите внимание, что для использования статических методов интерфейса не нужно использовать ключевое слово «implements». Достаточно (и это необходимо) использовать имя интерфейса вместе с именем статического метода. В других случаях, статические методы интерфейса видны только методам этого интерфейса.
👉 JavaStart. Подписаться
Статические методы в интерфейсах.
В версии Java 8 появилась возможность определения статических методов в интерфейсах.
Их поведение напоминает поведение методов по умолчанию (default methods), но есть существенные отличия – они не могут быть переопределены методами в реализующих интерфейс классах.
Такая особенность позволяет избежать нежелательных результатов, которые возможны в случае некорректной реализации метода в классе.
Пример кода с использованием статического метода в интерфейсе можно увидеть на Картинке 1.
Обратите внимание, что для использования статических методов интерфейса не нужно использовать ключевое слово «implements». Достаточно (и это необходимо) использовать имя интерфейса вместе с именем статического метода. В других случаях, статические методы интерфейса видны только методам этого интерфейса.
👉 JavaStart. Подписаться
👍12✍1🎉1🤓1
Модификатор доступа static в Java. Часть 6.
Какие же причины использовать статические методы? Вопрос из собеседования на Junior java разработчика.
– Для доступа / управления статическими переменными и другими статическими методами, которые не зависят от объектов;
– Для служебных, вспомогательных классов и интерфейсов, поскольку не требуют создания объектов и соответственно, обеспечивают большую производительность (не создаются лишние объекты в памяти);
– Когда методу требуется доступ лишь к статическим полям класса.
👉 JavaStart. Подписаться
Какие же причины использовать статические методы? Вопрос из собеседования на Junior java разработчика.
– Для доступа / управления статическими переменными и другими статическими методами, которые не зависят от объектов;
– Для служебных, вспомогательных классов и интерфейсов, поскольку не требуют создания объектов и соответственно, обеспечивают большую производительность (не создаются лишние объекты в памяти);
– Когда методу требуется доступ лишь к статическим полям класса.
👉 JavaStart. Подписаться
👍6✍3🔥2⚡1
Что такое перегрузка методов (method overloading) в Java?
Anonymous Quiz
4%
Возможность изменить значение переменной после ее инициализации в методе
1%
Возможность объединить несколько методов в один
85%
Возможность использовать одно имя метода для нескольких методов с разными параметрами
8%
Возможность применять методы из других классов
2%
Посмотреть ответ
👍4🔥3🎉3✍2