Service.me.xxx(); 的静态调用会有性能问题吗?

Service.me.xxx(); 的静态调用会有性能问题吗? 我项目大量使用了这种用法。

我在Service里面:public static final RoleService me = new RoleService();

然后在需要使用的地方大量使用了: RoleService .me.find();类似这样的写法

是线程安全的吗? 我担心在并发量大的时候出现排队问题?   还有new Account().save(); 这样的写法太多了,同样会不会很占用内存? 

评论区

JFinal

2018-11-18 11:06

使用 static 是为了减少对象的创建,从而尽可能避免内存分配,所以性能会提升

是否线程安全取决于你的 RoleService 中的属性字段是否能共享,是否支持并发,如果不支持并发的话,要使用 synchronized 、lock 机制处理并发问题

如果有并发问题,不要使用 static ,每次用的时候 new 一个新的即可解决,这个是 java 基础问题,与 jfinal 无关

jfinal demo 中的 service 没有使用 static ,不建议使用 static 。new Account().save() 对内存的占用完全可以忽略不计

tuxming

2018-11-18 14:36

谢谢

fineclever

2018-11-20 09:55

@JFinal 你好,现在网站上下的maven演示系统有问题,Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletResponse,问题可能是

fineclever

2018-11-20 09:57

@JFinal javax.servlet-api3.10 换4.0就行了

fineclever

2018-11-20 09:58

@JFinal jetty-server2018.11包里的事吧?

热门反馈

扫码入社