- 浏览: 799762 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (248)
- Struts1.x (3)
- Java (24)
- SQL (8)
- 错误汇总/Java (7)
- 错误汇总/JDBC (1)
- 错误汇总/lomboz_eclipse_Hibernate proposals (1)
- 错误汇总/javascript (3)
- 错误汇总/Hibernate + JPA (1)
- 错误汇总/dwr (1)
- hibernate3.X (10)
- Struts2.x (5)
- 概念/JPA (1)
- 概念/JTA (1)
- dwr (1)
- JSTL (1)
- English (6)
- Java/awt (4)
- design_pattern/Observer (2)
- 项目管理 (1)
- Java面试题 (7)
- Linux/Unix (4)
- 服务器/WAS6.0 (1)
- 服务器/WAS6.1 (5)
- 服务器/JBoss (2)
- 收藏 (4)
- 服务器/Tomcat6.X (2)
- 错误汇总/Struts2.X (3)
- JavaRebel (1)
- 小技巧 (3)
- 版本控制 (1)
- 错误汇总/Tomcat6.X (2)
- 错误汇总/Cactus (1)
- HttpUnit (1)
- 错误汇总/Struts1.x (2)
- 数据库/Oracle (6)
- 小技巧/MyEclipse (1)
- javascript (21)
- OGNL (1)
- JSP (2)
- 报表/BIRT (5)
- jquery (6)
- ec:table&ec:side (1)
- Java/Date (1)
- C# (2)
- NC (32)
- oracle (10)
- Ant (1)
- Eclipse (1)
- 迷茫 (1)
- swing (3)
- 数据库/MySQL (2)
- 装机 (3)
- 名词解释/NC (3)
- java/算法 (1)
- HTML (1)
- 分布式 (2)
- flex (5)
- SSI(spring+struts_ibatis) (1)
- UML (1)
- ajax (1)
- Flex 背景透明 (1)
- Android (8)
- 正则 (2)
- linux (1)
最新评论
-
yizishou:
IE9- Only
javascript中createTextRange用法(focus) -
huanzei:
还可以了,po主的第一个方法可行,第二个方法没有试
jsp表格的表头固定不动 -
javams:
Soongtracy 写道方法二完全不行啊亲,你自己有木有试过 ...
jsp表格的表头固定不动 -
mengy163163:
您好,有个问题想请教一下:"birt生成Excel缺 ...
BIRT报表 -
zzy2011266:
楼主,你找到原因了吗?这是为啥?貌似是JVM出bug了
JAVA异常 EXCEPTION_ACCESS_VIOLATION (0xc0000005)
关于这个问题,下面是一些同仁的观点:
观点一:(单例)
单例模式比静态方法有很多优势:
首先,单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集成实例成员);
其次,单例可以被延迟初始化,静态类一般在第一次加载是初始化;
再次,单例类可以被集成,他的方法可以被覆写;
最后,或许最重要的是,单例类可以被用于多态而无需强迫用户只假定唯一的实例。举个例子,你可能在开始时只写一个配置,但是以后你可能需要支持超过一个配置集,或者可能需要允许用户从外部从外部文件中加载一个配置对象,或者编写自己的。你的代码不需要关注全局的状态,因此你的代码会更加灵活。
观点二:(静态方法)
静态方法中产生的对象,会随着静态方法执行完毕而释放掉,而且执行类中的静态方法时,不会实例化静态方法所在的类。如果是用singleton, 产生的那一个唯一的实例,会一直在内存中,不会被GC清除的(原因是静态的属性变量不会被GC清除),除非整个JVM退出了。这个问题我之前也想几天,并且自己写代码来做了个实验。
观点三:(Good!)
由于DAO的初始化,会比较占系统资源的,如果用静态方法来取,会不断地初始化和释放,所以我个人认为如果不存在比较复杂的事务管理,用singleton会比较好。
总结:
个人认为:
1、内存占用上,都一样。
2、垃圾回收上,静态方法回收及时,单例由于存在静态类变量,是同JVM的消失而消失的
所以,不涉及事务时,方法使用率高用静态方法,类的使用率高则用单例类
发表评论
-
Swing 各种提示框
2015-08-23 15:52 3126Swing提供了JOptionPane类 ... -
得到指定月的第一天和最后一天
2013-10-15 11:15 3516Calendar calendar = Calendar. ... -
java中常见字符串的正则表达式匹配
2013-09-13 08:51 6828正则表达式是一个字符串,这个字符串可以来描述或者匹配一 ... -
getPhysicalNumberOfCells 与 getLastCellNum的区别
2013-09-05 15:45 5023用org.apache.poi的包做excel导入,无意间发 ... -
JSON日期格式转换
2013-03-27 09:34 2147默认JSON对DATE类型会转换成一个多属性对象, 而不是单 ... -
JAVA判断当前日期是星期几
2013-02-05 14:18 3034/** * 判断当前日期是星期几< ... -
一个数的n次方
2013-02-05 13:36 1012public class NumberUtils { ... -
java中进行二进制,八进制,十六进制,十进制间进行相互转换
2013-02-05 13:34 5243十进制转成十六进制: Integer.toHexString( ... -
JavaBean为什么实现Serializable(序列化)接口
2012-04-27 15:10 5541今天在面试中遇到了 ... -
指定日期是星期几
2011-02-24 13:26 1230代码: public void week ... -
计算指定年份里月份中的天数
2011-02-23 20:56 1611代码: public void setDate(int ... -
使用apache的IOUtils类完成文件下载(FileDownload)程序
2010-09-16 23:06 11172package com.test; import ... -
java读取文件路径的几种方法,java 的Class中获得相对路径,绝对路径的方法
2010-09-10 12:16 3286System.out.println("** ... -
System.getProperty()参数大全
2010-09-02 16:48 1249java.version Java Runtime Envir ... -
java 注释换行
2010-08-06 11:42 4283java 注释换行 只适用于doc格式的注释 ... -
java 循环map
2010-03-16 16:17 4802转: 根据JDK5的新特性,用For循环Map,例如循 ... -
关键字volatile
2010-02-24 10:54 1136synchronize建立内存屏障,使其能够抑制内存指令的重排 ... -
java的值传递
2010-01-13 14:10 1083@Test public void TestColl ... -
java内部类有什么好处?为什么需要内部类?
2009-11-17 15:43 2365首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一 ... -
java中判断字符串是否数字的两种方法
2009-07-20 16:38 4996判断字符串是不是数字,大家可能会用一些java自带的方法,也有 ...
相关推荐
"Java单例模式实现静态内部类方法示例" Java单例模式是软件设计模式中最基本和最常见的一种设计模式,也是最容易理解的一种设计模式。它的主要思想是确保某个类只有一个实例,并且提供一个全局访问点来访问该实例。...
计算机后端-Java-图解java设计模式030 单例(静态代码.avi
计算机后端-Java-图解java设计模式029 单例(静态常.avi
在Qt中,我们通常使用静态成员函数来实现单例,确保任何时候都只能通过这个函数创建或获取该类的实例。 创建Qt静态单例的典型步骤如下: 1. **定义类**:首先,创建一个类,例如`SingletonClass`,它继承自你想要...
1. **正确地初始化静态成员变量**:在单例模式中,静态成员变量通常用来存储单例实例。确保在单例类的cpp文件中,有如下初始化代码: ```cpp // Singleton.h class Singleton { public: static Singleton* ...
单例模式与静态类(一个类,所有方法为静态方法)是另一个非常有趣的问题,在《Java中有关单例模式的面试问题》博文中露掉了,由于单例模式和静态类都具有良好的访问性,它们之间有许多相似之处,例如,两者可以直接...
### 单例模式与垃圾回收机制 #### 一、引言 在软件开发领域,设计模式作为一种被广泛接受的最佳实践,对于提高代码质量和可维护性起着重要作用。单例模式作为23种经典设计模式之一,确保了某个类只有一个实例,并...
在这个场景中,我们将探讨如何使用单例模式来创建一个学生管理系统,主要涉及“饿汉式”和“懒汉式”两种实现方式。 **饿汉式单例** 饿汉式单例在类加载时就完成了实例化,因此它是线程安全的。这种方式保证了单例...
在PHP编程中,单例模式是一种非常常用的设计模式,它保证了...总的来说,单例模式在PHP编程中有着广泛的应用,通过合理的使用,可以提高代码的可维护性和性能。了解并熟练掌握单例模式,对于提升PHP开发技能至关重要。
在C++中,通常通过私有构造函数和静态成员函数来实现单例。静态成员函数确保只有一个实例被创建,同时提供全局访问点。 日志类在此场景中的设计考虑了多线程安全。在多线程环境中,多个线程可能同时尝试写入日志,...
单例模式是软件设计模式中的一种,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下都非常有用,比如控制资源的唯一性、管理共享配置或者创建昂贵的对象时避免频繁创建销毁。 ...
3. 提供一个公共的静态方法,作为获取单例实例的入口,这个方法通常称为`GetInstance()`。 以下是一个简单的C#单例模式实现计数器的例子: ```csharp public sealed class Counter { private static readonly ...
//单例模式,始终只产生一个对象 /*public class SingleTest { public static void main(String[] args) { SingleTon singleTon1=SingleTon.getInstance(); SingleTon singleTon2=SingleTon.getInstance(); ...
在Joomla!涉及到了很多的单例模式,比如JFactory,JURI等等。 对于一个请求中需要一个对象实例的,joomla大多采用了单例模式,可以避免重复实例化带来的资源浪费和性能损耗。
在某些场景下,过度使用单例可能会导致设计上的问题,因此需谨慎使用。 在实际项目中,我们需要根据需求来决定是否使用单例。如果确实需要全局共享且生命周期需要控制的对象,单例模式是很好的选择。但如果不涉及...
根据提供的标题、描述、标签及部分内容,我们可以详细探讨C#中的单例(Singleton)与多例(Multiton)设计模式。 ### 单例模式 单例模式是一种常用的软件设计模式,它确保一个类只有一个实例,并提供一个全局访问...
3. **声明并初始化静态变量**:声明一个私有的静态变量用于存储单例对象,并且在类的初始化过程中对其进行初始化。 4. **提供获取实例的方法**:通常会提供一个静态方法或类方法来获取单例对象,这个方法会检查是否...
线程安全的单例模式实现可以基于静态局部变量和`std::call_once`。以下是一个简单的示例: ```cpp #include class Singleton { private: Singleton() {} // 私有构造函数 static std::once_flag init_flag; ...