How to create Generic Object Pool in Java
In a application you can have resources that are limited or time consuming to create a new one. e.g. a connection to a database, a new thread. A solution is to create a the limited resource once and reuse it. To address this problem the object pool pattern was introduced. The object pool design will have the mechanism to create a new object to keep the objects and to destroy the objects if necessary.
How to create Singleton Design Pattern in Java
A design pattern is a general solution to a common problem. The singleton pattern is used to restricts the instantiation of a class to one single object.
If statement vs try catch block
Real live comparison:
If statement is like walking on the cliff, on each step you need to check your stability otherwise you may fall into abyss.
Try/catch block is like walking on the street, you don't have to care about the road on each step, only when there is an obstacle (something exceptional is happening).
How to get CPU cores in Java
A system may contain multiple physical CPUs (central processing unit), and can contain one or more cores (processors). Also, each core can have multiple threads, usually 2. (Hyper-threading Technology from Intel CPUs).