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

Библиотека джависта. Страница 39

20804 @javaproglib

Полезные материалы по всему, что может быть полезно разработчику на Java.

  • Библиотека джависта

    #вопросы_с_собеседований Что такое ServletResponse? Интерфейс ServletResponse используется для отправки данных клиенту. Все методы данного инструмента служат именно этой цели: • String getCharacterEncoding() - возвращает MIME тип кодировки (к примеру - UTF8), в которой будет выдаваться информация; • void setLocale(Locale locale)/Locale getLocale() - указывают на язык используемый в документе; • ServletOutputStream getOutputStream()/PrintWriter getWriter() - возвращают потоки вывода данных; • void setContentLength(int len) - устанавливает значение поля HTTP заголовка Content-Length; • void setContentType(String type) - устанавливает значение поля HTTP заголовка Content-Type. • void reset() - позволяет сбросить HTTP заголовок к значениям по-умолчанию, если он ещё не был отправлен • и др.
  • Библиотека джависта

    Ключевое слово abstract в Java abstract - это модификатор, применимый для классов, методов, но не для переменных. Он используется для достижения абстракции, которая является одним из столпов объектно-ориентированного программирования. Рассмотрим варианты применения abstract: 1. Класс, имеющий частичную реализацию (т.е. не все методы, присутствующие в классе, определены). 2. Иногда требуется объявление нереализованного метода в суперклассе. Этого можно добиться, указав модификатор abstract.
  • Библиотека джависта

    Map.putIfAbsent Раньше, чтобы добавить пару в Map, если её там нет, необходимо было делать следующее (часть 1 на картинке). С появлением Java 8 всё стало гораздо проще (часть 2 на картинке).
  • Реклама

  • Библиотека джависта

    Collection.removeIf Метод перебирает коллекцию, и удаляет те элементы, которые соответствуют filter. В нашем примере мы в одну строку удаляем из списка все числа больше 5.
  • Библиотека джависта

    Учебные материалы по Spring Web MVC Друзья, хотим предложить вам подборку материалов по Spring MVC, которая поможет начать изучение или закрепит базовые знания по этому фреймворку. Приятного обучения! howtodoinjava.com/series/…utorials
    Spring Web MVC Tutorials

    Spring WebMVC (or Spring MVC) contains Spring's model-view-controller (MVC) and REST Web Services implementation for web applications.

    HowToDoInJava
  • Библиотека джависта

    #вопросы_с_собеседований Что представляет собой «обмен сообщениями»? Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия. В ООП посылка сообщения (вызов метода) — это единственный путь передать управление объекту. Если объект должен «отвечать» на это сообщение, то у него должна иметься соответствующий данному сообщению метод. Так же объекты, используя свои методы, могут и сами посылать сообщения другим объектам. Обмен сообщениями реализуется с помощью динамических вызовов, что приводит к чрезвычайно позднему связыванию (extreme late binding). Пусть требуется создать физическую модель, описывающую сталкивающиеся шары разных размеров. Традиционный подход к решению этой задачи примерно таков: определяется набор данных, описывающих каждый шар (например, его координаты, массу и ускорение); каждому шару присваивается уникальный идентификатор (например, организуется массив, значение индекса которого соответствует номеру шара), который позволит отличать каждый из шаров от всех других. Наконец, пишется подпрограмма с названием, скажем, bounce; эта процедура должна на основе номера шара и его начальных параметров соответствующим образом изменять данные, описывающие шар. В отличие от традиционного подхода объектно-ориентированная версия программы моделирует каждый из шаров посредством объекта. При этом объект, соответствующий конкретному шару, содержит не только его параметры, но и весь код, описывающий поведение шара при различных взаимодействиях. Так, каждый шар будет иметь собственный метод bounce(). Вместо того, чтобы вызывать подпрограмму bounce с аргументом, определяющим, скажем, шар №3, необходимо будет передать объекту «шар №3» сообщение, предписывающее ему выполнить столкновение.
  • Библиотека джависта

    ☕️ ТОП-10 IDE для Java-разработки Обзор и сравнение лучших платных и бесплатных Java IDE и онлайн-компиляторов Java. https://proglib.io/sh/cLdlhCxpSA
    ☕ ТОП-10 IDE для Java-разработки

    Обзор и сравнение лучших платных и бесплатных Java IDE и онлайн-компиляторов Java.

    Библиотека программиста
  • Библиотека джависта

    Spring: новости за прошедшую неделю / 18-е октября Вашему вниманию предлагается информационная подборка материалов "Spring: новости за прошедшую неделю" от Джоша Лонга (Josh Long). Приятного чтения! 😃 Читать статью
    This Week in Spring - October 18th, 2022

    Hi, Spring fans! How’re you doin’? I’m doin’ alright! Last week I was in Antwerp, Belgium, for the amazing Devoxx BE show. I did a presentation with my friend and hero James Ward on Spring and Kotlin (that was voted third most-liked talk at a show with more than 250 speakers!) That was a personal career highlight for me - it’s not often you get to win and have fun in life. And, as if that wasn’t awesome enough, this week I am in Las Vegas, NV, for JavaOne! Fingers crossed, this week will go smoothly, too! Both Devoxx and JavaOne are the first such shows since at least before the pandemic. It’s been a very long time in coming and I’m elated, overjoyed, to be able to be here.

    spring.io
  • Библиотека джависта

    Что такое ООП? Объектно-ориентированное программирование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования. • объектно-ориентированное программирование использует в качестве основных логических конструктивных элементов объекты, а не алгоритмы; • каждый объект является экземпляром определенного класса • классы образуют иерархии. Программа считается объектно-ориентированной, только если выполнены все три указанных требования. В частности, программирование, не использующее наследование, называется не объектно-ориентированным, а программированием с помощью абстрактных типов данных. Согласно парадигме ООП программа состоит из объектов, обменивающихся сообщениями. Объекты могут обладать состоянием, единственный способ изменить состояние объекта - послать ему сообщение, в ответ на которое, объект может изменить собственное состояние.
  • Библиотека джависта

    ☘️В OTUS открылся набор на онлайн-курсе «Разработчик на Spring Framework» ♨️Вас ждет 5 месяцев занятий, практики и общения с ведущими программистами крупных IT-компаний. Программа курса разработана в соответствии с требованиями рынка вакансий и постоянно актуализируется. Во время обучения вы: ✅ Освоите полный цикл разработки приложений с помощью фреймворка по праву считающимся индустриальным стандартом. ✅ Пройдете путь от идеи до production-ready приложений в домашних заданиях и финальном проекте ✅ Обогатите свой репозиторий решенными заданиями и проектом — он будет вашим козырем на собеседовании. 🎯По итогам обучения вы пополните резюме, которые покажет работодателю ваше умение использовать большое количество подпроектов Spring. В том числе касающихся реактивного стека, работы с реляционными и нереляционными БД, создания веб-приложений и коммуникации между микросервисами. 👉Пройдите вступительный тест и займите место в группе по спец.цене: https://otus.pw/8JkK/
  • Библиотека джависта

    Напишите простейший многопоточный ограниченный буфер с использованием synchronized. class QueueSynchronized<T> { private volatile int size = 0; private final Object[] content; private final int capacity; private int out; private int in; private final Object isEmpty = new Object(); private final Object isFull = new Object(); QueueSynchronized(final int capacity) { this.capacity = capacity; content = new Object[this.capacity]; out = 0; in = 0; size = 0; } private int cycleInc(int index) { return (++index == capacity) ? 0 : index; } @SuppressWarnings("unchecked") T get() throws InterruptedException { if (size == 0) { synchronized (isEmpty) { while (size < 1) { isEmpty.wait(); } } } try { synchronized (this) { final Object value = content[out]; content[out] = null; if (size > 1) { out = cycleInc(out); } size--; return (T) value; } } finally { synchronized (isFull) { isFull.notify(); } } } QueueSynchronized<T> put(T value) throws InterruptedException { if (size == capacity) { synchronized (isFull) { while (size == capacity) { isFull.wait(); } } } synchronized (this) { if (size == 0) { content[in] = value; } else { in = cycleInc(in); content[in] = value; } size++; } synchronized (isEmpty) { isEmpty.notify(); } return this; } }
  • Библиотека джависта

    Многопоточность Java. #неОпятьАСнова #javaJunior #javaCore Эта статья, как и все последующие – моя попытка структурировать полученные знания в процессе изучения Java. В этой статье тезисно собрана вся основная информация по теме и те формулировки, которые показались мне наиболее удачными и понятными. Это мой конспект, если хотите. На источники, откуда черпалась информация, предоставлены ссылки в конце статьи. Статья будет полезна тем, кто изучает или повторяет основы Java Core. И тем, кто готовится к собеседованию. https://habr.com/ru/post/693244/
    Многопоточность Java. #неОпятьАСнова #javaJunior #javaCore

    Эта статья, как и все последующие – моя попытка структурировать полученные знания в процессе изучения Java. В этой статье тезисно собрана вся основная информация по теме и те формулировки, которые...

    Хабр
  • Библиотека джависта

    🔴 Как работать с ГЕО-данными в DWH? 📌 Расскажем на открытом уроке 26 октября в 20:00. Занятие проведет Артемий Козырь, Analytics Engineer с 7+ лет опыта работы с данными. 💣 Мы рассмотрим темы: ✔️ Привязка событий к зонам на карте города; ✔️ Агрегирование и аналитика данных с помощью H3 (гексагоны); ✔️ Оптимизация расчетов и производительности, кэширование. 💻 Также на вебинаре подробнее познакомимся с программой онлайн-курса “Data Engineer”. 🔥 Проходите вступительный тест и записывайтесь на урок
  • Библиотека джависта

    FAQ по var в Java Локальные переменные — это "рабочие лошадки" Java. Они используются для хранения промежуточных результатов вычислений. И, в отличие от полей, объявляются, инициализируются и используются в одном блоке. Для понимания кода часто более важны имя и инициализатор, чем тип локальной переменной. https://habr.com/ru/company/otus/blog/688722/
  • Библиотека джависта

    Типы шаблонов проектирования. • Основные (Fundamental) - основные строительные блоки других шаблонов. Большинство других шаблонов использует эти шаблоны в той или иной форме. • Порождающие шаблоны (Creational) — шаблоны проектирования, которые абстрагируют процесс создание экземпляра. Они позволяют сделать систему независимой от способа создания, композиции и представления объектов. Шаблон, порождающий классы, использует наследование, чтобы изменять созданный объект, а шаблон, порождающий объекты, делегирует создание объектов другому объекту. • Структурные шаблоны (Structural) определяют различные сложные структуры, которые изменяют интерфейс уже существующих объектов или его реализацию, позволяя облегчить разработку и оптимизировать программу. • Поведенческие шаблоны (Behavioral) определяют взаимодействие между объектами, увеличивая таким образом его гибкость.
  • Реклама

  • Библиотека джависта

    🔴 Как новичку улучшить качество своего кода и вырасти карьерно? 📌 Конечно же, изучать алгоритмы и структуры данных. 20 октября в 20:00 состоится открытый урок «Создание ассоциативного массива на базе хэш-таблицы и префиксного дерева» в OTUS. 📕 На занятии с опытным программистом займемся вычислением сложности алгоритма и сравнением эффективности каждого из подходов, а именно хэш-таблицы и префиксного дерева. ‼️ Урок проходит в рамках курса «Алгоритмы и структуры данных». 🔥 Для регистрации на вебинар пройдите вступительный тест Реклама. Информация о рекламодателе на сайте www.otus.ru
  • Библиотека джависта

    #вопросы_с_собеседований Что такое «шаблон проектирования»? Шаблон (паттерн) проектирования (design pattern) — это проверенное и готовое к использованию решение. Это не класс и не библиотека, которую можно подключить к проекту, это нечто большее - он не зависит от языка программирования, не является законченным образцом, который может быть прямо преобразован в код и может быть реализован по-разному в разных языках программирования. Плюсы использования шаблонов: • снижение сложности разработки за счёт готовых абстракций для решения целого класса проблем. • облегчение коммуникации между разработчиками, позволяя ссылаться на известные шаблоны. • унификация деталей решений: модулей и элементов проекта. • возможность отыскав удачное решение, пользоваться им снова и снова. • помощь в выборе выбрать наиболее подходящего варианта проектирования. Минусы: • слепое следование некоторому выбранному шаблону может привести к усложнению программы. • желание попробовать некоторый шаблон в деле без особых на то оснований.
  • Библиотека джависта

    ⬆️ Достиг потолка в профессии: как устроиться в международную компанию Расскажем о том, как оценить свой уровень английского, грамотно оформить резюме и успешно пройти собеседование в международную команду. https://proglib.io/sh/1wkX235TZe Зеркало