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 ...
最新文章
- 《一个操作系统的实现》——pmtest1.asm详解
- Spring单例的线程安全性
- iOS开发:iPhone6、6 plus适配
- 表单数据自动录入_智能记账系统,公式已设好,可直接录入数据,凭证报表自动生成...
- LeetCode 546. 移除盒子(DP)*
- web开发——Flask框架
- 信息学奥赛一本通C++语言——1077:统计满足条件的4位数
- C++ STL 学习笔记__(6)优先级队列priority_queue基本操作
- 大数据开发笔记(八):Spark综合笔记总结
- azkaban 入门简介
- 用Bolt引擎实现换肤指南
- 为什么便利店晚上顾客很少?还要24小时营业?
- java股票行情接口展示
- 深度 | 苹果略胜微软一筹,为什么说 ARKit 是 AR 的最好选择?
- 属于python保留字的是_属牛的女人全集:属牛女的性格、命运、属相婚配表等-第一星座网...
- java单例模式的应用场景_java项目中单列模式适用于什么场景?
- 微信小程序picker地区选择器显示省市二级联动
- Linux下重启mysql的正确方法
- sa387gr11cl2相当于什么材料,sa387gr11cl2对应国内材质
- Exception in thread main java.lang.NoClassDefFoundError: goetl/etl/Ip2Plac