Обложка канала

Библиотека Java разработчика. Страница 38

9291 @BookJava

Библиотека Java разработчика. Книги по программированию на Java.

  • Библиотека Java разработчика

    Как проверить содержится ли элемент в массиве на java? Вы можете использовать условие и цикл для проверки существования элемента в массиве. class Main { public static void main(String[] args) throws Exception { int[] firstArray = new int[]{52, 21, 94, 29, 91}; int[] secondArray = new int[]{82, 74, 51, 39, 23}; int element = 21; for (int i = 0; i < firstArray.length; i++) { if (firstArray[i] == element){ System.out.println(element + " in first array"); } } for (int i = 0; i < secondArray.length; i++) { if (secondArray[i] == element){ System.out.println(element + " in second array"); } } // Вывод : 21 in first array } } #java Подписывайтесь на канал 👉@coddy_academy
  • Библиотека Java разработчика

    Чем отличается перегрузка от переопределения? (1/2) Полиморфизм – соль ООП. Перегрузка (overload) и переопределение (override) – два инструмента достижения полиморфного поведения в Java. Перегрузкой реализуется ad-hoc-полиморфизм. Это значит «один и тот же» метод может работать с разными параметрами. С технической точки зрения это просто два разных метода, сигнатуры которых имеют одинаковое название, но разный набор параметров. Важно помнить, что для перегрузки не достаточно различий только модификаторов, возвращаемых типов и списков исключений. Ad-hoc – не совсем настоящий полиморфизм, так как при нём используется раннее, или статическое связывание (early binding, static dispatch). Это значит, что для выбора конкретного варианта метода используется информация о типе переменной, а не объекта в ней лежащего, и происходит это еще при компиляции. Если в классе объявлены два перегруженных метода, а аргумент в вызове подходит под оба, случится ошибка компиляции. В примере ниже компилятор не может выбрать между вариантами метода println с параметром char[] и со String, так как null может быть и тем и другим. #Классы
  • Библиотека Java разработчика

    Надоела скучная, тяжёлая работа? Хочешь научиться чему то новому и офигенному, как последняя модель Porsche? И плюсом чтоб на этом можно было нехило так зарабатывать? Тогда влетай в IT Вместе с нами. Открой для себя новый мир информационных технологий. Изучай! Размышляй! Создавай! Учиcь програмированию с нуля, а наши преподаватели, которые имеют коллосальный опыт, готовы поделиться знаниями с тобой. И уже через несколько месяцев ты сможешь создать свой код. Получи профессию будущего! Ждем тебя! P.S. Картинка* - наш админ так шутит https://t.me/maxima_life
  • Реклама

  • Библиотека Java разработчика

    Подборка интересных каналов 🔥 DeepFake На канале публикуем deepfake видео и связанные с ними технологии. https://t.me/deepfakenow Мир технологий (Technology World) Добро пожаловать в мир технологий https://t.me/mir_teh GitHub Сообщество https://t.me/Githublib Реальный Python Все о пайтон, новости, подборки на русском и английском. https://t.me/python_real BigData Data Science : Big Data : Machine Learning : Deep Learning https://t.me/bigdata_1 Базы данных (Data Base) https://t.me/database_info Книги для программистов Rus https://t.me/book_for_dev DevOps Пишем о Docker, Kubernetes и др. https://t.me/i_DevOps Типичный Сисадмин Админский юмор, фото железа, было/стало, все здесь! https://t.me/tipsysdmin Python академия Учи Python быстро и легко. https://t.me/pythonofff Coddy Академия кода. https://t.me/coddy_academy Bitkoinoff - новости криптовалют Все самое важное о криптовалютах и блокчейне https://t.me/bitkoinoff Сообщество Дизайнеров https://t.me/ux_web GameDev: разработка игр https://t.me/game_devv
  • Библиотека Java разработчика

    Газпромбанк — это не только финансы, но еще и крутое IT-комьюнити. Недавно ребята собрались на космическом митапе Gagarin Party в Музее космонавтики. Спикеры поделились своим опытом: например, как развивать сообщества бэкенд-разработчиков и организовывать дежурства on-call. А еще с лекцией выступил астроном Владимир Сурдин и рассказал о достижениях в космосе 🚀 Ты тоже можешь стать частью команды Газпромбанка и участвовать в классных мероприятиях. Вакансии ждут тебя тут > https://vk.cc/ccWssJ
  • Библиотека Java разработчика

    Как удалить директорию в java? Вы можете использовать File.delete() для удаления директории. import java.io.File; class Main { public static void main(String[] args) throws Exception { File file = new File("delete_folder"); if (file.delete()){ System.out.println("Директория успешно удалена"); } } } #java Подписывайтесь на канал 👉@coddy_academy
  • Библиотека Java разработчика

    Как стать уверенным разработчиком на главном языке «энтерпрайза» Java? Например, записаться на курс по Java-разработке от Хекслета. Курс поможет освоить язык, алгоритмы и структуры данных, работу с микросервисами, фреймворком Spring Boot, базами данных и инфраструктурой. На Хекслете курс спроектирован так, что его невозможно просто «отсидеть» или «прослушать». Именно поэтому студенты могут получить оффер ещё во время обучения, а некоторые работодатели указывают их курсы как преимущество при найме. ✏️Узнайте подробнее о программе: https://bit.ly/3K0rijZ
  • Библиотека Java разработчика

    Лучшие практики Unit-тестирования на Java Unit-тестирование - важный шаг в разработке и внедрении программного обеспечения. Оно не только повышает эффективность и результативность кода, но также делает его более надежным. В этом руководстве мы обсудим несколько лучших практик Unit-тестирования на Java, а именно: - именование пакетов - размещение кода с тестами - именование методов и многое другое Читать статью
    Best Practices For Unit Testing In Java | Baeldung

    Learn about best practices for unit testing in Java.

    Baeldung
  • Библиотека Java разработчика

    Какие существуют стандартные загрузчики классов? В JVM встроено как минимум три стандартных загрузчика: 🔘 Bootstrap – встроенная в JVM нативная реализация, родитель для всех остальных загрузчиков. Загружает часть стандартных классов java.*; 🔘 Platform – отвечает за загрузку стандартных классов Java-рантайма. До Java 9 назывался Extension и занимался загрузкой расширений. Гарантируется, что ему будут видны (но не факт что загружены непосредственно им) все стандартные классы Java SE и JDK; 🔘 System (Application) – загружает классы из classpath конкретного приложения; Перед тем как загрузить класс, ClassLoader проверит, не может ли это сделать его родитель. Если класс уже загружен, то загрузка не потребуется. Иллюстрация смысла этой иерархии – загрузчики web-сервера Apache Tomcat. Прикладной код каждого web-приложения работает на своем отдельном загрузчике изолированно от других приложений. Даже один и тот же класс-singleton у каждого приложения будет собственный. Системные классы и общие библиотеки при том грузятся их родительскими загрузчиками, только один раз для сервера. #Классы
    Classpath

    Classpath is a parameter in the Java Virtual Machine or the Java compiler that specifies the location of user-defined classes and packages. The parameter may be set either on the command-line, or through an environment variable.

    Wikipedia
  • Библиотека Java разработчика

    💪 Усильте свои фундаментальные навыки программирования с помощью открытого урока «Алгоритм Дейкстры для поиска кратчайшего пути во взвешенном графе.» ✅ На занятии с Евгением Волосатовым, экспертом с 20-летним опытом программирования поговорим об алгоритмы Дейкстры. 📌 Проведем обзор второй половины онлайн-курса «Алгоритмы и структуры данных» от OTUS. Demo-занятие пройдет в рамках этого курса и позволит познакомиться с преподавателем. ❗️ Этот курс подходит для любого языка программирования. 👉 Для регистрации пройдите вступительное тест https://otus.pw/gMWH/
  • Библиотека Java разработчика

    Зачем нужен загрузчик классов? В Java используется динамическая загрузка классов. Ее выполняют загрузчики – наследники абстрактного класса ClassLoader. Кроме того, они же загружают и файлы-ресурсы. Загрузка класса (точнее любого ссылочного типа) и всех его предков происходит автоматически перед его инициализацией. При этом используется тот лоадер, который загрузил текущий код. Таким образом, загрузка всех, даже встроенных классов – ленивая. Вручную класс можно загрузить из конкретного загрузчика, передав аргументом его метода loadClass бинарное имя класса. В URLClassLoader и стандартных загрузчиках JVM источником класса служит .class-файл. Другие загрузчики в своей реализации используют и другие источники: это может быть сетевой ресурс, или класс может генерироваться в рантайме. К примеру загрузчик из javassist специализируется на создании классов на лету. В результате загрузки создается экземпляр класса Class. В отличие от обычных объектов, такие экземпляры хранятся не в куче, а в permgen/metaspace. Class может быть выгружен, когда загрузивший его ClassLoader стал мусором. #Классы
  • Библиотека Java разработчика

    🍀Время погрузиться в Spring! 📚 OTUS открыл весенний набор в группу онлайн-курса «Spring Framework Developer». За 5 месяцев вы освоите популярный Java-фреймворк и его технологии, научитесь создавать сложные web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке. 💪🏻Во время обучения вы создадите свой выпускной проект, например онлайн-библиотеку или блог с админкой. 🚀Готовы к карьерному рывку и интересным проектам? 📌Тогда проходите вступительный тест и и занимайте место, пока действует спец.цена: https://otus.pw/UISb/
  • Библиотека Java разработчика

    Что такое enum? enum – тип-перечисление. Бывает много разных формулировок вопроса, все они сводятся к разговору о перечислениях вообще. Технически это финальный класс со статическими финальными полями-экземплярами. enum Foo всегда неявно наследуется от Enum<Foo> – то есть перечислением нельзя расширить другой класс, но всё еще можно реализовать интерфейсы. Из-за generic-параметра разные перечисления не имеют общего предка кроме Object. Является Comparable (сравнивается позиция по порядку объявления значений) и Serializable (сериализуется только имя константы). Имеет только заранее заданный набор значений. Значения неявно public static final и это нельзя переопределить. Для инициализации констант действуют все правила статической инициализации. Копии элементов перечисления не создаются даже при десериализации. Вот почему Effective Java предлагает использовать для сериализуемого синглтона enum. Экземпляры хранят свойства name и ordinal – имя и порядковый номер константы. Статический метод values вернет список всех констант, valueOf – константу по имени. Спецификация. Финализация и клонирование перечислений запрещены. #Классы
  • Библиотека Java разработчика

    Как вернуть два значения из метода в java? Вы можете возвращать массив значений из метода. class Main { public static int[] get_summ_and_diff(int x, int y){ int summ = x + y; int diff = x - y; return new int[]{summ, diff}; } public static void main(String[] args) throws Exception { int[] diff_and_summ = get_summ_and_diff(10, 5); System.out.println(diff_and_summ[0]); System.out.println(diff_and_summ[1]); // Вывод : // 15 // 5 } } #java Подписывайтесь на канал 👉@coddy_academy
  • Библиотека Java разработчика

    Что можно делать с переменной хранящей null? Во-первых, если переменная не финальная, использовать как L-value этого типа – присваивать новое значение. Во-вторых, то же, что со значением null, но с учетом типа: 🔘 Сравнивать с null или переменной этого же класса; 🔘 Приводить к типу-родителю (upcast) или типу-наследнику (downcast), учитывая границы generic-параметров при наличии; 🔘 Обращаться к членам экземпляра и получать NullPointerException; 🔘 Применять instanceof и получать false 🔘 Использовать как параметр для методов и других совместимых с типом операторов В-третьих, можно обращаться к статическим членам класса. В вопросе подразумевается именно эта интересная часть. Это безопасно, NullPointerException не возникнет, но для упрощения отладки и из-за отсутствия переопределения статических членов рекомендуется так не делать. Вместо этого обращайтесь к статике явно через имя класса, либо неявно, добавив для класса import static. #Классы
  • Реклама

  • Библиотека Java разработчика

    Почему char[] предпочтительнее String для хранения пароля? С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке.
  • Библиотека Java разработчика

    Как работает сборка мусора? Очередной вопрос, ответ на который нужно начинать с уточнения: в каком именно сборщике мусора? Понятие сборщика мусора вводится в спецификации JVM, но внутренности зависят от реализации. Одна JVM может содержать несколько сборщиков, один сборщик может применять разные алгоритмы в разных случаях. Вообще говоря, в теории GC может делать ничего. Метод System.gc() обещает, что сборщик сделает «лучшую попытку» освободить память, то есть по факту не дает никаких гарантий. GC (garbage collector) – центральная тема шуток про «джава тормозит». Это необходимая плата за стабильное автоматическое управление памятью. Поэтому это одна из самых бурлящих и меняющихся областей мира Java. Основные подходы к сборке мусора – подсчет ссылок (reference counting) и обход графа достижимых объектов (mark-and-sweep, copying collection). Первый подход испытывает трудности с циклическими ссылками, в Java в основном используется второй. Большинство сборщиков опирается на слабую гипотезу о поколениях. Гипотеза предполагает, что молодые объекты умирают чаще. Для этого куча делится на регионы по времени жизни объектов – поколения. Сборка мусора в них выполняется раздельно. Общий для большинства сборщиков алгоритм описан во множестве статей, например, в этой. Суть его в том, что достижимые объекты помечаются и группируются, а недостижимые удаляются. GC Roots – то, с чего начинается обход графа объектов на вопрос достижимости. Множество корневых объектов (root set) считается достижимым безусловно. Часто на интервью просят их перечислить. Важное понятие для сборщиков мусора – Stop The World пауза. Это полная остановка потоков программы для безопасной сборки мусора и других системных операций. Происходит в специальных местах программы, которые называются safepoint. Конкретный сборщик в HotSpot указывается в параметре запуска JVM. Каждый сборщик имеет много специфичных для него настроек. В Java 10 HotSpot доступно 4 сборщика: 🔘 Serial – однопоточный, с поколениями. Дает большой throughput (маленькая сумма задержек); 🔘 Parallel – многопоточный вариант Serial; 🔘 CMS (Concurrent Mark-Sweep) – дает меньшую latency (маленькие отдельные паузы), выполняя часть сборки вне Stop The World. Плата за это – меньший throughput. Способ сборки примерно как в предыдущих, работает с поколениями. В Java 9 уже объявлен deprecated; 🔘 G1 (Garbage First) – тоже направлен на уменьшение latency. Вместо поколений оперирует регионами; 🔘 Скоро будет добавлен новый сборщик Shenandoah; Настоятельно рекомендуется к изучению очередной доклад Шипилёва (с продолжением) и цикл статей на хабре. #JVM
  • Библиотека Java разработчика

    Подборка каналов для IT специалистов 🎯 Вакансии 📌 https://t.me/progjob Вакансии для программистов Системное администрирование 📌 https://t.me/i_DevOps Все для DevOps https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало) https://t.me/sysadminof Книги для админов, полезные материалы https://t.me/i_odmin Все для системного администратора https://t.me/i_odmin_book Библиотека Системного Администратора https://t.me/i_odmin_chat Чат системных администраторов Программирование Python 📌 https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍 https://t.me/BookPython Библиотека Python разработчика Мобильная разработка: iOS, Android 📌 https://t.me/developer_mobila Мобильная разработка Фронтенд разработка 📌 https://t.me/frontend_1 Подборки для frontend разработчиков Java разработка 📌 https://t.me/BookJava Библиотека Java разработчика Разработка игр 📌 https://t.me/game_devv GameDev: разработка игр Программирование, Биг дата, книги 📌 https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций https://t.me/programmist_of Книги по программированию https://t.me/proglb Библиотека программиста https://t.me/bfbook Книги для программистов https://t.me/coddy_academy Академия кода Шутки программистов 📌 https://t.me/itumor ITumor | программисты шутят Защита, взлом, безопасность 📌 https://t.me/thehaking Канал о кибербезопасности Книги, статьи для дизайнеров 📌 https://t.me/ux_web Статьи, книги для дизайнеров Английский 📌 https://t.me/UchuEnglish Английский с нуля Математика 📌 https://t.me/Pomatematike Канал по математике Арбитраж трафика 📌 https://t.me/partnerochkin CPA и арбитраж трафика Крипта 📌 https://t.me/bitkoinoff Новости криптовалют