Java Interview Questions
In the past, I was a Software Developer, and my primary programming language was Java. I also quite often interviewed people and also sometimes was an interviewee. In this post, I would like to share typical questions that you might expect at a job interview for a Java Developer position.
Let’s get started!
Table of Content
Warm-up
- What programming languages do you know and use?
- What is your most hated technology or tool and why?
- Which technology do you consider yourself expert in?
- What was the biggest challenge you encountered? How did you deal with it?
- Tell me about your biggest professional achievement
- What was the last book you’ve read? What was the most important point you remembered from the book?
Algorithms & Data structures
- Which data structures do you know? Tell me about one of them
- What is recursion? tail recursion, mutual recursion?
- Complexity of algorithms, big notation
- Which sorting algorithms do you know?
- How to sort a linked list?
- Linear-time sorting (count sort)?
- Trees, graphs and ways to traverse graph
- What is a binary tree?
- How to search in binary tree?
- Self balanced trees (Red-black tree, AVL, Splay)
- Tries, prefix and suffix trees
- What is NP-completeness? What algorithms are NP-Complete?
- What is the divide and conquer approach?
- Tell me about Dynamic programming
- What is MapReduce?
Java Core
Basics
- What access modifiers do you know in Java?
- What is the contract between
equals()
andhashCode()
? - Rules to implement the
equals
method (stability, transitivity, reflectivity etc)? - Why do we need nested classes?
- What is immutability? Why is it good?
- How to make a class immutable?
- Besides
String
do you know any other immutable classes from JDK? - Can a interface inherit from another interface?
- What is the difference between regular vs. static initialization blocks?
Exceptions
- How exceptions are handled in Java?
- Java Exceptions API. What standard exceptions do you know?
- Checked vs unchecked exceptions. When would you use them?
- Is there any difference between handing
Error
andException
? - Can we have only
try
andfinally
withoutcatch
? If yes, when is it useful? - What is try-with-resource?
- Is it possible that the
finally
block is not executed? When?
Collections
- Collection API. Can you list general collection API? (e.g.
Collection
,Set
,Map
,List
,Queue
,SortedSet
,SortedMap
, etc) - Can you say how these interfaces are related?
- Does
Map
extend theCollection
interface? - What is the difference between
ArrayList
andLinkedList
? - What is the difference between
Stack
andQueue
? TreeSet
vsLinkedHashSet
- How
HashMap
is implemented? How collisions are resolved there? - How to implement
hashCode
to achieve the best performance? - What is the difference between
Hashtable
andConcurrentHashMap
? - Do you know how
ConcurrentHashMap
is implemented? How is it different from usualHashMap
orHashtable
? - Special implementations. Why do we need
EnumSet
,EnumMap
? What aboutWeakHaskMap
orIdentityHashMap
? - What is
ConcurentModificationException
? How can we get it? How to avoid getting it? - Collections with safe iterators (
CopyOnWriteArrayList
/CopyOnWriteArraySet
)
Generics
- What is a parameterized or generic type?
- Can we use parameterized types in exception handling?
- What is a wildcard parameterized type?
- What is autoboxing and what are its advantages/pitfalls?
- Can we add something to
List<?>
?
Multithreading
- How to make multithreaded code?
- What’s the difference between extending
Thread
vs implementingRunnable
? - What is the difference between
Thread
’s methodsrun()
andstart()
? - Synchronization of java blocks and methods
- How to use
wait
andnotify
? - What is the difference between
Thread.sleep
andwait
? - What is an atomic operation? Is
i++
atomic? - What does the
volatile
keyword mean? - Have you used
java.util.concurrent.*
? What have you used from there? - Why do we need
ThreadLocal
? - What is a deadlock? Can you give an example? How to cause it?
- What is a livelock?
- What is starvation?
- What is the race condition?
- Atomicity of long and double assignment operations
- Lock-free operations. How to create lock-free implementation of field reassignment?
- How to interrupt a thread?
Java IO and NIO
- Can you describe the standard Java IO API?
- What is the difference between
InputStream
andReader
?OutputStream
andWriter
? - How does
BufferedReader
work? - What is NIO?
- What is
Channel
? What isBuffer
? - How to lock a file?
- What is NIO2?
Memory and Garbage Collector
- Memory model in JVM
- How does virtual space divided in Java? What is permgen? Is it still there in Java 8?
- What difference between float and BigDecimal? How they store the data?
- What is deep copy of a Java object?
- What are the disadvantages of setting heap size too high?
- What are utilities for JVM monitoring? What is Jconsole?
- How to force GC be executed?
- Garbage collection principles
- What is a memory leak? How and why it can be caused?
- What is variable shadowing?
- How would you monitor JVM?
- How would you monitor how GC behaves during program execution?
- Name few GC implementations (Serial, Parallel, ParallelOld, ConcarentMarkAndSweep, G1) and describe major differences
Unit testing
- What is unit testing?
- Libraries that help to writing unit tests
- Why do we need JUnit?
- What is a mock? Have you used EasyMock or Mockito?
Database Questions
Database Engines
- Does every DBMS system implement SQL in the same way?
- What’s the difference between a table and a view?
- What is a transaction? What is ACID?
- Which transaction isolation levels do you know?
- What is the difference between primary and secondary keys?
- What types of constraints do you know?
- What is a materialized view? How is it different from usual view?
- What kind of joins do you know?
- What is the difference between inner join and outer join?
- Why do we need indexes?
- Is it a good idea to have many different indexes? Why or why not?
- What is a bitmap index?
- How
SELECT
,UPDATE
andDELETE
statements are affected by indexes? - What is de-normalization and why would we do it?
- How can we improve database performance?
- Partitioning and methods of partitioning
SQL
- Aggregate functions with examples
- Given a schema, write some SQL query with group by / outer join / etc.
- What is a nested subquery?
XML
- Did you need to process XML? How and why?
- What is XPath? Have you used it?
- Experience with XSLT
- SAX vs DOM
- DTD vs XMLSchema
- What is the difference between HTML and XML?
- What is well formed HTML?
- What is XML namespace? Why is it useful?
- What characters are disallowed from XML without escaping?
Libraries
You are very likely to have questions about Spring, Hibernate, or any other frameworks used by the company.
Spring
- What is Inversion of Control? Benefits?
- What is Spring configuration file? How does it look like?
- Out of the box bean scopes (singleton, prototype; request, session, global session)
- Autowiring. Types of autowiring.
- What modules does Spring Framework have?
- Describe AOP integration in Spring
Software Design
Design patterns
- What design patterns are in JDK? Can you give some examples? What about Java IO API?
- Which patterns do you use on a daily basis? Explain their principles.
- What is Façade/Proxy/Decorator/Strategy/Observer/etc? (selectively)
OOP
- Inheritance vs Composition. Which is better? Why?
- What is Coupling and Cohesion?
- What is SOLID? Do you know what each letter stands for?
- What is Single Responsibility Principle? Interface segregation principle? Dependency inversion principle?
- Can you tell me about the DRY principle?
- What is the Law of Demeter?
- What is Feature Envy?
- Do you know about CQRS (Command Query Responsibility Segregation)?
- Principle of Least Astonishment/Surprise
The end
The main source of the questions is job interviews we conducted at Luxoft a few years ago while I was working as a Java Developer. This of course is by no means a full list, but I hope it can still be useful for your interview preparation.
If you’re also interested in Data Science job interview questions, then go here.
And finally, stay tuned for our new blog posts!
No comments:
Post a Comment