JavaRush /Blog Java /Random-PL /Poziom 40. Odpowiedzi na pytania podczas rozmowy kwalifik...
lichMax
Poziom 40
Санкт-Петербург

Poziom 40. Odpowiedzi na pytania podczas rozmowy kwalifikacyjnej na temat poziomu

Opublikowano w grupie Random-PL
Poziom 40. Odpowiedzi na pytania z rozmowy kwalifikacyjnej na temat poziomu - 1Właściwie na tym poziomie były następujące pytania:
  1. Co to jest adres IP?
  2. Jaka jest różnica między hostem a domeną?
  3. Jakie znasz metody HTTP?
  4. Jaka jest różnica między metodami GET, POST i HEAD?
  5. Co to jest ODPOCZYNEK?
  6. Dlaczego klasa Calendar jest potrzebna w Javie?
  7. Jak przekonwertować datę w Javie na żądany format?
  8. Jaka jest różnica między URI a adresem URL?
  9. Co to są gniazda?
  10. Różnica między klasami Socket i URL?
A oto moje odpowiedzi:
  1. Adres IP to unikalny adres sieciowy węzła w sieci komputerowej zbudowanej na stosie protokołów TCP/IP. Internet wymaga globalnie unikalnych adresów; w przypadku pracy w sieci lokalnej wymagana jest unikalność adresu w obrębie sieci. W wersji protokołu IPv4 adres IP ma długość 4 bajty, a w wersji protokołu IPv6 adres IP ma długość 16 bajtów. Zazwyczaj adres IP w wersji protokołu IPv4 zapisywany jest w postaci czterech liczb dziesiętnych o wartościach od 0 do 255 oddzielonych kropką, np. 192.168.0.3.

  2. Domena to adres strony internetowej lub określona strefa, która ma własną nazwę, w przeciwieństwie do innych nazw w systemie nazw domen. Domeny mogą być pierwszego poziomu, drugiego poziomu, trzeciego poziomu itp. Zwykle domena pierwszego poziomu nie jest dostępna dla zwykłych użytkowników do rejestracji (przykładami domen pierwszego poziomu są „.ru”, „.com”, „.net”). Zazwyczaj domeny trzeciego i kolejnych poziomów nazywane są subdomenami.
    Host to określony komputer lub serwer podłączony do sieci lokalnej lub globalnej. Host ma unikalny adres w środowisku usług TCP/IP (adres IP).

  3. POBIERZ, WYŚLIJ, UMIEŚĆ, USUŃ, OPCJE, GŁÓWKA, PATCH, ŚLEDZENIE, LINK, ODŁĄCZ, POŁĄCZ.

  4. DOSTAWAĆ POST GŁOWA
    Treść żądania NIE Jeść NIE
    Treść odpowiedzi Tak Tak NIE
    Buforowanie wyniku żądania Tak NIE Tak, nagłówki
    Idempotencja Tak NIE Tak

    Metoda GET służy do żądania zawartości określonego zasobu. Metoda POST służy do przesyłania danych użytkownika do określonego zasobu. Metoda HEAD jest zwykle używana do pobierania metadanych, sprawdzania istnienia zasobu (weryfikacja adresu URL) i sprawdzania, czy zmienił się od czasu ostatniego dostępu. Metoda HEAD jest podobna do metody GET, z tą różnicą, że odpowiedź serwera nie zawiera treści. Metodę GET uważa się za uproszczoną wersję POST, ponieważ metoda GET nie implikuje pełnego żądania, a jedynie adres URL jako taki.

  5. REST to styl architektoniczny określający interakcję rozproszonych komponentów aplikacji w sieci. Termin został ukuty przez Roya Fieldinga w 2000 roku. Przedstawił także wymagania, jakie musi spełniać aplikacja rozproszona, aby była zgodna z architekturą REST (takie aplikacje nazywane są też RESTful). Oto wymagania:

    1. Model klient-serwer (oznacza, że ​​sieć powinna składać się z klienta i serwera; serwer to ten, który ma zasoby, klient to ten, który o nie prosi))
    2. Отсутствие состояния (означает, что ни клиент, ни serwer не отслеживают состояния друг друга)
    3. Кеширование (клиенты и промежуточные узлы могут кешировать результаты wniosekов; сооответственно, ответы serwerа должны иметь явное Lub неявное обоoznaczający, что они кешируемые Lub некешируемые)
    4. Единообразие интерфейса (означает, что между клиентами и serwerами существует общий язык взаимодействия, который позволяет им быть заменяемыми Lub изменяемыми, без нарушения uczciwość системы):
      • Определение ресурса (означает, что каждый ресурс должны быть обозначен постоянным идентефикатором)
      • Управление ресурсами через представление (означает, что клиент хранит ресурс в виде его представления, и при желании изменения ресурса он отправляет serwerу информацию о том, в Jakом виде он хотел бы видеть этот ресурс; serwer же рассматривает этот Jak wniosek Jak предложение, и сам решает, что делать ему с хранимым ресурсом)
      • Самодостаточные wiadomości (каждое сообщение содержит достаточно информации, чтобы понять, Jak его обрабатывать)
      • Гипермедиа (означает, что клиенты изменяют состояние системы только через действия, которые динамически определены в гипермедиа на serwer)
      • Система слоёв (означает, что в системе может быть больше двух слоёв (клиент и serwer), и при этом каждый такой слой знает только о своих соседних слоях, и не знает об остальных слоях, и взаимодействует только с соседними слоями)
      • Код по требованию (означает, что функциональность клиента может быть расширения за счёт загрузки kodа с serwerа в виде апплетов Lub сценариев)

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

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

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

  9. Сокеты — это связка IP-adres + порт, позволяющая из внешней сети однозначно идентифицировать программу на компьютере Lub serwerе. В Java для работы с сокетами есть два класса Socket и ServerSocket. Экземпляры первого класса играют роль клиента, экземпляры второго — роль serwerа. Клиент может отправлять и принимать wiadomości через сокет. Сервер же постоянно отслеживает wniosekы пользователей и отвечает на них.
    Для того, чтобы отправить данные через сокет, в классе Socket существует класс getOutnputStream(), возвращающий исходящий поток, с которым уже можно работать Jak обычно. Для приёма информацию нужно воспользоваться методом getInputStream(), который возвращает входящий поток. Дальше с этим потоком можно работать Jak с обычно потом ввода. Также стоит отметить, что при создании клиентского сокета (экземпляра класса Socket) в конструктор нужно передать ip-adres serwerа и порт, на котором он работает принимающая программа-serwer.
    При создании serwerного сокета (экземпляра класса ServerSocket) нужно указывать только порт, через который будет работать программа. После этого вызывается метод accept(). Этот метод ожидание подключение клиента, а после этого возвращает экземпляр класса Socket, необходимый для взаимодействия с этим клиентом. Дальше работать идёт с экземпляром класса Socket, Jak в первом случае (в случае клиента).

  10. Главное отличие в том, что класс URL предназначен для работы с URL-строкой (парсинг URL-строки), а Socket используется для соединения с удалённым serwerом и отправки информации на serwer и/Lub приёма информации от serwerа (хотя, используя класс URL, можно получить доступ к ресурсу, на который указывает сам URL; но делается это не напрямую, а через obiekt класса URLConnection). Также, если смотреть в общем, то Socket используется для связи с serwerом (другой программой), а URL — для доступа к ресурсу (например, к файлу). Кроме того, URL и URLConnection ориентированы в основном на работу с HTTP, тогда Jak Socket может работать с любыми протоколами.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION