请问tomcat一启动就把classes下面的类都加载到内存中吗?

我的意思是static的,new是你用到再分配堆内存,但是tomcat一启动就将所有的class里面的static都load进内存吗?... 我的意思是static的,new是你用到再分配堆内存,但是tomcat一启动就将所有的class里面的static都load进内存吗? 展开
 我来答
百度网友a2515c7
2012-01-03 · 超过30用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:67.8万
展开全部
可以负责的告诉你:不是
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,不同在于使用的框架机制,就加载本身来说没有区别,都是啥时候用,啥时候加载,这也是所有高级语言的重大改进点。减少内存的负担
314649444
2012-01-04 · TA获得超过232个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:195万
展开全部
在web工程中还可以配置,Servlet的启动优先级,可以设置程序启动优先级
在web.xml 文件中<load-on-startup></load-on-startup>标签
<load-on-startup></load-on-startup>指 定当Web应用启动时,装载Servlet的次序。
当值为正数或零时:Servlet容器先加 载数值小的servlet,再依次加载其他数值大的servlet.
当值为负或未定义:Servlet容器将在 Web客户首次访问这个servlet时加载它
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
饭米粒呵呵e6
2012-01-04
知道答主
回答量:28
采纳率:0%
帮助的人:4.4万
展开全部
路过帮顶
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式