Tomcat中是通过什么方式实例化Servlet类的

如题,我自己创建了一个HelloServlet类 继承自Servlet类,当有请求来的时候,这个HelloServlet类会被实例化,

以下问题,诚挚的向各位大佬提问,大佬也可以挑选其中某部分作答,感激不尽
问题:

①既然被实例了,是通过什么方式实例的,是
new出来的还是什么原因?

②若是被new出来的,是在哪个类中被new的?(楼主更希望答案是具体的,而不是回答类似Servlet容器什么的,楼主很迫切想看到代码)

③该HelloServler的对象是怎么常驻内存的,又是怎么在另一个对HelloServlet请求来的时候,能保证新来的请求访问的是同一个HelloServlet对象,即这次请
求只调用了HelloServlet的service()方法?

④该HelloServlet对象什么时候被释放内存?

还有几个关于Tomcat线程的问题:

①java虚拟机为每一个请求创建一个线程,那么这个线程什么时候被释放

②既然是为每一个请求创建一个线程,那么这个线程怎么和HelloServlet联系起来

 * The <code>ServletContext</code> object is contained within the
 * {@link ServletConfig} object, which the Web server provides the servlet when
 * the servlet is initialized.
 * javax.servlet.ServletContext 保存了servlet的信息。当tomcat监听到请求进来的时候就会访问ServletContext来获取
 * 匹配该请求的servlet。

你在web.xml中配置了sevlet的类全路径和映射的请求mapping。不知道你知不知道反射这个技术。类的创建不止只有new 的方式还有很多方式。
Servlet是单例的也就是在整个Tomcat周期中servlet实例只有一个,你查看你集成的servlet的源码能看到你调用的get和post方法最终都是调用service方法。
内存是否问题涉及到JVM的相关问题,这个不是一两句话能说清楚的。如果想了解可以查看地址。https://gitee.com/knightMall/document/tree/master/doc/jvm。你只需要知道jvm会自动做这些事情。