투잡뛰는 개발 노동자

[Для неспециалистов, выживание разработчика] 14. Краткое изложение часто задаваемых вопросов на техническом собеседовании для начинающих разработчиков

  • Язык написания: Корейский
  • Страна: Все страныcountry-flag
  • ИТ

Создано: 2024-04-03

Создано: 2024-04-03 20:38

Не будучи специалистом, выжить в роли разработчика


#14. Часто задаваемые вопросы на техническом собеседовании для начинающих разработчиков


[Области оперативной памяти]

  • Кодовая область: область, где хранится исходный код программы. ЦП извлекает из кодовой области хранимые инструкции (исходный код, функции, управляющие конструкции) и обрабатывает их. Например, когда программа, написанная на языке C, выполняется, в кодовой области хранится исходный код этой программы.
  • Область данных: область, где хранятся глобальные переменные и статические переменные. Выделяется при запуске программы и существует до ее завершения. Например, когда программа, написанная на языке C, выполняется, в области данных хранятся глобальные переменные или статические переменные, объявленные в этой программе.
  • Область стека: временная область памяти, используемая программой. В ней хранятся локальные переменные и параметры, связанные с вызовом функции. Выделяется при вызове функции и исчезает при ее завершении. Например, при вызове функции на языке C локальные переменные или параметры, используемые в этой функции, выделяются в области стека.
  • Область кучи: область, в которой пользователь динамически выделяет и освобождает пространство памяти. Например, когда в языке C используется функция malloc() для динамического выделения памяти, выделенная область памяти хранится в области кучи.

[Структуры данных]

  • Стек: структура данных, работающая по принципу LIFO (Last In, First Out). Например, кнопка «Назад» в браузере похожа на стек. Предыдущие посещенные страницы хранятся в стеке, и при нажатии кнопки «Назад» извлекается и отображается последняя сохраненная страница.
  • Очередь: структура данных, работающая по принципу FIFO (First In, First Out). Например, получение талона в банке и ожидание в очереди похоже на очередь. Человек, пришедший первым, обслуживается первым, а человек, пришедший последним, обслуживается последним.
  • Дерево: структура данных, представляющая данные в виде иерархической структуры. Например, DOM-дерево HTML похоже на дерево. Структура страницы HTML представлена в виде дерева, начиная с корневого узла html и последовательно отображая дочерние узлы.
  • Куча: один из видов бинарного дерева, который делится на максимальную и минимальную кучи. Например, в приоритетной очереди данные с наивысшим приоритетом находятся в корневом узле кучи, а данные со следующим по величине приоритетом находятся в дочерних узлах, что является примером максимальной кучи.

[RDBMS и NoSQL]

  • RDBMS: база данных, которая структурно определяет и управляет данными с помощью строгой схемы. Данные можно хранить распределенно, и их легко изменять. Например, MySQL, Oracle, MS-SQL — это типичные примеры RDBMS.
  • NoSQL: база данных, которая хранит и управляет данными с помощью гибкой схемы. Подходит для обработки и хранения больших объемов данных, а также обладает высокой масштабируемостью. Например, MongoDB, Cassandra, HBase — это типичные примеры NoSQL.

[Процедурное и объектно-ориентированное программирование]

  • Процедурное программирование: методика программирования, в которой основное внимание уделяется последовательной обработке. Языки C, Pascal являются процедурными языками.
  • Объектно-ориентированное программирование: метод обработки, основанный на концепции объекта (Object), в котором данные и процедуры логически связываются. Языки Java, C++, Python являются объектно-ориентированными языками. Например, в программе симуляции автомобиля автомобиль представлен в виде объекта, а его свойства (цвет, ускорение и т. д.) — в виде данных, а функции, которые он выполняет (движение, остановка и т. д.) — в виде методов.

[Переопределение и перегрузка]

  • Переопределение: использование метода, который уже есть в родительском классе, в дочернем классе. При вызове метода родительского класса в дочернем классе будет выполнен метод, переопределенный в дочернем классе, а не метод родительского класса. Например, метод toString() в Java — это пример переопределения.
  • Перегрузка: определение нескольких методов с одинаковым именем, но с разными типами и количеством параметров для ответа на различные типы вызовов. Несколько методов с разными параметрами, но с одинаковым именем, выполняют свои действия. Например, метод print() в Java — это пример перегрузки.

[Алгоритмы замены страниц]

  • FIFO: замена страницы, которая находится в физической памяти дольше всего. Закрытие программы в панели задач компьютера похоже на алгоритм FIFO. Программа, запущенная первой, отображается последней и закрывается.
  • LRU: замена страницы, которая не использовалась дольше всего. Приложение для закрытия приложений, которое закрывает старые приложения, которые редко используются, похоже на алгоритм LRU.
  • LFU: замена страницы с наименьшим количеством обращений. Например, функция закрытия вкладок браузера, которая закрывает вкладку, которая открыта недавно и используется реже всего, похожа на алгоритм LFU.
  • MFU: замена страницы с наибольшим количеством обращений. Алгоритм MFU редко используется.

[Процесс и поток]

  • Процесс: единица выполнения, которая получает от операционной системы назначенную задачу выполнения программы. При одновременном выполнении нескольких процессов каждый процесс получает выделенную область памяти и ЦП.
  • Поток: единица выполнения внутри процесса, которая выполняется, совместно используя ресурсы, выделенные процессу. Например, каждая вкладка в веб-браузере работает не как процесс, а как поток.

[OSI 7-слойная модель]

  • Прикладной уровень: уровень, соединяющий пользователя и сеть. К нему относятся протоколы HTTP, FTP, SMTP.
  • Представительский уровень: уровень, определяющий способ представления данных. К нему относятся протоколы JPEG, MPEG, SSL.
  • Сеансовый уровень: уровень, управляющий сеансами между двумя взаимодействующими системами.
  • Транспортный уровень: уровень, отвечающий за передачу данных. К нему относятся протоколы TCP, UDP.
  • Сетевой уровень: уровень, устанавливающий маршрут для передачи данных. К нему относятся протоколы IP, ICMP.
  • Канальный уровень: уровень, передающий данные по физическому адресу (MAC-адрес). К нему относятся протоколы Ethernet, Token Ring.
  • Физический уровень: уровень, отвечающий за физическое подключение и связь с передающей средой.

[TCP и UDP]

  • TCP: ориентированная на соединение служба, передающая данные надежным способом. Устанавливает или разрывает соединение с помощью 3-стороннего и 4-стороннего рукопожатия. Например, при входе на веб-сайт или передаче файлов используется TCP.
  • UDP: неориентированная на соединение служба, которая не выполняет процедуру сигнализации для передачи данных. Надежность данных низкая, но скорость обработки высокая. Например, при потоковой передаче видео или в онлайн-играх, где важна высокая скорость передачи, используется UDP.

Комментарии0

[Объекты] Глава 1. Объекты, проектированиеВ данной статье мы рассмотрим важность и концепции объектно-ориентированного проектирования в разработке программного обеспечения, а также подчеркнем необходимость объектно-ориентированного проектирования на примере приложения для продажи билетов.
제이온
제이온
제이온
제이온

April 28, 2024

[DB] Критерии настройки кэшаВ данной статье рассматриваются критерии настройки кэша базы данных и примеры практического применения. Мы расскажем о том, как кэшировать данные, которые часто читаются, но редко записываются, а также о методах поддержания актуальности данных с помощью н
제이온
제이온
제이온
제이온

April 25, 2024

[1 день] Веселое создание игры с помощью ИИПредставляем дневник разработки 100-этажной подземельной игры, создаваемой с помощью ИИ на Javascript, HTML и CSS. В настоящее время реализуются система города, подземелий и сражений; на данный момент завершены создание события генерации персонажа и функ
꼬반
꼬반
꼬반
꼬반

November 8, 2024

18.11.2024 Разнообразные интересы: чем я занимаюсь в свободное время?В записи блога от 18 ноября 2024 года рассматриваются вопросы повышения эффективности работы за счет автоматизации, личные хобби (игры, сериалы, программирование и др.), инвестиции, а также последние тенденции в области искусственного интеллекта и информа
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 19, 2024

[Java] Синхронизированные коллекции против конкурентных коллекцийВ данной статье рассматриваются различия между синхронизированными коллекциями (Vector, Hashtable) и конкурентными коллекциями (ConcurrentHashMap и др.) в Java, а также описываются типы конкурентных коллекций. Материал поможет улучшить производительность
제이온
제이온
제이온
제이온

April 25, 2024