美文网首页
单例和静态工具类的区别

单例和静态工具类的区别

作者: 7i昂 | 来源:发表于2019-11-09 15:23 被阅读0次

    内存上:

    单例模式执行的时候需要new 一个对象出来存储在堆栈里面,而静态方法不需要,它不依赖于对象(普通方法是Object.method而静态方法是class.method),但是他也是需要内存的,它是以代码块来存储

    生命周期:

    静态方法的类会在代码编译的时候就被加载,静态方法中产生的对象,会随着静态方法执行完毕而释放掉,而且执行类中的静态方法时,不会实例化静态方法所在的类。

    如果用单例模式, 产生的那一个唯一的实例,会一直在内存中,不会被GC清除的(原因是静态的属性变量不会被GC清除),除非整个应用退出了JVM

    执行效率:

    静态方法与实例方法,在加载时机和占用内存上,静态方法和实例方法是一样的,在类型第一次被使用时加载。调用的速度基本上没有差别。
    但是从日志打印来看,个人感觉还是静态方法在执行效率上快一点。

    相关文章

      网友评论

          本文标题:单例和静态工具类的区别

          本文链接:https://www.haomeiwen.com/subject/ikknbctx.html