-
Notifications
You must be signed in to change notification settings - Fork 1
Скриннинг по Java
Чем SQL базы отличаются от NoSQL? SQL базы представляют из себя таблицы с индексами и реляционные отношения NoSQL - базы хранят целый документ, у которго есть timestamp и id Какие NoSQL базы знаете, Cassandra MongoDB какие у них области применения и в чем их преимущества/недостатки по сравнению с SQL
преимущества NoSQL в быстрой вставке, т.к. они не пишут архив логов как SQL базы
недостатки, если транзакция не завершилась и пропала свзь, то данные восстановить невозможно непригодно для банковских транзакций
Что такое ORM? +- Object-Relational Mapping
Hibernate, Jooq, MyBatis система Отображения таблиц на объекты
С какими бд работали? Oracle, DB2, MySql, Postgres, MongoDB, Cassandra, HBase, SQL Server, Access
Чем container отличается от image docker images покажет докер образы если их запустить, то это уже будут контейнеры их можно увидеть docker ps Таким образом, работающий экземпляр image является container.
Что такое Dockerfile? Dockerfile - это обычный конфигурационный файл, описывающий пошаговое создание среды вашего приложения.
В этом файле подробно описывается, какие команды будут выполнены, какие образы задействованы, и какие настройки будут применены. А движок Docker-а при запуске уже распарсит этот файл (именуемый как Dockerfile), и создаст из него соответствующий образ (Image), который был описан.
например, если взять такой докер файл
cat docker-compose.yml
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
depends_on:
- zookeeper
и сказать
docker-compose up -d
то поднимутся образы кафки и зукипера
Что такое массив?
это структура данных, в которой хранятся элементы одного типа. Его можно представить, как набор пронумерованных ячеек, в каждую из которых можно поместить какие-то данные (один элемент данных в одну ячейку). Его можно представить как ряд кресел без пропусков в кинотеатре с индексом от 0 до n-1
https://proglib.io/p/6-search-algorithms-java Какова временная сложность поиска в массиве, а в отсортированном? временная сложность поиска в массиве равно сложности линейного поиска O(N). в отсортированном массиве Временная сложность алгоритма двоичного поиска равна O(log (N))
Реализации интерфейса Map в Java? В чем отличия этих реализаций?
Map — это структура данных, которая содержит набор пар “ключ-значение”.
, Map является интерфейсом, и в стандартном jdk содержит основные реализации: Hashmap, LinkedHashMap, Hashtable, TreeMap.
Порядок элементов. HashMap и Hashtable не гарантируют, что элементы будут храниться в порядке добавления. Кроме того, они не гарантируют, что порядок элементов не будет меняться со временем. В свою очередь, TreeMap гарантирует хранение элементов в порядке добавления или же в соответствии с заданным компаратором.
Допустимые значения. HashMap позволяет иметь ключ и значение null, HashTable — нет. TreeMap может использовать значения null только если это позволяет компаратор. Без использования компаратора (при хранении пар в порядке добавления) значение null не допускается.
Синхронизация. Только HashTable синхронизирована, остальные — нет. Если к мапе не будут обращаться разные потоки, рекомендуется использовать HashMap вместо HashTable.
До появления в JDK 1.5 реализации ConcurrentHashMap, существовало несколько способов описания хэш-таблиц. Первоначально в JDK 1.0 был класс Hashtable. Hashtable — потокобезопасная и легкая в использовании реализация хэш-таблицы. Проблема HashTable заключалась, в первую очередь, в том, что при доступе к элементам таблицы производилась её полная блокировка. Все методы Hashtable были синхронизированными. ConcurrentHashMap - не блокирует на чтение и блокирует на запись только 1 сегмент Карта делится на N различных сегментов (16 по умолчанию, максимальное значение может быть 16-битным и представлять собой степень двойки Каждый сегмент представляет собой потокобезопасную таблицу элементов карты. https://habr.com/ru/post/132884/
Какие есть еще структуры данных?
1. Array
2. Linked List
3. Hash table
4. Stack
5. Queue
6. Set
https://www.java67.com/2013/08/ata-structures-in-java-programming-array-linked-list-map-set-stack-queue.html https://hackernoon.com/50-data-structure-and-algorithms-interview-questions-for-programmers-b4b1ac61f5b0
Приведите пример алгоритма с временной сложностью n*log(n) Сортировка слиянием
https://habr.com/ru/post/188010/
Чем отличается абстрактный класс от интерфейса? Абстрактный класс — это класс, у которого не реализован один или больше методов. Интерфейс — это абстрактный класс, у которого ни один метод не реализован, все они публичные и нет переменных класса.
Абстрактный класс — это класс, у которого не реализован один или больше методов. Интерфейс — это абстрактный класс, у которого ни один метод не реализован, все они публичные и нет переменных класса.
Что такое Enum?
Что такое неизменяемый класс? Зачем он может быть нужен? Immutable class - это класс,который после создания нельзя изменить Он нужен для инкапсуляции, сокрытия данных, для того, чтобы этот класс отдавал один и тот же хэш, для многопоточного программирования - с ним не будет проблем с доступом к этому классу всех потоков.
С чем работали из java.util.concurrent?
ConcurrentHashMap
CopyOnWriteArrayList
BlockingQueue
CountDownLatch
CyclicBarrier
Future
RunnableFuture
Callable
Executor
ExecutorService
ScheduledThreadPoolExecutor
ForkJoinPool
ForkJoinTask
ReentrantLock
AtomicBoolean, AtomicInteger, AtomicLong
https://habr.com/ru/company/luxoft/blog/157273/
В чем отличия fair-lock от unfair-lock? Fair lock - это когда потоки получают доступ к ресурсу в том порядке, в котором они захотели захватить блокировку на ресурс. Unfair - это когда поток, который оказался в нужном месте в нужный момент, заберет блокировку себе, даже если он пришел позже чем остальные потоки.
Что такое Semaphore? Семафоры чаще всего используются для ограничения количества потоков при работе с аппаратными ресурсами или файловой системой. Доступ к общему ресурсу управляется с помощью счетчика. Если он больше нуля, то доступ разрешается, а значение счетчика уменьшается. Если счетчик равен нулю, то текущий поток блокируется, пока другой поток не освободит ресурс.
Работали ли вы с Spring? Какие задачи решает Spring?
Да. Spring выступает и как DI контейнер и как набор технологий для реализации программ на java Основные технологии: внедрение зависимостей, события, ресурсы, i18n, проверка, связывание данных, преобразование типов, SpEL, AOP. Инструменты тестирования: mock-объекты, TestContext, Spring MVC Test, WebTestClient. Доступ к данным: транзакции, поддержка DAO, JDBC, ORM, Marshalling XML. Интеграцию: удалённое взаимодействие, JMS, JCA, JMX, электронная почта, задачи, планирование, кеш.
https://habr.com/ru/post/490586/ https://habr.com/ru/post/334448/ https://javastudy.ru/interview/jee-spring-questions-answers/ https://tproger.ru/articles/spring-modules-overview/
Что такое Spring бины? это обычные объекты, которые управляются Spring-ом и живут внутри его DI-контейнера. Бином является почти все в Spring — сервисы, контроллеры, репозитории, по сути все приложение состоит из набора бинов. Их можно регистрировать, получать в качестве зависимостей, проксировать, мокать
Какие варианты работы с БД при использовании спринга?
Spring Data JPA
spring-jdbc
Jooq
MyBatis
Что такое хеш-функция?
это функции, предназначенные для «сжатия» произвольного сообщения или набора данных, записанных, как правило, в двоичном алфавите, в некоторую битовую комбинацию фиксированной длины, называемую сверткой.
есть хэш функция для определения ячейки в хэш мапе получает остаток от деления хэша на число ячеек на пример на 16
Что такое коллизия?
"коллизия хеш-кода". Это происходит, когда два объекта имеют одинаковый хэш-код, но не равны.
Какие есть способы разрешить коллизию? коллизии разрешаются с помощью связанного списка linkedList а в Java 8 TreeMap Что улучшает производительность в худшем случае с O(n) до O(log n).
https://habr.com/ru/post/421179/
синдром выпускника - когда делаешь лучше работу, когда ищешь работу))