enhorse / java-interview Goto Github PK
View Code? Open in Web Editor NEWВопросы и ответы к интервью Java разработчика
Вопросы и ответы к интервью Java разработчика
Добрый день! У вас тут ошибка: "если поток управления один, то конкурентного выполнения быть не может" 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.
Тут исправить "Все методы неявно объявляются как public" на "как public abstract" как пишется в следующем разделе. Потому что вопрос был про все модификаторы, а не только про доступ.
Например, к запрещенным преобразованиям относятся приведения от любого ссылочного типа к примитивному и наоборот (кроме преобразования к строке)
Можно ещё привести боксовую ссылку к примитивному типу.
На самом деле, кажется, адрес памяти уже давно не используется.
При сборке мусора объект может перемещаться из одной области памяти в другую (зависит от реализации сборщика), и тогда адрес памяти объекта меняется, и если хеш-код будет от него зависеть, то и хеш-код поменяется, а так быть не должно.
https://stackoverflow.com/questions/49172698/default-hashcode-implementation-for-java-objects (accepted answer)
https://bugs.openjdk.org/browse/JDK-8199394
Чекай пару раз в день
Почитать для собеза
У меня в этом примере возникают две ошибки 'method_()' is already defined in 'Class_'
class Class_ {
static
void method_(){ }
void method_(){ }
}
java 17.0.2 2022-01-18 LTS
Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)
Привет,
Принципиальная разница между ними состоит не в том, можно ли по одному обрабатывать элементы. Здесь важнее концепт сущностей: Collection - это прежде всего воплощение Структур Данных. Тот же Set не просто в себе хранит элементы, он реализует идею множества с уникальными элементами.
Тогда как Stream, это прежде всего абстракция необходимая для реализации "конвеера вычислений", собственно поэтому, результатом работы конвеера являются те или иные Структуры Данных или же результаты проверок/поиска и т.п.
Неверно - "В качестве ключа и значения используется добавляемый элемент.". HashSet использует добавляемый элемент только в качестве ключа, а значение - объект Object.
private static final Object PRESENT = new Object();
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
От Ромки
Худшее время добавление в LinkedList скорее (N/2) так как для вставки по индексу как и для удаления, может быть выбран как хвост, так и голова списка, тогда получится что максимум надо перейти по половине списка.
Если вызвать System.exit(code), то блок finally не исполнится.
Было бы здорово иметь ссылки на форматированные документы (txt, rtf, docx, pdf) по каждому разделу и в целом для печати.
Суммируя: PreparedStatement выгодно отличается от Statement тем, что при повторном использовании с одним или несколькими наборами параметров позволяет получить преимущества заранее прекомпилированного и кэшированного запроса, помогая при этом избежать SQL Injection.
https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html
При прекомпилорованный запрос документация есть, но непонятно откуда взята информация о кешировании
Если, это о кешировании плана запроса, то из текста воспринимается не так, а как кеширование ответа БД
ListIterator is not fail-safe according to multiple sources, e.g.:
https://www.techiedelight.com/fail-fast-iterator-vs-fail-safe-iterator-java/
Не могут иметь внутри себя статических объявлений (полей, методов, классов);
Поля всё-таки могут иметь статические
Не стоит делать проверку с помощью instanceof, так как такая проверка будет возвращать true для подклассов и будет работать правильно только в случае, если класс объявлен как immutable. Вместо этого желательно использовать только getClass()
"При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала."
Iterator же имеет remove()?
Метод push()
должен возвращать тип NonBlockingStack<T>
вместо Stack<T>
.
Че-нибудь по мавену бы
При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.
на самом деле
https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html#remove--
Че-нибудь по спрингу бы
Если вы хотите переопределить equals()
, какие условия должны выполняться? (пустой)
(https://github.com/enhorse/java-interview/blob/master/core.md#%D0%B5%D1%81%D0%BB%D0%B8-%D0%B2%D1%8B-%D1%85%D0%BE%D1%82%D0%B8%D1%82%D0%B5-%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C-equals-%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F-%D0%B4%D0%BE%D0%BB%D0%B6%D0%BD%D1%8B-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D1%82%D1%8C%D1%81%D1%8F)
Тоже самое что и -
Правила переопределения метода Object.equals()
.
https://github.com/enhorse/java-interview/blob/master/core.md#%D0%BF%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
Какая связь между hashCode()
и equals()
?
https://github.com/enhorse/java-interview/blob/master/core.md#%D0%BA%D0%B0%D0%BA%D0%B0%D1%8F-%D1%81%D0%B2%D1%8F%D0%B7%D1%8C-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-hashcode-%D0%B8-equals
Привет,
Здесь сказано "... передачу ссылки на статический метод println() класса System.out", но это не корректно, т.к. println - не статический метод, а System.out - не класс. В данном случае показан instance method reference на примере статического поля out в классе System.
Необходимо поменять вопрос или ответ на него, либо добавить пояснение. Если спрашиваем про порядок вызова, то сначала вызывается конструктор самого младшего и далее выше по иерархии, но выполняются они в том порядке, какой написан в ответе. В дебагере порядок вызова виден.
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("На самом деле вызываются от");
}
}
Please provide access to create branches and PR for adding information about JVM Architecture topic.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.