GithubHelp home page GithubHelp logo

enhorse / java-interview Goto Github PK

View Code? Open in Web Editor NEW
5.4K 212.0 1.9K 2.25 MB

Вопросы и ответы к интервью Java разработчика

Batchfile 50.00% Shell 50.00%
java interview interview-questions

java-interview's Introduction

Свёрстанные вопросы и ответы by Victoria Demidova
Telegram Bot by cmmttd

Вопросы для собеседования на Java Developer

ООП

к оглавлению

JVM

к оглавлению

Java Core

к оглавлению

Java Collections

к оглавлению

Java 8

к оглавлению

Потоки ввода/вывода в Java

к оглавлению

Сериализация

к оглавлению

Многопоточность

к оглавлению

Реактивное программирование

к оглавлению

Servlets, JSP, JSTL

к оглавлению

Базы данных

к оглавлению

SQL

к оглавлению

JDBC

к оглавлению

Тестирование

к оглавлению

Журналирование

к оглавлению

UML

к оглавлению

XML

к оглавлению

Шаблоны проектирования

к оглавлению

Основы HTML

к оглавлению

Основы CSS

к оглавлению

Основы WEB

к оглавлению

Apache Kafka

Архитектура компонентов

Kafka API

Kafka Consumer

Другие вопросы

Сравнение с другими компонентами и системами

к оглавлению

Дополнительные материалы

к оглавлению

Источники

java-interview's People

Contributors

khartnjava avatar enhorse avatar cupcake-master avatar lehasvv2009 avatar andrii-ashomok avatar yura182 avatar comavp avatar olegpoltora avatar artizzely avatar meretskiy avatar sanyaivanov avatar alebabai avatar ivan100kg avatar romiv avatar nickrograch avatar catdog905 avatar cmmttd avatar vladislavi1i1i avatar victoriademidova avatar vinipooh avatar msumeet avatar szelemeh avatar soorya2 avatar frechman avatar olga-larina avatar ykiselev avatar dependabot[bot] avatar eliseevdry avatar esylva avatar kvardekkvar avatar

Stargazers

Ihor K. avatar  avatar Евгений avatar Maxim avatar Danila Valkovets avatar Arseny Konohov avatar Petr Nikishechkin avatar Pavel Desyatnikov avatar Dmitrii Pyrkin avatar wlood avatar Denys Mietielov avatar Ikram Dovletkhanov avatar Юрасов Роман avatar Alexander Zinin  avatar Artem Kraus avatar Andrew avatar Ivan avatar Николай Вертинский avatar sayd avatar  avatar hououin avatar  avatar Михаил avatar Alex Denichenko avatar  avatar Shigapov Amir avatar Oleg Ganisevsky avatar  avatar Zinnur Shamsutdinov avatar Nikita Opara avatar  avatar  avatar Stanislav Semenchuk avatar Oleg avatar Katya Remenchik avatar Pavlo Liebiediev avatar Pavel Khmialeuski avatar  avatar Petrikov Kirill Romanovich avatar  avatar Andrey Shpyakin avatar Aleksandr Kobelskiy avatar  avatar  avatar Ekaterina avatar Mikhail Veselov avatar  avatar  avatar Anatoly avatar Ivan avatar  avatar  avatar Kirill avatar  avatar Edward avatar Царахова Милена avatar  avatar XNX avatar Madi avatar innersent avatar jerolongo avatar Fasolko Alexander Andreevich avatar  avatar Yar Baz avatar  avatar dewerton avatar  avatar  avatar Ivan avatar Andrei Tutski avatar Maksim Davydov avatar  avatar Konstantin avatar  avatar  avatar SazakiMaeda avatar Timur avatar Dima Simonyan avatar  avatar Mark Igushkin avatar Ekaterina Bezheskaia avatar ostolopov avatar Maxim avatar Vladimir Nevsky avatar Aspect avatar Nikola avatar Андрей Селин avatar  avatar ฬะทçะรโลนร avatar  avatar  avatar Egor Kulishov avatar Maksim avatar Bolatkhan avatar Ilya Kvyatkovsky avatar Dzianis Labatsevich avatar Oleg Somov avatar  avatar Michael avatar Gureva Anna Mikhailovna avatar

Watchers

Dmitrii Ovcharenko avatar Vitaly Urazov avatar Sergey Mironov avatar James Cloos avatar Uzkikh Ivan avatar Kurchenkov Alexander avatar Konstantin avatar Ivan Anishchenko avatar Gennadii Kurbatov avatar Yevgeniy Malyshev avatar Dmitry avatar  avatar Ilia Gromov avatar Alexander Brovko avatar Nikita Fokin avatar Serzh Chaikin avatar  avatar Maksym avatar  avatar bex avatar Iurii Kutelmakh avatar Sergey avatar  avatar Ruslan Karimov avatar Eugene Kortov avatar Anton avatar Egor Gordeev avatar Alexandr Juncevich avatar Vasily avatar Viktor Iurkov avatar  avatar Kononov Artem avatar Sergey Baranov avatar  avatar Denis Novikov avatar Andrei Efimov avatar Artem Atkin avatar Benjamin Kolosov avatar  avatar Tolgetmen avatar Alex Palm avatar Darya Belozerceva avatar  avatar Serhii Shvets avatar Sergey Semenov avatar  avatar Vitaliy  avatar Sergey Kalenikov avatar Pavlo avatar Oleksandr avatar Julia Strelkova avatar Аскар Истамов avatar Grigorii Vakhmistrov avatar  avatar Vitalii Denys avatar Alexey Saraev avatar Olga Fedorova avatar Volodymyr Zavada avatar Alexey Rastorguev avatar Andrew avatar  avatar  avatar  avatar Mikhail avatar  avatar  avatar  avatar  avatar SergeyStol avatar sgrinenko avatar Chandra Prakash avatar  avatar Demetreus avatar Greben Viktor avatar Alexander Vasilev avatar  avatar Alexandr Daineko avatar Nikita Trofimov avatar  avatar Eugeniy avatar  avatar Anton avatar  avatar  avatar Aleksandr avatar  avatar  avatar Эдуард Абдульманов avatar Aleksandr Pushin avatar  avatar  avatar Alexey Chistov avatar motemere avatar Pavel Vashkevich avatar Valery Shcharbachevich avatar Maksym Matlo avatar Roman Sanchenko avatar  avatar Nizhad Bayramov avatar  avatar

java-interview's Issues

Возможная ошибка в ответе Чем отличается Statement от PreparedStatement?

https://github.com/enhorse/java-interview/blob/master/jdbc.md#%D1%87%D0%B5%D0%BC-%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D0%B5%D1%82%D1%81%D1%8F-statement-%D0%BE%D1%82-preparedstatement

Суммируя: PreparedStatement выгодно отличается от Statement тем, что при повторном использовании с одним или несколькими наборами параметров позволяет получить преимущества заранее прекомпилированного и кэшированного запроса, помогая при этом избежать SQL Injection.

https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html
При прекомпилорованный запрос документация есть, но непонятно откуда взята информация о кешировании
Если, это о кешировании плана запроса, то из текста воспринимается не так, а как кеширование ответа БД

Метод интерфейса имеет public abstract

Incorrect information

https://github.com/enhorse/java-interview/blob/master/jcf.md#%D1%81%D1%80%D0%B0%D0%B2%D0%BD%D0%B8%D1%82%D0%B5-iterator-%D0%B8-listiterator

При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.

на самом деле
https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html#remove--

Not exact explanation

Привет,

вот здесь
https://github.com/enhorse/java-interview/blob/master/java8.md#%D0%B2-%D1%87%D0%B5%D0%BC-%D1%80%D0%B0%D0%B7%D0%BD%D0%B8%D1%86%D0%B0-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-collection-%D0%B8-stream

Принципиальная разница между ними состоит не в том, можно ли по одному обрабатывать элементы. Здесь важнее концепт сущностей: Collection - это прежде всего воплощение Структур Данных. Тот же Set не просто в себе хранит элементы, он реализует идею множества с уникальными элементами.
Тогда как Stream, это прежде всего абстракция необходимая для реализации "конвеера вычислений", собственно поэтому, результатом работы конвеера являются те или иные Структуры Данных или же результаты проверок/поиска и т.п.

Худшее время добавление в LinkedList скорее (N/2)

Худшее время добавление в LinkedList скорее (N/2) так как для вставки по индексу как и для удаления, может быть выбран как хвост, так и голова списка, тогда получится что максимум надо перейти по половине списка.

https://github.com/enhorse/java-interview/blob/master/jcf.md#%D0%BA%D0%B0%D0%BA%D0%BE%D0%B5-%D1%85%D1%83%D0%B4%D1%88%D0%B5%D0%B5-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0-add-%D0%B4%D0%BB%D1%8F-linkedlist

Not correct explanation

Привет,

вот тут есть момент https://github.com/enhorse/java-interview/blob/master/java8.md#%D0%BE%D0%B1%D1%8A%D1%8F%D1%81%D0%BD%D0%B8%D1%82%D0%B5-%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-systemoutprintln

Здесь сказано "... передачу ссылки на статический метод println() класса System.out", но это не корректно, т.к. println - не статический метод, а System.out - не класс. В данном случае показан instance method reference на примере статического поля out в классе System.

Maven

Че-нибудь по мавену бы

Local classes - incorrect info

what

https://github.com/enhorse/java-interview/blob/master/core.md#%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D0%BA%D0%BB%D0%B0%D1%81%D1%81-%D0%BA%D0%B0%D0%BA%D0%BE%D0%B2%D1%8B-%D0%B5%D0%B3%D0%BE-%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8

Не могут иметь внутри себя статических объявлений (полей, методов, классов);

why

Поля всё-таки могут иметь статические

image

Spring

Че-нибудь по спрингу бы

Каков порядок вызова конструкторов и блоков инициализации с учётом иерархии классов?

Необходимо поменять вопрос или ответ на него, либо добавить пояснение. Если спрашиваем про порядок вызова, то сначала вызывается конструктор самого младшего и далее выше по иерархии, но выполняются они в том порядке, какой написан в ответе. В дебагере порядок вызова виден.

public class A extends B {
    public A() {
        super("From A");
        System.out.println(", но выполняются от самого старшего к самому младшему");
    }
}
public class B extends C {
    public B(String param) {
        super("From B");
        System.out.print(" самого младшего к самому старшему");
    }
}
public class C {
    public C(String param) {
        System.out.print("На самом деле вызываются от");
    }
}

Screenshot 2021-04-19 at 20 57 21

Сравните Iterator и ListIterator

"При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала."

Iterator же имеет remove()?

Ошибка в описании дефолтной реализации Object#hashCode

https://github.com/enhorse/java-interview/blob/master/core.md#%D0%BA%D0%B0%D0%BA%D0%B8%D0%BC-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%BC-%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D1%8B-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-hashcode-%D0%B8-equals-%D0%B2-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B5-object

На самом деле, кажется, адрес памяти уже давно не используется.
При сборке мусора объект может перемещаться из одной области памяти в другую (зависит от реализации сборщика), и тогда адрес памяти объекта меняется, и если хеш-код будет от него зависеть, то и хеш-код поменяется, а так быть не должно.

https://stackoverflow.com/questions/49172698/default-hashcode-implementation-for-java-objects (accepted answer)
https://bugs.openjdk.org/browse/JDK-8199394

Lexical mistakes

Есть пару лексических ошибок:
image
и
image

Я исправил у себя локально это. Могу ли я запушить эти изменения?

Ошибка в вопросе "в чём разница между «конкуренцией» и «параллелизмом»?"

Добрый день! У вас тут ошибка: "если поток управления один, то конкурентного выполнения быть не может" https://en.wikipedia.org/wiki/Concurrency_(computer_science) и выдержка из этой статьи: "Concurrency is about structure, parallelism is about execution, concurrency provides a way to structure a solution to solve a problem that may (but not necessarily) be parallelizable.[3]." Из этого следует, что конкурентное выполнение может быть на одном процессоре. И вот еще на русском статья https://www.zhashkevych.com/concurrency-and-parallelism.

Roadmap

Почитать для собеза

Empty questions

HashSet use only key

Неверно - "В качестве ключа и значения используется добавляемый элемент.". HashSet использует добавляемый элемент только в качестве ключа, а значение - объект Object.

Неточность по кастам

Например, к запрещенным преобразованиям относятся приведения от любого ссылочного типа к примитивному и наоборот (кроме преобразования к строке)

Можно ещё привести боксовую ссылку к примитивному типу.

Jvm Architecture

Please provide access to create branches and PR for adding information about JVM Architecture topic.

Правила переопределение метода Object.equals()

Ссылка: https://github.com/enhorse/java-interview/blob/master/core.md#%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0-%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0-objectequals

Не стоит делать проверку с помощью instanceof, так как такая проверка будет возвращать true для подклассов и будет работать правильно только в случае, если класс объявлен как immutable. Вместо этого желательно использовать только getClass()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.