-
Code structure:
- Java executable class.
- Variables: Scope, kinds and types (Primitives and Non-primitive).
- Class structure: methods, variable, nested types, init blocks.
- Arrays
- Package & classes.
- Memory: Heap & stack, garbage collection, static VS non-static.
-
Control flow:
- Conditions: if, if-else, if-else-if-else and ternary statement.
- Loops: while-do, do-while, for(C-style), foreach.
- Switch: case-break & fall-through.
- Recursion VS loop.
-
Object Oriented Programming:
- Inheritance
- Encapsulation
- Polymorphism
- Abstraction
- Composition
- Loose coupling
- High cohesion
-
Collections:
- Generics Generics
- Collection interface and its common sub-classes: ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap
- Common conversions
-
String manipulations:
- Understanding java.lang.String class
- Understanding java.lang.StringBuilder class
- Understanding java.lang.StringBuffer class
-
Regular Expressions
- Quantifiers, predefined meta chars, patterns and symbols, capturing ,looks (positive & negative, ahead & behind)
- Common usage: match, split, replace
-
Exception handling:
- Throwable tree - hierarchy
- Error VS Exception
- Checked VS Unchecked Exceptions
try
blocks: try-catch, try-finally, try-catch-finally, multiple-catch, try with resources- Rethrowing concept
- Custom Exception
-
Multi threading:
- Concurrency VS parallelism
- Process & thread
- java.lang.Runnable & java.lang.Thread
- Thread handling
-
Enumeration:
- Enum type structure: instances, constructors, methods & properties
- Singleton implementation
- State machine
- Abstraction & Polymorphism: Interface implementation and nested methods delegation
-
Working with files
- Understanding java.io.File class
- Working with streams (Input & Output)
- Files.ReadAllBytes VS FileInputStream VS BufferedReader