JavaRush /Blog Java /Random-VI /Cấp độ 40. Trả lời các câu hỏi phỏng vấn về chủ đề cấp độ...
lichMax
Mức độ
Санкт-Петербург

Cấp độ 40. Trả lời các câu hỏi phỏng vấn về chủ đề cấp độ

Xuất bản trong nhóm
Cấp độ 40. Trả lời câu hỏi phỏng vấn về chủ đề cấp độ - 1Trên thực tế, các câu hỏi sau đây đều ở cấp độ này:
  1. Địa chỉ IP là gì?
  2. Sự khác biệt giữa máy chủ và tên miền là gì?
  3. Bạn biết những phương thức HTTP nào?
  4. Sự khác biệt giữa các phương thức GET, POST và HEAD là gì?
  5. REST là gì?
  6. Tại sao lớp Lịch lại cần thiết trong Java?
  7. Làm cách nào để chuyển đổi một ngày trong Java sang định dạng mong muốn?
  8. Sự khác biệt giữa URI và URL là gì?
  9. Ổ cắm là gì?
  10. Sự khác biệt giữa các lớp Socket và URL?
Và đây là câu trả lời của tôi:
  1. Địa chỉ IP là địa chỉ mạng duy nhất của một nút trong mạng máy tính được xây dựng trên ngăn xếp giao thức TCP/IP. Internet yêu cầu các địa chỉ duy nhất trên toàn cầu; trong trường hợp làm việc trên mạng cục bộ, cần có tính duy nhất của địa chỉ trong mạng. Ở phiên bản giao thức IPv4, địa chỉ IP dài 4 byte và ở phiên bản giao thức IPv6, địa chỉ IP dài 16 byte. Thông thường, địa chỉ IP trong phiên bản giao thức IPv4 được viết dưới dạng bốn số thập phân có giá trị từ 0 đến 255, cách nhau bằng dấu chấm, ví dụ: 192.168.0.3.

  2. Tên miền là một địa chỉ trang web hoặc một vùng cụ thể có tên riêng, không giống bất kỳ tên nào khác trong hệ thống tên miền. Tên miền có thể là cấp một, cấp hai, cấp ba, v.v. Thông thường, người dùng thông thường không thể đăng ký miền cấp một (ví dụ về miền cấp một là “.ru”, “.com”, “.net”). Thông thường, tên miền cấp thứ ba trở đi được gọi là tên miền phụ.
    Máy chủ là một máy tính hoặc máy chủ cụ thể được kết nối với mạng cục bộ hoặc toàn cầu. Máy chủ có một địa chỉ duy nhất trong môi trường dịch vụ TCP/IP (địa chỉ IP).

  3. NHẬN, ĐĂNG, ĐẶT, XÓA, TÙY CHỌN, ĐẦU, PATCH, THEO DÕI, LIÊN KẾT, HỦY LIÊN KẾT, KẾT NỐI.

  4. LẤY BƯU KIỆN CÁI ĐẦU
    Nội dung yêu cầu KHÔNG Ăn KHÔNG
    Nội dung phản hồi Đúng Đúng KHÔNG
    Lưu trữ kết quả yêu cầu Đúng KHÔNG Vâng, tiêu đề
    sự bình thường Đúng KHÔNG Đúng

    Phương thức GET được sử dụng để yêu cầu nội dung của một tài nguyên được chỉ định. Phương thức POST được sử dụng để truyền dữ liệu người dùng đến một tài nguyên được chỉ định. Phương thức HEAD thường được sử dụng để truy xuất siêu dữ liệu, kiểm tra sự tồn tại của tài nguyên (xác thực URL) và xem liệu nó có thay đổi kể từ lần truy cập cuối cùng hay không. Phương thức HEAD tương tự như phương thức GET, ngoại trừ việc không có phần nội dung trong phản hồi của máy chủ. Phương thức GET được coi là phiên bản đơn giản của POST, vì phương thức GET không ngụ ý một yêu cầu đầy đủ mà chỉ có một URL như vậy.

  5. REST là một kiểu kiến ​​trúc về cách các thành phần ứng dụng phân tán tương tác qua mạng. Thuật ngữ này được Roy Fielding đặt ra vào năm 2000. Ông cũng giới thiệu các yêu cầu mà một ứng dụng phân tán phải đáp ứng để tuân thủ kiến ​​trúc REST (các ứng dụng như vậy còn được gọi là RESTful). Đây là những yêu cầu:

    1. Mô hình Client-Server (có nghĩa là mạng nên bao gồm một client và một server; server là người có tài nguyên, client là người yêu cầu chúng))
    2. Отсутствие состояния (означает, что ни клиент, ни server не отслеживают состояния друг друга)
    3. Кеширование (клиенты и промежуточные узлы могут кешировать результаты requestов; сооответственно, ответы serverа должны иметь явное or неявное обоmeaning, что они кешируемые or некешируемые)
    4. Единообразие интерфейса (означает, что между клиентами и serverами существует общий язык взаимодействия, который позволяет им быть заменяемыми or изменяемыми, без нарушения integrity системы):
      • Определение ресурса (означает, что каждый ресурс должны быть обозначен постоянным идентефикатором)
      • Управление ресурсами через представление (означает, что клиент хранит ресурс в виде его представления, и при желании изменения ресурса он отправляет serverу информацию о том, в Howом виде он хотел бы видеть этот ресурс; server же рассматривает этот How request How предложение, и сам решает, что делать ему с хранимым ресурсом)
      • Самодостаточные messages (каждое сообщение содержит достаточно информации, чтобы понять, How его обрабатывать)
      • Гипермедиа (означает, что клиенты изменяют состояние системы только через действия, которые динамически определены в гипермедиа на server)
      • Система слоёв (означает, что в системе может быть больше двух слоёв (клиент и server), и при этом каждый такой слой знает только о своих соседних слоях, и не знает об остальных слоях, и взаимодействует только с соседними слоями)
      • Код по требованию (означает, что функциональность клиента может быть расширения за счёт загрузки codeа с serverа в виде апплетов or сценариев)

      Удовлетворение этим требованиям позволяет добиться следующего:

      • Надёжность
      • Производительность
      • Масштабируемость
      • Прозрачность взаимодействия
      • Простота интерфейсов
      • Портативность компонентов
      • Лёгкость внесения изменений
      • Способность эволюционировать, приспосабливаясь к новым требованиям
  6. Он нужен для более удобной работы с датой и временем. Он позволяет работать с датой в рамках календаря, то есть позволяет прибавлять и отнимать дни от Howой-то конкретной даты, причём будут учитывать и високосные года. Кроме того, он позволяет представить время миллисекундах в удобном виде - год, месяц, день, часы, minutesы, секунды. Также есть много методов для установки и получения разных параметров даты и времени, например: день недели, день месяца, день в году, номер недели в месяце, номер недели в году.
  7. Для этого существует удобный класс SimpleDateFormat. Экземпляру этого класс можно передать шаблон представления даты, и тогда он в таком виде будет возвращать date (в формате строки String), либо считывать date (из строки String). Выглядит это всё следующим образом:

    Date date = new Date(); // получаем текущую date
    SimpleDateFormat formatter = new SimpleDateFormat("d-MM-yy HH:mm:ss"); //создаём экземпляр класса SimpleDateFormat
             								//и передаём ему шаблон представления даты и времени
    String dateAsString = formatter.format(date); //преобразуем date в строку заданного формата
    
    Date dateAfterConversion = formatter.parse(dateAsString); //преобразуем строку обратно в date
  8. URI расшифровывается How Uniform Resource Identifier и переводится How "унифицированный идентификатор ресурса". URI — это последовательность символов, идентифицирующая абстрактный or физический ресурс. URL расшифровывается How Uniform Resource Locator. То есть это некий унифицированный указатель на ресурс, однозначно определяющий его месторасположение. URL служит стандартизированным способом записи address ресурса в сети Интернет.
    Их отличия в том, что URI — это некоторый идентификатор ресурса, который позволяет этот ресурс How-то идентифицировать, а URL — это указатель на ресурс, он даёт информацию о том, где находится ресурс. Таким образом URL — это URI, который помимо идентификации ресурса, даёт информацию о его местонахождении.

  9. Сокеты — это связка IP-address + порт, позволяющая из внешней сети однозначно идентифицировать программу на компьютере or serverе. В Java для работы с сокетами есть два класса Socket и ServerSocket. Экземпляры первого класса играют роль клиента, экземпляры второго — роль serverа. Клиент может отправлять и принимать messages через сокет. Сервер же постоянно отслеживает requestы пользователей и отвечает на них.
    Для того, чтобы отправить данные через сокет, в классе Socket существует класс getOutnputStream(), возвращающий исходящий поток, с которым уже можно работать How обычно. Для приёма информацию нужно воспользоваться методом getInputStream(), который возвращает входящий поток. Дальше с этим потоком можно работать How с обычно потом ввода. Также стоит отметить, что при создании клиентского сокета (экземпляра класса Socket) в конструктор нужно передать ip-address serverа и порт, на котором он работает принимающая программа-server.
    При создании serverного сокета (экземпляра класса ServerSocket) нужно указывать только порт, через который будет работать программа. После этого вызывается метод accept(). Этот метод ожидание подключение клиента, а после этого возвращает экземпляр класса Socket, необходимый для взаимодействия с этим клиентом. Дальше работать идёт с экземпляром класса Socket, How в первом случае (в случае клиента).

  10. Главное отличие в том, что класс URL предназначен для работы с URL-строкой (парсинг URL-строки), а Socket используется для соединения с удалённым serverом и отправки информации на server и/or приёма информации от serverа (хотя, используя класс URL, можно получить доступ к ресурсу, на который указывает сам URL; но делается это не напрямую, а через an object класса URLConnection). Также, если смотреть в общем, то Socket используется для связи с serverом (другой программой), а URL — для доступа к ресурсу (например, к файлу). Кроме того, URL и URLConnection ориентированы в основном на работу с HTTP, тогда How Socket может работать с любыми протоколами.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION