tomcat启动以后,是不是所有的类都要加载到内存里面
发布网友
发布时间:2022-04-22 07:16
我来回答
共3个回答
热心网友
时间:2022-06-17 09:52
可以负责的告诉你:不是
tomcat只load当前需要的class,static class相较于一般class的不同之处在于存储的时候采用的是全局控制。
可以自验证,方法如下:
写两个static class 其中一个是死循环,一个是简单控制if else
分别放在构造函数中,主调class 没有实例两个 static 时(即没有调用)是不会有输出的
反之(调用),则存在输出。追问也就是用到才load,通过servlet去load,那servlet也是用到再load吗?(通过配置load-on-startup控制?)由spring管理的bean呢?
追答servlet是一种配置机制,本身也是用到的时候才加载。
spring中bean与servlet的相同点在于本质都是class,不同在于使用的框架机制,就加载本身来说没有区别,都是啥时候用,啥时候加载,这也是所有高级语言的重大改进点。减少内存的负担
热心网友
时间:2022-06-17 09:52
在web工程中还可以配置,Servlet的启动优先级,可以设置程序启动优先级
在web.xml 文件中<load-on-startup></load-on-startup>标签
<load-on-startup></load-on-startup>指 定当Web应用启动时,装载Servlet的次序。
当值为正数或零时:Servlet容器先加 载数值小的servlet,再依次加载其他数值大的servlet.
当值为负或未定义:Servlet容器将在 Web客户首次访问这个servlet时加载它
热心网友
时间:2022-06-17 09:53
路过帮顶