Java 9 HTTP/2 Client Quiz | 25 Coding MCQs for Interviews

Yogi Siddeswara 0
STUDYECRAT Java : Java 9 : HTTP/2 Client
60s
Java Java 9 : HTTP/2 Client

Prove your skills in this interactive quiz

💻

Live Code

Run snippets directly

⏱️

Timed

60s per question

🏆

Scored

Earn 3D badges

Java 9 HTTP/2 Client: Key Interview Points

1. Automatic Protocol Negotiation

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create("https://example.com"))
  .build();
// Automatically uses HTTP/2 if supported
  • Tip: Check protocol with response.version()
  • Real Use: Backward compatibility with HTTP/1.1 servers

2. Non-Blocking Async Calls

CompletableFuture<HttpResponse<String>> future =
  HttpClient.newHttpClient()
  .sendAsync(request, HttpResponse.BodyHandlers.ofString());

future.thenApply(response -> {
  System.out.println(response.statusCode());
  return response.body();
});
// Chain callbacks without blocking
  • Tip: Always handle exceptions with exceptionally()
  • Real Use: High-throughput microservice communication

3. Timeout Configuration

HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create("https://example.com"))
  .timeout(Duration.ofSeconds(5))
  .build();

HttpClient client = HttpClient.newBuilder()
  .connectTimeout(Duration.ofSeconds(3))
  .build();
// Separate timeouts for connection and request
  • Tip: Timeouts throw HttpTimeoutException
  • Real Use: Preventing hung requests in production

4. Custom Headers & Redirects

HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create("https://example.com"))
  .header("X-Custom-Header", "value")
  .header("Accept", "application/json")
  .build();

HttpClient client = HttpClient.newBuilder()
  .followRedirects(HttpClient.Redirect.NORMAL)
  .build();
// Redirect.NEVER to disable automatic redirects
  • Tip: Use headers().map() to view all headers
  • Real Use: API authentication with bearer tokens

5. Response Body Handlers

// String response
HttpResponse<String> strResponse = client.send(
  request, HttpResponse.BodyHandlers.ofString());

// Binary response
HttpResponse<byte[]> bytesResponse = client.send(
  request, HttpResponse.BodyHandlers.ofByteArray());
// Other handlers: ofInputStream(), ofFile()
  • Tip: ofFile() is efficient for large downloads
  • Real Use: Streaming API responses directly to files

💡 Pro Interview Tip

When asked about HTTP/2 benefits, highlight multiplexing (multiple requests over single connection), header compression, and server push capabilities - then demonstrate with Java 11's HttpClient API.


Java Data Types Quiz: 25 MCQs with Answers (Interview Prep)

Post a Comment

0 Comments