240 вопросов и ответов на собеседование по Java Core

Поделиться
HTML-код
  • Опубликовано: 14 дек 2024

Комментарии • 37

  • @ReadWriteCode
    @ReadWriteCode  Год назад +10

    GitHub repository github.com/ReadAndWritecode/ReadAndWritecode/blob/master/src/interview/240-core-java-interview-questions-and-answers-all-parts.pdf

    • @ЕвгенийВовк-ы7ь
      @ЕвгенийВовк-ы7ь 6 месяцев назад +1

      Как красиво у тебя всё оформлено. Спасибо тебе!

  • @vitamin2845
    @vitamin2845 2 месяца назад +1

    Материал огонь. Спасибо за твои труды. Теперь бы еще найти время все это просмотреть))

  • @iLynch47
    @iLynch47 10 месяцев назад +2

    Болшое спасибо за проделанный труд. Вы очень помогает. Успехов вам.

    • @dm1tryr905
      @dm1tryr905 10 месяцев назад

      Russian MF Do you speak it!

  • @samvelsayadyan9113
    @samvelsayadyan9113 Год назад +13

    Такого ещё не было в ютюбе, чтобы прям столько вопросов и ответов в одном видео. Спасибо за труд!!.
    А можно ещё такие видео снять про spring?

    • @ReadWriteCode
      @ReadWriteCode  Год назад +6

      И вам спасибо за просмотр!).
      Как раз следующая серия будет про вопросы и ответы по spring.

  • @МаксимСамойлов-р6ф

    Однозначно ЛАЙК за труд!!! Ждём видос по Spring!!!!

    • @ReadWriteCode
      @ReadWriteCode  Год назад +2

      На канале уже 2 видео есть в плейлисе Interview Spring можно пока их смотреть)
      ruclips.net/video/nNhMKhO34gE/видео.html
      ruclips.net/video/TwGtVidkhhs/видео.html
      Планирую 5 роликов снять

  • @ЕвгенийВовк-ы7ь
    @ЕвгенийВовк-ы7ь 6 месяцев назад +2

    Спасибо тебе огромное!!!
    Прям очень всё круто!

  • @correctraccoon1262
    @correctraccoon1262 Год назад +2

    Спасибо! Очень полезно!

  • @kuarkot
    @kuarkot Месяц назад +1

    Спасибо.

  • @edmond-dantes-1796
    @edmond-dantes-1796 Год назад +1

    Вау, это очень мощно, круто, продолжай, ждем такое по Спрингу, хиберу и так далее. Это очень полезный контент
    P.S. уже увидел, что такие видео есть, но комент пусть будет)

  • @ellirabethj6044
    @ellirabethj6044 11 месяцев назад +1

    Шедевр однозначно

  • @Алексейм-с7б
    @Алексейм-с7б Год назад +1

    классное видео, запиши еще по спрингу что-то)))

    • @ReadWriteCode
      @ReadWriteCode  Год назад

      по спрингу есть на канале 4 видео)

  • @dmii3iy
    @dmii3iy Год назад +1

    Спасибо!

  • @askhatsamuratov5353
    @askhatsamuratov5353 19 дней назад +1

    3 вопрос: разве тип возвращаемого значения входит в сигнатуру метода?

    • @ReadWriteCode
      @ReadWriteCode  18 дней назад +1

      Спасибо за вопрос!.
      В целом нет, но там для переопределения нужно было так сказать для представления).

    • @МаксимМашнин
      @МаксимМашнин 18 часов назад

      @@ReadWriteCode а зачем тогда в скобках под сигнатурой писать "тем же именем и тем же типом возвращаемого значения", если это не является сигнатурой. По-другому нормально нельзя было сформулировать?

  • @irinaprokopowicz4818
    @irinaprokopowicz4818 11 месяцев назад +2

    почему в вопросе 125 2:01:10 говорится, что метод notify() и notifyAll() снимают блокировку, если они только оповещают другие потоки, которые ожидают на объекте синхронизации своей очереди?

    • @ReadWriteCode
      @ReadWriteCode  10 месяцев назад +4

      Прошу прощения за опечатку )
      Блокировка объекта будет освобождена только после того, как поток, который удерживает блокировку, завершит свой синхронизированный блок кода.
      На самом деле notify() и notifyAll() в Java не снимают блокировку объекта. Это распространенное заблуждение. Давайте разберемся, как они работают на самом деле.
      В Java, методы notify() и notifyAll() используются в многопоточном программировании в сочетании с методами wait(), notify() и notifyAll(), которые являются частью механизма ожидания и уведомления.
      Метод wait():
      Когда поток вызывает wait() на объекте, он освобождает блокировку этого объекта и переходит в состояние ожидания до тех пор, пока другой поток не вызовет notify() или notifyAll() на том же объекте.
      Метод notify():
      Когда поток вызывает notify(), он не освобождает блокировку этого объекта сразу. Вместо этого notify() сигнализирует одному из ожидающих потоков (если таковые есть), что он может продолжить работу. Однако поток, который вызвал notify(), продолжит удерживать блокировку до тех пор, пока не завершит синхронизированный блок (то есть покинет блок synchronized).
      Метод notifyAll():
      Аналогично notify(), notifyAll() сигнализирует всем ожидающим потокам, что они могут продолжить выполнение, но поток, вызвавший notifyAll(), продолжит удерживать блокировку до выхода из синхронизированного блока.
      Таким образом, notify() и notifyAll() лишь сигнализируют другим потокам о возможности продолжить выполнение, но не освобождают блокировку сразу.

  • @irinaprokopowicz4818
    @irinaprokopowicz4818 11 месяцев назад +1

    Поясните пожалуйста 74 вопрос "можем ли мы использовать оператор catch для проверяемых исключений?" и ответ на него, это 1:11:30

    • @ReadWriteCode
      @ReadWriteCode  11 месяцев назад +8

      Конечно, давайте более подробно.
      Существуют два типа исключений: проверяемые (checked) и непроверяемые (unchecked). Проверяемые исключения - это те, которые должны быть обработаны или объявлены в сигнатуре метода с использованием ключевого слова throws. Непроверяемые исключения могут быть обработаны, но это необязательно.
      Оператор catch предназначен для обработки исключений. Однако, когда речь идет о проверяемых исключениях, существует правило, что они должны быть либо обработаны в блоке catch, либо объявлены в сигнатуре метода с использованием throws.
      Теперь рассмотрим ваш вопрос и ответ:
      "Если нет возможности вызвать исключение в нашем коде, то мы не можем объявлять блок catch для обработки проверяемых исключений".
      Это означает, что если в вашем коде нет явного вызова (броска) проверяемого исключения, то компилятор не даст вам объявить блок catch для этого исключения. Например:
      public class Example {
      public static void main(String[] args) {
      // Нет явного вызова проверяемого исключения,
      // поэтому блок catch для него нельзя объявить.
      try {
      // some code
      } catch (CheckedException e) { // Ошибка компиляции
      e.printStackTrace();
      }
      }
      }
      В данном примере CheckedException не может быть обработан в блоке catch, потому что в коде отсутствует явный вызов этого исключения.
      Ошибки времени компиляции будут возникать, если вы попытаетесь обработать проверяемые исключения в блоке catch, но не предоставите код, который может вызвать эти исключения в блоке try.
      Предположим, у нас есть класс, который объявляет метод, бросающий проверяемое исключение, и пытаемся его обработать в блоке catch. Если не будет вызова этого метода, компилятор выдаст ошибку. Вот пример:
      import java.io.IOException;
      public class Example {
      // Метод, бросающий проверяемое исключение
      public static void throwError() throws IOException {
      throw new IOException("This is a checked exception");
      }
      public static void main(String[] args) {
      try {
      // Нет явного вызова throwError(), но мы пытаемся обработать его исключение
      // в блоке catch, что вызовет ошибку компиляции.
      catchCheckedException();
      } catch (IOException e) {
      e.printStackTrace();
      }
      }
      // Метод, пытающийся обработать проверяемое исключение
      private static void catchCheckedException() {
      // Ошибка компиляции, так как нет вызова throwError() в блоке try
      // и, следовательно, нет возможности бросить IOException.
      // Это нарушает правило компилятора.
      try {
      throwError(); // Ошибка компиляции
      } catch (IOException e) {
      e.printStackTrace();
      }
      }
      }
      В данном примере метод catchCheckedException() пытается обработать проверяемое исключение (IOException), но нет явного вызова метода throwError(), который бросает это исключение. Компилятор Java выдаст ошибку компиляции, потому что он ожидает, что проверяемое исключение будет брошено в блоке try.
      Вы сами убедитесь если в среде разработки это попробуйте)

  • @seniordesigner2654
    @seniordesigner2654 5 месяцев назад +2

    167 вопрос, Может ввести в заблуждение начинающих.
    Начиная с Java 8 появились дополнительные возможности, желательно о них упомянуть.

    • @wilidon
      @wilidon 5 месяцев назад +1

      Также хочу обратить внимание на 164 вопрос. Начиная с Java 8, в интерфейсах можно объявлять статические методы

  • @aidar90100
    @aidar90100 8 месяцев назад +1

    Спасибо за видео!
    А можно получить ссылку на эту презентацию? Читать и находить быстрее нужные темы)

    • @ReadWriteCode
      @ReadWriteCode  8 месяцев назад +1

      Спасибо за хороший отзыв!.
      Ссылка в комментарии)

  • @VladPochernin
    @VladPochernin 2 месяца назад +1

    Чтобы включить мозг в правильном направлении помогает, Спасибо
    Однако есть устаревшая и неточная инфа

  • @ЕвгенийКафанов-й2ц
    @ЕвгенийКафанов-й2ц 2 месяца назад

    С++ не поддерживает многопоточность ?

    • @ReadWriteCode
      @ReadWriteCode  2 месяца назад

      Я C++ честно говоря, не знаю, но Google говорит, что начиная с C++11 поддерживает)

  • @RuAliyev-e3y
    @RuAliyev-e3y Месяц назад

    это можешь выложить в pdf?

    • @ReadWriteCode
      @ReadWriteCode  Месяц назад +1

      Ссылка закреплена в самом первом комментарии)

    • @RuAliyev-e3y
      @RuAliyev-e3y Месяц назад

      @@ReadWriteCode Спасибо))

  • @javaspace9999
    @javaspace9999 9 месяцев назад +3

    Армянин?