/minip.jpg

技术博客分享

手写Tomcat实现基本功能

首先,Tomcat是一个软件,所有的项目都能在Tomcat上加载运行,Tomcat最核心的就是Servlet集合,本身就是HashMap。Tomcat需要支持Servlet,所以有servlet底层的资源:HttpServlet抽象类、HttpRequest和HttpResponse,否则我们无法新建Servlet。

虚函数和虚表的原理是什么

在C++之中不存在默认的虚函数,在C#之中也不存在默认的虚函数,但是如果C#中的类被声明成abstract,那么该抽象类之中的抽象方法默认都被认为是虚的,需要在子类中进行重写,不过抽象类中也可以存在非抽象的,非虚的,以及非抽象虚的方法。虚函数表(虚表)是一个用于存储虚函数地址的数组,每个包含 虚函数的类都存在一个虚函数表,编译器会为每一个包含虚函数的类分配一根虚函数指针(vptr),虚函数指针指向虚函数表,在运行时会根据虚函数指针找到虚函数表,然后根据虚函数的索引找到该虚函数的地址,然后调用函数。