- What is the difference between JDK and JRE?
- What is a package?
- What are the ways of passing a parameter by reference?
- Does the Java® programming language support multiple inheritance?
- What is a static modifier and how it can be used?
- How to access ‘this’ in a static method?
- How to override a static method?
- What access specifiers do you know?
- Is it possible to access a private method from outside of a class?
- What is the difference between StringBuilder and StringBuffer?
- How to create the String instance?
- What is an interface? What is a marker interface? Name the fields of its application.
- What is the difference between the Serializable and Externalizable interfaces?
- Is it possible to implement two interfaces having a default method with the same name and signature?
- What is a functional interface?
- How to clone an object?
- How to implement the equals and hashCode methods properly?
- How can the wait and notify methods be used?
- What is the finalize method intended for?
- What is the difference between the nested and static nested class?
- What is the difference between the mutable and immutable types?
- What is the difference between Predicate and Function?
- What is a method reference?
- How does exceptions hierarchy look in Java?
- What is the difference between throw and throws?
- What is the difference between the checked and unchecked exceptions?
- What is better to use to handle unexpected conditions: Assertions or Exceptions?
- Is it safe to throw an exception from a constructor?
- Will the finally block be executed if the unhandled exception occurs in the try block?
- What is the java.lang.AutoCloseable interface intended for?
- What is the final keyword? How it can be used?
- How can you make two methods to be executed in parallel?
- What is mutual exclusion?
- What is the volatile keyword and how it is used?
- How do you stop a thread?
- What is the difference between Runnable and Callable?
- What is the difference between Set and HashSet?
- What is the difference between LinkedList and ArrayList?
- How does HashMap work?
- What is the difference between Stream and Collection?
- What is a garbage collector? Can you manually force a garbage collection?
- What is the difference between List<? extends T> and List <? super T>?
- Can generics be used with an array?
- Core Java by Cay S. Hortsmann.
- Effective Java by Joshua Bloch.
- Thinking in Java by Bruce Eckel.
- Java Concurrency in Practice by Brian Goetz and others.