首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有静态初始化器的Java和类

问带有静态初始化器的Java和类
EN

Stack Overflow用户
提问于 2014-08-23 09:18:54
回答 2查看 1.2K关注 0票数 0

我在每个页面请求上都有一个servlet实例化的类。该类有一个静态初始化器、一个静态变量,其余的包含非静态公共或私有成员、构造函数等。

这安全吗?我不希望调用静态初始化程序,而是在servlet的整个生命周期中只调用一次。

利用Tomcat。据我所知,每次类被一个类加载器加载时,静态初始化器都会被调用。基于我的需求,这应该是我(使用tomcat)关心的问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-23 09:25:47

没有任何问题,除非您修改了静态变量,因为它将被所有请求共享。如果您根据该变量进行任何决策,则会出现并发问题。

静态初始化在类加载时进行,因此只会发生一次。

票数 1
EN

Stack Overflow用户

发布于 2014-08-23 09:28:06

除非您在这个第二类中维护状态,否则您不应该担心实例化的数量。静态初始化器可以很好地使用。要执行“一生中只有一次”的行为,没有困难的方法。

有很多简单的黑客可以把你的独生子女变成一吨重,所以我不担心。如果您是一个顽固的狂热者,那么使用Spring或Pico,只在第二类中保持状态,只与servlet进行无状态的对话,一切都会好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25460400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档