The keyword _______ is used to instantiate an object inside its own class definition.

  • constructor
  • instantiate
  • new
  • this
In Java, the keyword new is used to instantiate an object inside its own class definition. When you use new, you create a new instance of the class and allocate memory for it. The other options are not used for this purpose.

Interfaces in Java can have ________ methods from Java 8 onwards.

  • Both Abstract and Static Methods
  • Non-Static Methods
  • Only Abstract Methods
  • Only Static Methods
Starting from Java 8, interfaces in Java can have both abstract and static methods. This enhancement allows interfaces to have default method implementations using the 'default' keyword and static utility methods. However, they still cannot have instance variables.

What is method overloading in Java?

  • It allows creating methods with the same name and parameters but in different classes.
  • It allows multiple methods in a class with the same name but different parameters.
  • It means creating methods with the same name and return type in a class.
  • It refers to changing the method name in a class to make it more descriptive.
Method overloading in Java occurs when there are multiple methods in a class with the same name but different parameters. This is a form of polymorphism and allows you to use the same method name for operations that are logically related but take different inputs.

Consider the code: while(false) { System.out.println("Hello"); }. How many times will "Hello" be printed?

  • 0
  • 1
  • 5
  • It will not be printed at all.
"Hello" will not be printed at all because the condition in the while loop is false from the start. In a while loop, the code block inside the loop will only execute if the condition is true. Since the condition is false, the code block is never executed.

Envision a scenario where you need to transfer byte data from one file to another. How would you efficiently perform this operation using byte streams in Java, and why?

  • Use BufferedReader and BufferedWriter to create byte streams, then read and write character data.
  • Use DataInputStream and DataOutputStream to create byte streams, then read and write primitive data types efficiently.
  • Use FileInputStream and FileOutputStream to create byte streams, then read from the source file and write to the destination file in chunks.
  • Use FileReader and FileWriter to create byte streams, then read from the source file and write to the destination file.
In this scenario, using FileInputStream and FileOutputStream is the most efficient way to transfer byte data between files. These classes are specifically designed for byte-oriented operations, ensuring a smooth and fast transfer of data. The other options involve character streams or data types, which are not suitable for byte data transfer.

In a Java program, you can't use an object until it has been _______.

  • assigned
  • declared
  • imported
  • initialized
In a Java program, you can't use an object until it has been initialized. This means that an object must go through its constructor to set its initial state before you can use its methods or access its fields. Declaring or importing an object is not sufficient; it must be properly initialized.

What is the primary benefit of using Lambda expressions in Java?

  • They allow you to declare variables with multiple data types.
  • They enable you to create global variables.
  • They improve the performance of the Java program.
  • They provide a shorter syntax for writing methods.
Lambda expressions in Java primarily offer a more concise and expressive way to write methods, especially for implementing functional interfaces. This concise syntax reduces boilerplate code, making the codebase more readable and maintainable. This is a key feature of Java's functional programming capabilities.

If a superclass has a protected field, will subclasses in different packages have direct access to it?

  • Access to protected fields depends on the specific package-level access rules defined in the project.
  • No, subclasses in different packages cannot access the protected field directly; they must use getter and setter methods.
  • Subclasses can access protected fields, but only if they are in the same package as the superclass.
  • Yes, subclasses in different packages can access the protected field directly without any restrictions.
Subclasses in different packages cannot access the protected field directly. Protected members are accessible to subclasses, but only within the same package or through inheritance. Access control rules apply to protect the encapsulation of classes across packages, ensuring proper access control and encapsulation.

Which method is used to obtain the result from a Future object?

  • fetchResult()
  • get()
  • getResult()
  • obtainResult()
The get() method is used to obtain the result from a Future object in Java. This method is called on a Future instance, and it blocks until the result is available if it's not already computed. It returns the result of the computation or throws an exception if the computation encountered an error.

In a scenario where order of the elements based on their insertion order is important, you might opt to use ________.

  • HashMap
  • HashSet
  • LinkedHashMap
  • TreeMap
In Java, if you want to maintain the order of elements based on their insertion order, you should opt for a LinkedHashMap. It combines the features of a hash table and a linked list to achieve this. A HashMap doesn't guarantee order, a TreeMap orders elements based on their natural order, and a HashSet doesn't guarantee any specific order.