单例和静态工具类的区别

内存上:

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

生命周期:

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

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

执行效率:

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,156评论 1 32
  • 这篇文章是我之前翻阅了不少的书籍以及从网络上收集的一些资料的整理,因此不免有一些不准确的地方,同时不同JDK版本的...
    高广超阅读 15,758评论 3 83
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,704评论 0 11
  • 《深入理解Java虚拟机》笔记_第一遍 先取看完这本书(JVM)后必须掌握的部分。 第一部分 走近 Java 从传...
    xiaogmail阅读 5,203评论 1 34
  • 彩虹花晨诵课程一直以来就是孩子们喜欢和着迷的课程,为了那短短的二十分钟课程,即使是天寒地冻的严冬,孩子们也会早早起...
    吉林付巍巍阅读 341评论 3 8