--
- How do you declare a class?
- What are the two types of member a class can have?
- How do you declare both of those types of member?
- What is the difference between a reference type and a primitive type? Name one of each.
- What is a static method? How do I call it?
--
- How do you state a class inherits from another class?
- What is inherited from the parent class?
- How do I override a method?
- If I override the equals() method, what else do I need to override?
--
- How do I declare a class to be abstract?
- How do I declare an interface?
- What are the differences between abstract classes and interfaces?
- How do I declare that a class implements an interface?
--
- How do I declare a variable to be of type array of Int?
- How do I declare a variable to be of type List of Int? How might I instantiate a value to put in that variable?
- What does it mean that Java arrays are covariant?
- Is List a child of List
if T is a subclass of P?
- Is List a child of Collection?
--
- How do I define a class as parameterised over a type? (i.e. make it a generic type)
- How do I instantiate an instance of a generic type?
- How do I declare a method to be generic?
- How do I use a generic method?
- What is the Optional type? Why is it useful?
--
- What are the two types of Exception in Java?
- How do we handle an exception?
- What pitfalls should we avoid when managing exceptions in our code?
--
- What is unit testing? What is the purpose of it?
- What methods should we unit test?
- What is mocking? When should it be used?
--
- What is a stream?
- What are terminal stream operations? Name one.
- What are non-terminal stream operations? Name three.