You are right, the container is responsible for creating the servlets and the life cycle. First, it creates an instance of the servlet using the default public constructor, and then calls its init() method. When the container wants to destroy the servlet, it calls its destroy() method, which is usually (IMHO) empty.
The container can destroy first and then create a new servlet during hot redeployment when you deploy, probably a new version of your application. This is probably what your interviewer wanted to hear about.
Alexr source share