JavaRush /Java Blog /Random-ID /Level 40. Jawaban pertanyaan wawancara pada topik level
lichMax
Level 40
Санкт-Петербург

Level 40. Jawaban pertanyaan wawancara pada topik level

Dipublikasikan di grup Random-ID
Level 40. Jawaban pertanyaan wawancara tentang topik level - 1Sebenarnya, pertanyaan-pertanyaan berikut ada pada level ini:
  1. Apa itu alamat IP?
  2. Apa perbedaan antara host dan domain?
  3. Metode HTTP apa yang Anda ketahui?
  4. Apa perbedaan antara metode GET, POST dan HEAD?
  5. Apa itu REST?
  6. Mengapa kelas Kalender diperlukan di Java?
  7. Bagaimana cara mengubah tanggal di Java ke format yang diinginkan?
  8. Apa perbedaan antara URI dan URL?
  9. Apa itu soket?
  10. Perbedaan antara kelas Socket dan URL?
Dan inilah jawaban saya:
  1. Alamat IP adalah alamat jaringan unik dari sebuah node di jaringan komputer yang dibangun di atas tumpukan protokol TCP/IP. Internet memerlukan alamat unik secara global; dalam hal bekerja di jaringan lokal, keunikan alamat dalam jaringan diperlukan. Pada versi protokol IPv4, panjang alamat IP adalah 4 byte, dan pada versi protokol IPv6, panjang alamat IP adalah 16 byte. Biasanya, alamat IP pada versi protokol IPv4 ditulis sebagai empat angka desimal dengan nilai 0 hingga 255 yang dipisahkan oleh titik, misalnya 192.168.0.3.

  2. Domain adalah alamat situs web atau zona tertentu yang memiliki namanya sendiri, tidak seperti nama lain dalam sistem nama domain. Domain bisa level pertama, level kedua, level ketiga, dan seterusnya. Biasanya, domain tingkat pertama tidak tersedia bagi pengguna biasa untuk pendaftaran (contoh domain tingkat pertama adalah “.ru”, “.com”, “.net”). Biasanya, domain tingkat ketiga dan selanjutnya disebut subdomain.
    Host adalah komputer atau server tertentu yang terhubung ke jaringan lokal atau global. Host memiliki alamat unik di lingkungan layanan TCP/IP (alamat IP).

  3. DAPATKAN, PASANG, PUT, HAPUS, OPSI, KEPALA, PATCH, JEJAK, LINK, UNLINK, CONNECT.

  4. MENDAPATKAN POS KEPALA
    Badan Permintaan TIDAK Makan TIDAK
    Badan Respon Ya Ya TIDAK
    Menyimpan Hasil Permintaan Ya TIDAK Ya, berita utama
    Idempotensi Ya TIDAK Ya

    Metode GET digunakan untuk meminta konten sumber daya tertentu. Metode POST digunakan untuk mentransfer data pengguna ke sumber daya tertentu. Metode HEAD biasanya digunakan untuk mengambil metadata, memeriksa keberadaan sumber daya (validasi URL), dan melihat apakah sumber daya tersebut telah berubah sejak terakhir kali diakses. Metode HEAD mirip dengan metode GET, hanya saja tidak ada isi dalam respons server. Metode GET dianggap sebagai versi sederhana dari POST, karena metode GET tidak menyiratkan permintaan penuh, hanya URL saja.

  5. REST adalah gaya arsitektur bagaimana komponen aplikasi terdistribusi berinteraksi melalui jaringan. Istilah ini diciptakan oleh Roy Fielding pada tahun 2000. Dia juga memperkenalkan persyaratan yang harus dipenuhi oleh aplikasi terdistribusi agar dapat mematuhi arsitektur REST (aplikasi tersebut juga disebut RESTful). Ini adalah persyaratannya:

    1. Model Client-Server (berarti jaringan harus terdiri dari klien dan server; serverlah yang memiliki sumber daya, klienlah yang memintanya))
    2. Stateless (berarti baik klien maupun server tidak melacak status masing-masing)
    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 может работать с любыми протоколами.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION