最近翻看了一些资料,发现JAVA的单例模式并不简单:PHP并没有线程安全的问题,一个请求在结束后生命周期就结束了,PHP设计单例模式仅仅是为了如果在同一个页面多次处理,可以不用重复创建对象而已;JAVA则不同,需要考虑两个线程同时访问的情况。下面和上海java培训的小编一起去看看Java中单例模式和静态方法类的区别有哪些。

(1)代码结构上

单例模式可以有非静态方法和成员的,而且只要获得了实例就可以去调用;

静态方法类通常来说全是静态方法,如果有非静态方法,是不能直接调用的。

(2)编程思想上

单例模式是普通的类,只不过它是有一个实例而已,符合JAVA面向对象的思想;

静态方法类通常又称为工具类,它更像是面向过程的一个函数集。

(3)JAVA特性上

单例模式符合所有面向对象的特性,可以去继承类、可以实现接口、可以被继承、方法可以被重写、可以用于多态(不同实现);

而静态方法类不能。

(4)生命周期上

单例模式可以延迟初始化,并且一直到运行结束才会被回收;

静态方法类在第一次使用时就会被加载,执行完静态方法后就会被回收,如果频繁调用会导致频繁地初始化和释放。

(5)实例化上

单例模式需要进行实例化(通过静态方法中的new);

静态方法类不需要实例化,可以直接调用。

(6)内存占用上

单例模式调用哪个方法,就载入哪个方法,但是它需要长时间地维护一个对象;

静态方法类需要把所有静态方法都载入内存,不管你用不用。

(7)运行速度上

《单例模式和静态类的区别》作者称从日志打印看,静态方法比实例方法更快。

《java中的单例模式与静态类》作者称静态方法比实例方法更快,因为静态的绑定是在编译期就进行的。

(8)线程与共享

单例模式的多线程控制很方便,适合维护或者共享一些配置状态信息;

静态方法类的多线程控制则非常糟糕。

java 的方法是静态的类_Java中单例模式和静态方法类的区别相关推荐

  1. java 静态变量 存储_Java中存储的静态方法和静态变量在哪里?

    静态方法(实际上所有方法)以及静态变量都存储在PermGen部分,因为它们是反射数据的一部分(类相关数据,而不是与实例相关的). 需要澄清的最新情况: 注意,只有变量及其技术值(原语或引用)存储在Pe ...

  2. java 不能继承的类_java中不能继承的类有哪些?

    在Java中,只要是被定义为final的类,也可以说是被final修饰的类,就是不能被继承的. 因为jdk的开发者认为,有一些最基本的类没要必要对开发者开放,如果用户继承时操作有误,很可能引入很多问题 ...

  3. java的日历类_java 中的Calendar日历类

    一.java 中的Calendar日历类解析 Calendar类是一个抽象类public abstract class Calendar implements Serializable, Clonea ...

  4. java正则表达式类_java中正则表达式之Pattern类与Matcher类

    java中正则表达式之Pattern类与Matcher类 ======================================================================= ...

  5. java几何体类_java中Graphics2D的几何图形类有哪些?实例展示

    随着时代的进步与发展,越来越多的人开始投入到java的学习中来.今天就来为大家介绍一些java基础知识,java中Graphics2D的几何图形类有哪些,并且通过实际的代码为大家展示. java中Gr ...

  6. java异常类_java中常见的异常类

    展开全部 从异常类的继承架构图中可以看出:Exception 类扩展出数个子类,其中 IOException.RunntimeException 是较常用的两种. 习惯上将 Error 与 Excep ...

  7. java中的并发类_java中并发常用工具类

    前言:在你无聊的时候,想想比你优秀还努力的人,也许就不觉的无聊了 今天下午没事干把买的java并发编程艺术这本书拿出来看了看,看了下也记不住,还是好记性不如烂笔头,今天讲四个并发中可能会用到的工具类, ...

  8. java访问方法修饰词四个_java中的四个修饰词(访问权限)

    Java类成员的访问控制权限 有了包的概念之后,下面就可以开始为读者讲解 JAVA 语言之中的访问控制权限 的概念了.在 JAVA 中有四种访问控制权限,分别为:private.default.pro ...

  9. java中的常用日期类_Java中的常用日期类说明

    日期类常用的有三个,Date类,Calendar(日历)类和日期格式转换类(DateFormat) Date类中的大部分的方法都已经过时,一般只会用到构造方法取得系统当前的时间.public clas ...

最新文章

  1. Chapter 2 Open Book——8
  2. BUUCTF(pwn)jarvisoj_level3_x64
  3. MySQL索引相关的数据结构和算法
  4. matlab计算联合熵,如何用matlab软件计算一幅图像信息的熵以及两幅图像间的联合熵?...
  5. 修改环境变量后,导致一些常用命令失效,如ll,ls,vi不能用
  6. swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法
  7. mysql技术任务_MySQL基础教程(13)MySQL计划任务
  8. ava 8中的新功能特性
  9. 吐血推荐HZHControls:我见过最美的Winform控件库
  10. UG二次开发UFUN C NXOpen C++全套视频教程
  11. Marlin 固件配置手动退换料
  12. 美国国税局将允许纳税人通过现场面试选择退出 ID.me 面部识别
  13. java jks 转pfx_证书pfx转换成jks
  14. java.sql.SQLException: Access denied for user ‘‘@‘localhost‘ (using password: YES)
  15. Windows server 2019 安装VPN
  16. R数据分析:随机截距交叉滞后RI-CLPM与传统交叉滞后CLPM
  17. 关于c语言中数据的存储
  18. spring(@RequestPart)同时上传表单数据和文件
  19. 2020年数维杯数学建模A题舆情监测情感倾向分析建模求解全过程文档及程序
  20. 双斜齿轮-市场现状及未来发展趋势

热门文章

  1. Neve 1073 话放 变压器
  2. 清华大学计算机学硕保研,2018年清华大学接收推荐免试直硕生拟录取名单公示...
  3. HDLBits刷题-Multiplexers
  4. kodbox 可道云上传大文件(超过4G的)
  5. 关于Tiff,tfw文件关系
  6. 校园点餐管理系统(附源代码及数据库)
  7. linux环境C程序设计--安装D-Bus
  8. 申办上海市居住证所需的材料
  9. CF刷题(02)——难度1700~2000
  10. 【读书笔记】单人FPS关卡设计模式