java 的方法是静态的类_Java中单例模式和静态方法类的区别
最近翻看了一些资料,发现JAVA的单例模式并不简单:PHP并没有线程安全的问题,一个请求在结束后生命周期就结束了,PHP设计单例模式仅仅是为了如果在同一个页面多次处理,可以不用重复创建对象而已;JAVA则不同,需要考虑两个线程同时访问的情况。下面和上海java培训的小编一起去看看Java中单例模式和静态方法类的区别有哪些。
(1)代码结构上
单例模式可以有非静态方法和成员的,而且只要获得了实例就可以去调用;
静态方法类通常来说全是静态方法,如果有非静态方法,是不能直接调用的。
(2)编程思想上
单例模式是普通的类,只不过它是有一个实例而已,符合JAVA面向对象的思想;
静态方法类通常又称为工具类,它更像是面向过程的一个函数集。
(3)JAVA特性上
单例模式符合所有面向对象的特性,可以去继承类、可以实现接口、可以被继承、方法可以被重写、可以用于多态(不同实现);
而静态方法类不能。
(4)生命周期上
单例模式可以延迟初始化,并且一直到运行结束才会被回收;
静态方法类在第一次使用时就会被加载,执行完静态方法后就会被回收,如果频繁调用会导致频繁地初始化和释放。
(5)实例化上
单例模式需要进行实例化(通过静态方法中的new);
静态方法类不需要实例化,可以直接调用。
(6)内存占用上
单例模式调用哪个方法,就载入哪个方法,但是它需要长时间地维护一个对象;
静态方法类需要把所有静态方法都载入内存,不管你用不用。
(7)运行速度上
《单例模式和静态类的区别》作者称从日志打印看,静态方法比实例方法更快。
《java中的单例模式与静态类》作者称静态方法比实例方法更快,因为静态的绑定是在编译期就进行的。
(8)线程与共享
单例模式的多线程控制很方便,适合维护或者共享一些配置状态信息;
静态方法类的多线程控制则非常糟糕。
java 的方法是静态的类_Java中单例模式和静态方法类的区别相关推荐
- java 静态变量 存储_Java中存储的静态方法和静态变量在哪里?
静态方法(实际上所有方法)以及静态变量都存储在PermGen部分,因为它们是反射数据的一部分(类相关数据,而不是与实例相关的). 需要澄清的最新情况: 注意,只有变量及其技术值(原语或引用)存储在Pe ...
- java 不能继承的类_java中不能继承的类有哪些?
在Java中,只要是被定义为final的类,也可以说是被final修饰的类,就是不能被继承的. 因为jdk的开发者认为,有一些最基本的类没要必要对开发者开放,如果用户继承时操作有误,很可能引入很多问题 ...
- java的日历类_java 中的Calendar日历类
一.java 中的Calendar日历类解析 Calendar类是一个抽象类public abstract class Calendar implements Serializable, Clonea ...
- java正则表达式类_java中正则表达式之Pattern类与Matcher类
java中正则表达式之Pattern类与Matcher类 ======================================================================= ...
- java几何体类_java中Graphics2D的几何图形类有哪些?实例展示
随着时代的进步与发展,越来越多的人开始投入到java的学习中来.今天就来为大家介绍一些java基础知识,java中Graphics2D的几何图形类有哪些,并且通过实际的代码为大家展示. java中Gr ...
- java异常类_java中常见的异常类
展开全部 从异常类的继承架构图中可以看出:Exception 类扩展出数个子类,其中 IOException.RunntimeException 是较常用的两种. 习惯上将 Error 与 Excep ...
- java中的并发类_java中并发常用工具类
前言:在你无聊的时候,想想比你优秀还努力的人,也许就不觉的无聊了 今天下午没事干把买的java并发编程艺术这本书拿出来看了看,看了下也记不住,还是好记性不如烂笔头,今天讲四个并发中可能会用到的工具类, ...
- java访问方法修饰词四个_java中的四个修饰词(访问权限)
Java类成员的访问控制权限 有了包的概念之后,下面就可以开始为读者讲解 JAVA 语言之中的访问控制权限 的概念了.在 JAVA 中有四种访问控制权限,分别为:private.default.pro ...
- java中的常用日期类_Java中的常用日期类说明
日期类常用的有三个,Date类,Calendar(日历)类和日期格式转换类(DateFormat) Date类中的大部分的方法都已经过时,一般只会用到构造方法取得系统当前的时间.public clas ...
最新文章
- Chapter 2 Open Book——8
- BUUCTF(pwn)jarvisoj_level3_x64
- MySQL索引相关的数据结构和算法
- matlab计算联合熵,如何用matlab软件计算一幅图像信息的熵以及两幅图像间的联合熵?...
- 修改环境变量后,导致一些常用命令失效,如ll,ls,vi不能用
- swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法
- mysql技术任务_MySQL基础教程(13)MySQL计划任务
- ava 8中的新功能特性
- 吐血推荐HZHControls:我见过最美的Winform控件库
- UG二次开发UFUN C NXOpen C++全套视频教程
- Marlin 固件配置手动退换料
- 美国国税局将允许纳税人通过现场面试选择退出 ID.me 面部识别
- java jks 转pfx_证书pfx转换成jks
- java.sql.SQLException: Access denied for user ‘‘@‘localhost‘ (using password: YES)
- Windows server 2019 安装VPN
- R数据分析:随机截距交叉滞后RI-CLPM与传统交叉滞后CLPM
- 关于c语言中数据的存储
- spring(@RequestPart)同时上传表单数据和文件
- 2020年数维杯数学建模A题舆情监测情感倾向分析建模求解全过程文档及程序
- 双斜齿轮-市场现状及未来发展趋势