java interview questions: Interview Q&A: Java Questions for Experienced Programmers


Answers ( 2 )


    The following Java interview questions and answers will help you prepare for your next interview. Whether you’re a seasoned coder or looking to learn more about the language, these questions provide valuable insight into what it takes to be a successful programmer with Java experience.

    1. What is the difference between a class and an interface?

    Classes and interfaces are different types of things. A class is a blueprint for an object, while an interface is a blueprint for a set of methods. In other words, classes can be used to create concrete objects in memory; interfaces cannot.

    In Java, when you implement an interface (i.e., write code that meets its requirements), your class becomes capable of providing those services as well as whatever else it was already capable of doing before implementing the interface. If your class implements multiple interfaces, then all those interfaces must be satisfied by its implementation(s).

    2. What is the difference between a static method and an instance method?

    The main difference between static methods and instance methods is that you don’t need to create an object to call them. A static method can only be called through the class, while an instance method must be called with an actual object.

    A simple example of this would be:

    public class Test {

    public int getAge() { return 10; } // this is a static method because it doesn’t take any arguments or have any side effects on anything else. It just returns 10 as its result when we call it

    3. What are the differences between using final, finally and finalize in Java?

    • final: The keyword final indicates that the value of a variable or method cannot be changed after it has been initialized, as in

    final int x = 10;

    • finally: The keyword finally is used to mark blocks of code that will always execute regardless of whether an exception is thrown or not, as in:

    finally {

    • finalize(): This method is called by the garbage collector on an object when there are no more references to it and its memory can be reclaimed. The JVM calls this method before reclaiming any resources associated with an object instance (like file handles etc.).

    4. What’s wrong with this code ? public int getGpa(int semesterHours, int cumulativeGpa) { return (semesterHours / 0.6); }

    This is a common mistake that many people make. The problem is that semesterHours is not a valid integer, so it cannot be used with the division operator (/) or any other arithmetic operators. If you want to use integers in your code and still perform arithmetic operations on them, then you need to convert them first using something like Integer.parseInt().

    The correct way to write this function would be:

    public int getGpa(int semesterHours, float cumulativeGpa)

    5. Describe the difference between abstract classes and interfaces, including when you should use each one.

    Here’s a quick overview of the differences between abstract classes and interfaces:

    • Abstract classes can contain abstract methods, while interfaces cannot.
    • Abstract classes are used to create concrete subclasses, while interfaces define a contract that must be implemented by concrete classes (or other subclasses).
    • You should use an interface when you want to define a set of methods that must be implemented by any class that uses it; this allows you to replace one implementation with another without changing the code in any other part of your program.

    6. Does every object have a hashcode() method? If so, how does it affect performance?

    A hashcode is a numeric value that represents the state of an object. It’s used for many things, including:

    • Comparing two objects to see if they’re equal
    • Sorting an array or list based on the contents of each element (e.g., sorting strings alphabetically)
    • Generating unique IDs for different instances of an object

    7. How can you reference a class that has the same name as another class in the same package ?

    The fully qualified name of a class is the package name plus the class name. If you have two classes with the same name in different packages, you can use their fully qualified names to reference them:

    import java.util.*;

    public class Example {

    public static void main(String[] args) { // This will compile without error because it uses fully qualified names System.out.println(“Using fully qualified names”); System::out::println(“Fully Qualified Names”); } }

    8. Can you override a private command ? If so how do you do it ? How do you access it in your own class ?

    • Can you override a private command ? If so how do you do it ?

    A: You can override any command and make it private, but then there is no way to access that method in your own class. It will be as if it doesn’t exist.

    The best way to prepare for these questions is by practicing them as much as possible. You can do so by taking online practice tests, reading books on Java programming, or even just thinking about how certain features of the language work.


    java interview questions: Interview Q&A: Java Questions for Experienced Programmers


    Before you get started on this list of Java interview questions, I want to make one thing clear: these aren’t the only questions you’ll be asked during an interview. In fact, most interviews will begin with more general questions about your background and experience before moving into more specific territory. Still, it’s a good idea to have some kind of idea what kinds of questions are likely to come up during a technical interview so that you can prepare appropriate responses beforehand!

    What is the difference between an abstract class, interface and an enum?

    An abstract class is a class that can’t be instantiated. It can have abstract methods, but you cannot create an instance of the abstract class itself. An interface is also a special kind of class that cannot be instantiated, but it doesn’t contain any methods (only properties). Enum types are regular classes and can be instantiated just like any other normal Java object.

    What’s the difference between a Java package and a classpath?

    A classpath is a list of directories that contain the compiled Java classes. A package is a directory structure that contains Java classes and other resources. A package can contain one or more packages, so there are two levels of nesting:

    • The top-level package name is separated from its subpackages with periods (.). For example, com.googlecode.javainterviewquestions will be used as the prefix for all classes in this example project.
    • Subpackages have their own top-level packages nested within them, separated by slashes (/). For example, com/googlecode/javainterviewquestions would represent another top-level package inside comgooglecodejavainterviewquestions

    Explain what an inheritance hierarchy is for a Java project.

    Inheritance is a way of creating new classes based on existing classes. A class can inherit from more than one class, in which case it is called a subclass of those classes. The class that inherits is called the subclass, and the superclass (the one that it inherits from) is called its superclass or parent class.

    The advantage of using inheritance is that you don’t have to rewrite code that already works well in another context; instead you can reuse it by making minor modifications or additions as needed. It also allows for better modularity because related code can be grouped together in subclasses rather than being scattered throughout an application’s source files.

    How do you set up a JUnit test suite in Eclipse to show the results of your tests?

    To set up a JUnit test suite in Eclipse to show the results of your tests, open the project in eclipse. Then open the test tab and click on the “new” button. Select JUnit from under Test Suite and enter a name for your test suite (for example: “MyTestSuite”). Next, create a new class by clicking on New Class again and entering MyTestCase as its name, where MyTestCase extends TestCase (this will create an empty base class). Finally, click on green play button to run all tests!

    Can you define encapsulation, abstraction and polymorphism in Java?

    Encapsulation is the process of hiding the implementation details of an object. This means that you can change how the object works without changing its interface.

    Abstraction refers to defining a set of properties and methods that all objects in a class must implement. Polymorphism allows you to use a single interface to create multiple types of objects, so you don’t need separate classes for each type.

    How do you get a list of all the classes available to your Java program?

    To create a list of all the classes available to your Java program, you must first import the java.lang package:

    import java.lang.*;

    Then, you’ll need to import the other related packages (or classes) that are needed by your application but not necessarily used directly by it:

    import java.util.*;



    Can you tell me about some uses for anonymous inner classes in Java?

    Anonymous inner classes are a powerful tool that Java provides to create new instances of a class without having to create a named class. You can use them as event handlers, as singleton objects or even implement the observer pattern.

    Here’s an example:

    • public class Foo {
    • private Bar bar;
    • public void add(Baz baz) {…}
    • }
    • public class Baz implements Observer { * private Foo foo; * @Override public void update(Observable o, Object arg) { Baz b = (Baz)arg; // cast from Object to Baz b = (Baz)(new Foo()).getBar(); // new instance created every time } }

    What does “JVM” stand for?

    The Java Virtual Machine (JVM) is a virtual machine that executes programs written in the Java programming language. It’s used to run programs written in Java, C# and Python, among others.

    The JVM does not actually exist as an independent physical machine: it is implemented as software running on top of your computer’s operating system (OS).

    Knowing these questions will help you get asked more questions that are relevant to your experience level!

    Knowing these questions will help you get asked more questions that are relevant to your experience level! The interviewer doesn’t expect you to know all the answers, but they do want to know that you have some familiarity with the concepts. If they ask a question, and it’s something that comes up frequently in programming interviews, then they’ll expect everyone who works at their company (and most other companies) to know how to answer it. This means that if an interviewer asks a question about Java packages or Eclipse plugins, then any experienced programmer should be able to respond confidently without having ever used either one before.


    I hope these questions have given you some insight into what kinds of questions Java programmers are asked in interviews. If you’re looking for more, check out our other posts on the topic: Java Interview Questions for Beginners and Java Interview Questions for Experienced Programmers.

Leave an answer