Categories: Q & A

Answers to “15 Must Know Java Interview Questions After 2 Years of Experience”

This post is in response to 15 Must Know Java Interview Questions After 2 Years of Experience.
Note: Only short responses are provided for the questions.
If you feel that more depth or a correction is needed then visit the links or leave a comment below.

Core Java Questions with answers:

  1. What is the purpose of serialization?
    Answer: Serialization is the conversion of an object to a series of bytes, so that the object can be easily saved to persistent storage or streamed across a communication link. The byte stream can then be deserialised – converted into a replica of the original object.
    Source | Example
  2. What is the difference between JDK and JRE?
    Answer: Java Development Kit (JDK) is the most widely used Java Software Development Kit. Java Runtime Environment (JRE) is an implementation of the Java Virtual Machine which executes Java programs.
    Source | JDK Wiki | JVM Wiki
  3. What is the difference between equals() and “==” ?
    Answer: Equals is intended to check logical equality and == checks if both references point to same object. (Thanks Sandeep)
    a == b;        // Compares references, not values.
    a.equals(b);  // Compares values for equality.
    

    Source

  4. When will you use Comparator and Comparable interfaces?
    Answer: java.util.Comparator and java.lang.Comparable
    java.util.Comparator compares some other class’s instances, while java.lang.Comparable compares itself with another object.
    Source | Example
  5. What is the wait/notify mechanism?
    Answer: This deals with concurrent programming. The wait() and notify() methods are designed to provide a mechanism to allow a thread to be block until a specific condition is met.
    However, java.util.concurrent should be used instead of wait() and notify() to reduce complexity.
    Source | Java API | Java Technical Article
  6. What is the difference between checked and unchecked exceptions?
    Answer:
    In general, unchecked exceptions represent defects in the program (bugs), which are normally Runtime exceptions.
    Furthermore, checked exceptions represent invalid conditions in areas outside the immediate control of the program.
    Source
  7. What is the difference between final, finally and finalize?
    Answer: “final” is the keyword to declare a constant AND prevents a class from producing subclasses. (Thanks Tom Ellis)
    “finally” is a block of code that always executes when the try block is finished, unless System.exit() was called. finalize() is an method that is invoked before an object is discarded by the garbage collector.
    Source | Final Usage |Finally Usage | Finalize()
  8. What is the difference between web server and app server?
    Answer: A Web server exclusively handles HTTP requests, whereas an application server serves business logic to application programs through any number of protocols.
    Source
  9. Explain the Struts1/Struts2/MVC application architecture?
    Answer: Struts was adopted by the Java developer community as a default web framework for developing web applications
    The MVC(Model–view–controller) an application that consist of three distinct parts. The problem domain is represented by the Model. The output to the user is represented by the View. And, the input from the user is represented by Controller.
    Source
  10. What is the difference between forward and sendredirect?
    Answer: Both method calls redirect you to new resource/page/servlet. The difference between the two is that sendRedirect always sends a header back to the client/browser, containing the data in which you wanted to be redirected.
    Source
  11. How does a 3 tier application differ from a 2 tier one?
    Answer: Tiers are the physical units of separation or deployment, while layers are the logical units of separation.
    Imagine that you’re designing an e-commerce website. A 3 tier architecture would consist of web pages, a web server and a database, with the corresponding 3 layers being the “Presentation”, “Business Logic” and “Database” layers.
    If you take the database tier and layer out then your have a 2 tier architecture.
    Source
  12. How does the version control process works?
    Answer: Initiate, pull, branch, merge, commit, push.
    (Init) Make your own repository. (Pull) Download an existing repository from a url. (Branch / Merge )Make revisions. Commit then push your modifications.




    Git Cheat Sheet

  13. What is the difference between JAR and WAR files?
    Answer: JAR files (Java ARchive) allows aggregating many files into one, it is usually used to hold Java classes in a library.
    WAR files (Web Application aRchive) stores XML, java classes, and JavaServer pages for Web Application purposes.
    Source
  14. What is a Left outer join?
    Answer: This deals with SQL. Left outer join preserves the unmatched rows from the first (left) table, joining them with a NULL row in the shape of the second (right) table.
    Source | Joins Wiki
  15. What is the difference between UNION and UNION ALL?
    Answer: This deals with SQL. UNION only selects distinct values, UNION ALL selects all values.
    Source | Example

Check out Effective Java (2nd Edition) to fresh up your Java skills.
Please leave a comment before you go. (click to exit )

Larry Battle

I love to program, and discover new tech. Check out my stackoverflow and github accounts.

View Comments

  • Thanks for putting this up. There had been requests for the answers. Will link to this post from the questions post.
    Thanks once again.

    • The only suggestion I can give is regarding "equals and == difference". equals doesn't assign value. It is intended to check logical equality and == checks if both references point to same object.

  • final - This doesn't just declare a constant. Can also be used on a class to declare that it cannot be subclassed.

    • Let's clarify about the 'final' keyword.
      Instead of thinking of it as a way to declare a constant, think of it as a fixed declaration that cannot be changed.
      In the case of a class member, it makes it a constant.
      In a case of a class, one can't make a subclass of it.
      In case of a method, it means that even if you do make a subclass, one won't be able to override that specific method.

      There are various reasons to use the 'final' keyword - creating constants, security, making classes immutable.

  • #13: Both WAR and JAR files contain arbitrary files. A WAR is expected to adhere to specific layout guidelines.

    • A war file does not necessarily contain jsp pages (think web service)!

      the equals method returns whatever is returned by the overridden equals method of the implemented class, i.e. if the equals method body checks for equivalence of important properties of the class, then it compares logical equivalence, however, the equals method can arbitrarily return true or false, depending on the implementation.

  • well,
    I would never hire anyone that after 2 years of java is only able to give such incomplete answers.
    We usually do not hire not even entry level programmers with such low level of java knowledge.
    First this is not core java, core java has nothing to do with servlets, struts (:)) btw is Struts still a cool technology...i remeber I have used it in 2001 not now :) ...No need to mention incomplete answers about final for instance...or mixing some completely random SQL in the same java sheet ...can't see any reason...

    As a conclusion, these are good questions for an intern that wants to do some white box QA that might involve a 10-15% of java, at maximum.

    • Well... could you please then reply with the acceptable solutions to the questions posted.
      Or is it just a waste of your time because it's only 15% java?

      • that's true, you only tried to respond to another post ...
        again: those are ok, but for extremely newbie devs mixed with 'deprecated' technologies like Struts, that's all.
        So i would first change the title :).

  • Check out JavaIQ.net - it has huge collection of java interview questions.

      • operator overloading internally supported by java ....jvm internally performs that implementation......e.g +,*.........bt operator overloading is nt supported for programmers just like addresses nt supported in java.......

    • because c++ has proven by its record that its very difficult to maintain and ambuguity for the comiler....so operator overloading in not supported in java...

      • there is a one mechanism in java to support overloading . + operator which provides overloading in two cases
        - we can use it for addition.
        - for concatnation the two strings.

        • there is also another e.g of operator overloading i.e.......* for multiplication and importing classes from package

      • Hi Sandy,

        Operator overloading is avalable in java.In java + operator perform the operator
        overloading. But abort the + operator the remaining all operators does not support the operator overloading.

        Basha

    • Operator overloading mean , a operator can perform the many action.

      In java abort + operator , the remaining all oprators does not support the operator overloading. This + operator perform the addition on numerics and it perform concatination operation on strings.

      for example :

      System.out.println(2+3+4); o/p: 9
      System.out.println(2+3+"ranjam"); o/p: 5ranjam

      Basha

1 2 3 6
Share
Published by
Larry Battle

Recent Posts

What really is Data Science? Told by a Data Scientist

What REALLY is Data Science? Told by a Data Scientist - By Joma Tech

7 years ago

Video: How Water Towers Work

How Water Towers Work - Practical Engineering

7 years ago

Dev Tip: Simple tips to improve code reviews

Writing perfect code is a challenging process. That's where code reviews come in to help…

7 years ago

Video: How AI will change the 3d industry

"The Next Leap: How A.I. will change the 3D industry - Andrew Price - Blender"

7 years ago

Best Software Presentation for 2018

"Captain Disillusion: World's Greatest Blenderer - Live at the Blender Conference 2018 - CaptainDisillusion"

7 years ago

Dev Video: A Few Linux Shell Tips

My 5 Favorite Linux Shell Tricks for SPEEEEEED (and efficiency) - By tutoriaLinux > What's…

7 years ago