单例模式与类名静态方法调用的区别?java web开发为什么样不用静态方法而使用new对象或者spring

发表时间:2018-01-25 01:18:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《到十字路口绿灯闪或者黄灯亮?如何为中文电视剧加外文字幕》相关知识。本篇中小编将再为您讲解标题单例模式与类名静态方法调用的区别?java web开发为什么样不用静态方法而使用new对象或者spring。

什么时候选择用单例模式,什么时候选择用类的静态方法直接调用?两者有什么区别

单例模式只生成①个实例,而类名静态方法的直接调用在加载JVM时该类就编译好了,两者相当于都是只占用①个实例大小的内存。那么我们该如何选择?

谢邀。

单例类和静态方法最大的区别在于单例类的实例是①个对象。它具有面向对象编程中,继承,封装,多态的所有特性。看下面这个例子:

public class Main { public static void main(String[] args) { Singleton inst = Singleton.getInstance(); inst.sayHello(); }}abstract class SingletonBase { public void sayHello() { System.out.println(\"base\"); }}class Singleton extends SingletonBase { public static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; }}

这个单例类中有继承(这不是①个线程安全的单例类,我手头上没有Java环境,盲打的,所以就偷了个懒),当然,我们也可以增加多态的特性。但是静态方法就没办法了。

至于题主所关心的,内存的问题,所有的方法对应的代码都在meta space里(或者在JDK⑦之前叫做perm),而静态方法在堆中是没有任何对象的;单例类的实例是①个普通的Java对象,它是在Java堆中创建的。

并发①起,服务就要跪,程序变大,栈先溢出等等……实在有太多的缺点

________________________________

更新:

太多缺点有点过了,也有优点的。静态代码执行效率很高,如果你的内存实在用不完,那就上吧\", \"extras\": \"\", \"created_time\": ①④⓪⑤⑨①⑤⑤⑦⑨ · \"type\": \"answer

编后语:关于《单例模式与类名静态方法调用的区别?java web开发为什么样不用静态方法而使用new对象或者spring》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《上海到那里买台式电脑比较实惠点!谢谢?在上海主要上网、看高清、办公、聊天配什么样台式机实惠》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题