JavaRush /Java Blog /Random-JA /レベル 40. レベルのトピックに関するインタビューの質問への回答
lichMax
レベル 40
Санкт-Петербург

レベル 40. レベルのトピックに関するインタビューの質問への回答

Random-JA グループに公開済み
レベル 40. レベル - 1 のトピックに関するインタビューの質問への回答実際、次の質問はこのレベルでした。
  1. IPアドレスとは何ですか?
  2. ホストとドメインの違いは何ですか?
  3. どのような HTTP メソッドを知っていますか?
  4. GET、POST、HEAD メソッドの違いは何ですか?
  5. レストとは何ですか?
  6. Java で Calendar クラスが必要なのはなぜですか?
  7. Java の日付を希望の形式に変換するにはどうすればよいですか?
  8. URIとURLの違いは何ですか?
  9. ソケットとは何ですか?
  10. ソケットクラスとURLクラスの違いは?
そして私の答えは次のとおりです。
  1. IP アドレスは、 TCP/IP プロトコル スタック上に構築されたコンピュータ ネットワーク内のノードの一意のネットワーク アドレスです。インターネットにはグローバルに一意のアドレスが必要です。ローカル ネットワーク上で作業する場合、ネットワーク内でのアドレスの一意性が必要です。IPv4 プロトコル バージョンでは、IP アドレスの長さは 4 バイトであり、IPv6 プロトコル バージョンでは、IP アドレスの長さは 16 バイトです。通常、IPv4 プロトコル バージョンの IP アドレスは、192.168.0.3 のように、0 ~ 255 の値をドットで区切った 4 つの 10 進数として記述されます。

  2. ドメインは、ドメイン ネーム システムの他の名前とは異なり、独自の名前を持つ Web サイトのアドレスまたは特定のゾーンです。ドメインには、第 1 レベル、第 2 レベル、第 3 レベルなどがあります。通常、第 1 レベル ドメインは、一般ユーザーが登録することはできません (第 1 レベル ドメインの例は、「.ru」、「.com」、「.net」です)。通常、3 番目以降のレベルのドメインはサブドメインと呼ばれます。
    ホストは、ローカルまたはグローバル ネットワークに接続された特定のコンピューターまたはサーバーです。ホストは、TCP/IPサービス環境内で固有のアドレス(IPアドレス)を持ちます。

  3. 取得、投稿、配置、削除、オプション、ヘッド、パッチ、トレース、リンク、リンク解除、接続。

  4. 得る 役職
    リクエストボディ いいえ 食べる いいえ
    応答本文 はい はい いいえ
    リクエスト結果のキャッシュ はい いいえ はい、見出し
    べき等性 はい いいえ はい

    GETメソッドは、指定されたリソースの内容を要求するために使用されます。POSTメソッドは、ユーザー データを指定されたリソースに転送するために使用されます。通常、 HEADメソッドは、メタデータの取得、リソースの存在の確認 (URL 検証)、および前回のアクセス以降にリソースが変更されているかどうかを確認するために使用されます。HEAD メソッドは GET メソッドに似ていますが、サーバー応答に本文がない点が異なります。GET メソッドは完全なリクエストを意味するのではなく、URL そのもののみを意味するため、GET メソッドは POST の簡易バージョンとみなされます。

  5. REST は、分散アプリケーション コンポーネントがネットワーク上でどのように対話するかのアーキテクチャ スタイルです。この用語は 2000 年にロイ フィールディングによって造られました。また、分散アプリケーションが REST アーキテクチャに準拠するために満たさなければならない要件も紹介しました (このようなアプリケーションは RESTful とも呼ばれます)。要件は次のとおりです。

    1. クライアントサーバーモデル (ネットワークがクラ​​イアントとサーバーで構成されることを意味します。サーバーはリソースを所有し、クライアントはリソースを要求します)
    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 может работать с любыми протоколами.
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION