Что напечатает код?👆
Anonymous Quiz
39%
"1"
24%
"null"
7%
пустую строку
25%
будет exception
6%
узнать ответ
🔥8👍3😢1
🔍 Ответ на задачу про исключение в стримах Java! 🚨
При выполнении данного кода возникнет исключение NullPointerException.
Давайте разберём, почему это происходит. 🤔
Код:
Проблема возникает в строчке findFirst(). Метод .map(Fee::getDescription) создаёт стрим, где первый элемент имеет значение null из-за description равного null в объекте Fee.
Когда findFirst() пытается вернуть найденное значение — а это null — метод Optional.of() выбрасывает NullPointerException, поскольку Optional.of() не позволяет обёртывать null значениями. Для обработки null значений нужно использовать Optional.ofNullable().
Чтобы исправить это и избежать исключения, можно немного изменить этот код:
String s = fees.stream()
.map(Fee::getDescription)
.filter(Objects::nonNull) // добавляем этот фильтр
.findFirst()
.orElse("1");
Этот код сначала фильтрует все null значения из стрима и предотвращает NullPointerException.
Если вам понравился разбор, не забудьте поставить лайк, подписаться и оставить комментарий! 😊
#streamAPI #nullHandling #java_interview_tasks
При выполнении данного кода возникнет исключение NullPointerException.
Давайте разберём, почему это происходит. 🤔
Код:
public static class Fee {
private String description;
public Fee(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
}
public static void main(String[] args) {
List<Fee> fees = List.of(new Fee(null));
String s = fees.stream()
.map(Fee::getDescription)
.findFirst()
.orElse("1");
System.out.println(s);
}
Проблема возникает в строчке findFirst(). Метод .map(Fee::getDescription) создаёт стрим, где первый элемент имеет значение null из-за description равного null в объекте Fee.
Когда findFirst() пытается вернуть найденное значение — а это null — метод Optional.of() выбрасывает NullPointerException, поскольку Optional.of() не позволяет обёртывать null значениями. Для обработки null значений нужно использовать Optional.ofNullable().
Чтобы исправить это и избежать исключения, можно немного изменить этот код:
String s = fees.stream()
.map(Fee::getDescription)
.filter(Objects::nonNull) // добавляем этот фильтр
.findFirst()
.orElse("1");
Этот код сначала фильтрует все null значения из стрима и предотвращает NullPointerException.
Если вам понравился разбор, не забудьте поставить лайк, подписаться и оставить комментарий! 😊
#streamAPI #nullHandling #java_interview_tasks
🔥21👍10❤1🤝1
Нужно найти элемент в коллекции по значению, какую реализацию лучше выбрать с точки зрения асимптотической сложности?
Anonymous Quiz
36%
ArrayList
17%
LinkedList
44%
Разницы нет
3%
Узнать ответ
👍6🔥3
Ответ к вопросу про поиск элемента в коллекции по значению:
В случае обеих предложенных реализаций нужно будет последовательно перебрать все элементы в коллекции. Поэтому сложность будет О(n) и для случая linked list и для array list. В данном варианте разницы с точки зрения сложности поиска нет.
В случае обеих предложенных реализаций нужно будет последовательно перебрать все элементы в коллекции. Поэтому сложность будет О(n) и для случая linked list и для array list. В данном варианте разницы с точки зрения сложности поиска нет.
👍6🔥3❤1
Что напечатает код?👆👆👆
Anonymous Quiz
10%
true,true,true,true,true
9%
true,false,false,false,false
25%
true,false,true,false,false
28%
true,false,true,true,false
5%
true,false,true,true,true
23%
другой ответ
🔥11👍3❤1
🔍 Ответ на задачу про MegaClass 📊
Давайте разберём, что именно будет напечатано при выполнении данного кода. Здесь мы имеем класс MegaClass с переопределёнными методами equals() и hashCode(), и работаем с объектами этого класса в HashSet. Обратите внимание на влияние изменения состояния объекта на результат работы методов, связанных с коллекциями.
Пояснения:
A: set.add(o) - Возвращает true, потому что объект o только что добавлен в set.
B: set.contains(new MegaClass(10)) - Возвращает false, так как после изменения поля i, o имеет hashCode = 1000, который не совпадает с 1000 у new MegaClass(10).
C: set.add(new MegaClass(10)) - Возвращает true, объект с hashCode равным 10 не найден в set, потому что изменили o.
D: set.contains(new MegaClass(1000)) - Возвращает false, так как теперь oбъект, у которого hashcode 1000, содержится в set, но предыдущий объект был добавлен с хешкодом 10 и поэтому он не найдется теперь.
E: new MegaClass(10).equals(new MegaClass(1000)) - Возвращает false, так как поля i отличаются.
📈 Этот пример отлично демонстрирует, насколько важно соблюдать неизменяемость полей, участвующих в вычислении hashCode() и equals(), при работе с коллекциями.
Если вам понравился анализ этого кода и вы хотите узнавать больше, ставьте лайк, подписывайтесь на канал и делитесь своими мыслями в комментариях! 👍💬
#java #hashcode #equals #collections #java_interview_tasks
Давайте разберём, что именно будет напечатано при выполнении данного кода. Здесь мы имеем класс MegaClass с переопределёнными методами equals() и hashCode(), и работаем с объектами этого класса в HashSet. Обратите внимание на влияние изменения состояния объекта на результат работы методов, связанных с коллекциями.
Пояснения:
A: set.add(o) - Возвращает true, потому что объект o только что добавлен в set.
B: set.contains(new MegaClass(10)) - Возвращает false, так как после изменения поля i, o имеет hashCode = 1000, который не совпадает с 1000 у new MegaClass(10).
C: set.add(new MegaClass(10)) - Возвращает true, объект с hashCode равным 10 не найден в set, потому что изменили o.
D: set.contains(new MegaClass(1000)) - Возвращает false, так как теперь oбъект, у которого hashcode 1000, содержится в set, но предыдущий объект был добавлен с хешкодом 10 и поэтому он не найдется теперь.
E: new MegaClass(10).equals(new MegaClass(1000)) - Возвращает false, так как поля i отличаются.
📈 Этот пример отлично демонстрирует, насколько важно соблюдать неизменяемость полей, участвующих в вычислении hashCode() и equals(), при работе с коллекциями.
Если вам понравился анализ этого кода и вы хотите узнавать больше, ставьте лайк, подписывайтесь на канал и делитесь своими мыслями в комментариях! 👍💬
#java #hashcode #equals #collections #java_interview_tasks
👍8🔥8❤5
Если машина проехала весь путь в одну сторону со скоростью 40 км/ч, а обратно - со скоростью 60 км/ч, какова была её средняя скорость?
Anonymous Quiz
57%
50
26%
48
5%
45
1%
40
0%
30
5%
Другой ответ
6%
Узнать ответ
🤔13🔥3🐳3😁2❤1
Ответ на контринтуитивную задачу про среднюю скорость:
Пусть длина пути в одну сторону будет 1. Тогда весь путь, пройденный машиной, будет 2.
Время, затраченное на путь в одну сторону со скоростью 40 км/ч, равно:
t1=1/40 часов
Время, затраченное на обратный путь со скоростью 60 км/ч, равно:
t2=1/60 часов
Общее время, затраченное на весь путь, будет:
t=t1+t2=1/40+1/60=5/120=1/24
Средняя скорость определяется как отношение всего пройденного пути к общему времени:
vср=2/t=48
Ответ:48км/ч
Пусть длина пути в одну сторону будет 1. Тогда весь путь, пройденный машиной, будет 2.
Время, затраченное на путь в одну сторону со скоростью 40 км/ч, равно:
t1=1/40 часов
Время, затраченное на обратный путь со скоростью 60 км/ч, равно:
t2=1/60 часов
Общее время, затраченное на весь путь, будет:
t=t1+t2=1/40+1/60=5/120=1/24
Средняя скорость определяется как отношение всего пройденного пути к общему времени:
vср=2/t=48
Ответ:48км/ч
👍14👌2😡2❤1🔥1
Forwarded from xpinjection
Осенние выходные - отличное время для саморазвития. А тут еще и дополнительный повод есть - на этой неделе прошла конференция Devoxx Belgium 2025 и организаторы опубликовали все видео на YouTube. А это целых 270 видео докладов и deep dive сессий.
Самой популярной темой конференции стали Generative AI и автономные агенты на его основе. Но хватало интересных сессий и на другие темы:
- Java 25 (текущий LTS релиз) и развитие свежих фичей;
- Spring Boot 4, выход которого должен состояться в ноябре этого года;
- развитие модульных монолитов и DDD в Spring Boot стеке;
- инфраструктура и контейнеризация.
Вот ссылка на полный плейлист, наслаждайтесь: https://youtube.com/playlist?list=PLRsbF2sD7JVrgzHNkX4wUHmoGICMaE446&si=2zhewc-BufBWvdLk
Самой популярной темой конференции стали Generative AI и автономные агенты на его основе. Но хватало интересных сессий и на другие темы:
- Java 25 (текущий LTS релиз) и развитие свежих фичей;
- Spring Boot 4, выход которого должен состояться в ноябре этого года;
- развитие модульных монолитов и DDD в Spring Boot стеке;
- инфраструктура и контейнеризация.
Вот ссылка на полный плейлист, наслаждайтесь: https://youtube.com/playlist?list=PLRsbF2sD7JVrgzHNkX4wUHmoGICMaE446&si=2zhewc-BufBWvdLk
YouTube
Devoxx Belgium 2025
Share your videos with friends, family, and the world
🔥5❤3👍1
Что будет в результате исполнения этого кода?
Anonymous Quiz
28%
напечатается true
11%
напечатается false
18%
exception при вычислении s1
19%
exception при вычислении s2
10%
не скомпилируется
2%
что то еще
13%
узнать ответ
⚡3👍3🔥2
🔍 Ответ на задачу про работу String.valueOf() с null! 💡
Вызов String.valueOf((Object) null) в первой строке приводит к тому, что Java воспринимает null как объект, и возвращает строку "null".
Во второй строке, String.valueOf(null) вызывает перегруженный метод, который принимает char[]. Но поскольку передан null, вызов упадет с NPE. 🚀
Выводы: всегда смотрите реализацию метода, который вызывается.
Может быть несколько перегруженных методов, реализация которых очень сильно отличается.
Спасибо, что дочитали до сюда) Не забудьте поставить лайк, оставить комментарий и подписаться! 🙌
#Java #NullPointerException #String #java_interview_tasks
String s1 = String.valueOf((Object) null);
String s2 = String.valueOf(null);
System.out.println(Objects.equals(s1, s2));
Вызов String.valueOf((Object) null) в первой строке приводит к тому, что Java воспринимает null как объект, и возвращает строку "null".
Во второй строке, String.valueOf(null) вызывает перегруженный метод, который принимает char[]. Но поскольку передан null, вызов упадет с NPE. 🚀
Выводы: всегда смотрите реализацию метода, который вызывается.
Может быть несколько перегруженных методов, реализация которых очень сильно отличается.
Спасибо, что дочитали до сюда) Не забудьте поставить лайк, оставить комментарий и подписаться! 🙌
#Java #NullPointerException #String #java_interview_tasks
Telegram
Java Interview Tasks
Что будет в результате исполнения этого кода?
👍27❤3🔥2
👍6✍1🔥1🙏1
🔍 Ответ на задачу про сравнение лонгов:🌟
В методе main, вызывается checkEvent с новым объектом Event, где id инициализирован null. Поэтому, при сравнении (event.id == 42) произойдет неявный вызов метода java.lang.Long.longValue(), что вызовет NullPointerException и программа завершится с ошибкой.
Программа выведет исключение:
Exception in thread "main" java.lang.NullPointerException
👨💻 Советы: всегда проверяйте null-ссылки перед использованием объектов во избежание необработанных исключений!
Интересная задача? Поддержите лайком и оставьте комментарий! 😊👇
#java #exceptionHandling #java_interview_tasks
В методе main, вызывается checkEvent с новым объектом Event, где id инициализирован null. Поэтому, при сравнении (event.id == 42) произойдет неявный вызов метода java.lang.Long.longValue(), что вызовет NullPointerException и программа завершится с ошибкой.
Программа выведет исключение:
Exception in thread "main" java.lang.NullPointerException
👨💻 Советы: всегда проверяйте null-ссылки перед использованием объектов во избежание необработанных исключений!
Интересная задача? Поддержите лайком и оставьте комментарий! 😊👇
#java #exceptionHandling #java_interview_tasks
🔥9👍7🙏1
Посмотрите на следующий код и выберите, что будет выведено на экран:
public class Main {
public static void main(String[] args) {
String s1 = "Hello";
String s2 = s1;
s1 = s1.concat(" World");
System.out.println(s2);
}
}🔥3❤1👍1