有一个疑问:java中什么时候使用静态函数,为什么要使用静态函数,使用静态函数和单例模式有什么特色 如题(我的积分比较少,不好意思啦) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果一个类中有属性且类的方法还可以修改的话,用单例; 如果一个类中只有方法而没有属性(就像LZ的MD5类),或是有属性但方法只读它,那么有静态方法比较好; 一个类是否线程安全的一般都伴随着其属性的读写。单例顾名思义对外只产生一个实例,前提是得到实例后才能得到其方法。 况且单例模式适用于一些无状态的,线程安全的,工厂等模式情况下。 而静态方法则是在加载类的时候就会加载到的方法。无需new实例就能调用的静态方法如果不用到类属性的话,就是线程安全的 单例是返回唯一对象,对象内属性是共享的,大家都可以访问并改变 无论是单例还是静态函数,都有一个特点,就是他们在内存中只有一个实例,这意味着:1。使用过程中不需要再new实例化对象,开销很小2。这些类一般都是无状态的,函数谁调都一样因此,综合上上述,他们适合用于工具类。区别:1。构建实例化时间来说,静态函数在类加载就可以用,换句话说,是系统保证其实例的唯一性的。而单例,其实还是普通类,是程序来保证其内存的唯一性的,所以类的实例,要手动加载!注意,单例模式的创建过程是有点考功底的,特别是所谓的惰性初始化。用不好会弄巧成拙。2。单例和静态函数另外一个区别在于OO方面。静态函数由于其类加载就确定函数的特点,决定了他是真正的静态,就把他当成简单的工具类就ok了。而单例如上说的,由于其可以滞后实例化,所以他仍然可以用抽象,用子类。也就是说,仍然可以抽象一个工具单例,直到运行阶段才决定到底使用那个具体的子类单例!说的有点抽象把,我举个例子你可能就明白了。假设,我们有一个起瓶器,开酒瓶的。这个显然使用于单例或静态函数,因为他只有一个动作,就是开盖。但是我们知道。起瓶器有两种,开啤酒瓶的和开红酒的两个就不同。那我到底用哪个呢?这个时候,如果酒瓶也被抽象了。那显然,我们用单例比较合适。我抽象一个类,就是起瓶子器,然后有两个具体的子类实例,分别是啤酒起瓶器和红酒起瓶器,而这两个子类都可以做称单例。只有在运行时才决定,红酒就用红酒的单例起瓶器,啤酒就用啤酒起瓶器。明白了吧,不不懂给我留言。另外,http://www.1000100hui.com/bulletin/biggift.html还有优惠,可以上去看看 正则表达式在线等 java啊,工作啊 求面试测试题 180分高分,求解一个替换问题!谢谢!急!! SWING的表单校验 初学者:关于ArrayList 请问在哪里下载eclipse啊?? java绘图 如何实现边画边显示? 谁给我这个新人看看这个问题? Java 精度问题 求详解 Swing里面的事件与SQLserver数据库的连接的问题 锁的同步小问题
如果一个类中只有方法而没有属性(就像LZ的MD5类),或是有属性但方法只读它,那么有静态方法比较好;
一个类是否线程安全的一般都伴随着其属性的读写。单例顾名思义对外只产生一个实例,前提是得到实例后才能得到其方法。
况且单例模式适用于一些无状态的,线程安全的,工厂等模式情况下。
而静态方法则是在加载类的时候就会加载到的方法。无需new实例就能调用的静态方法如果不用到类属性的话,就是线程安全的 单例是返回唯一对象,对象内属性是共享的,大家都可以访问并改变
1。使用过程中不需要再new实例化对象,开销很小
2。这些类一般都是无状态的,函数谁调都一样
因此,综合上上述,他们适合用于工具类。
区别:
1。构建实例化时间来说,静态函数在类加载就可以用,换句话说,是系统保证其实例的唯一性的。而单例,其实还是普通类,是程序来保证其内存的唯一性的,所以类的实例,要手动加载!注意,单例模式的创建过程是有点考功底的,特别是所谓的惰性初始化。用不好会弄巧成拙。
2。单例和静态函数另外一个区别在于OO方面。静态函数由于其类加载就确定函数的特点,决定了他是真正的静态,就把他当成简单的工具类就ok了。而单例如上说的,由于其可以滞后实例化,所以他仍然可以用抽象,用子类。也就是说,仍然可以抽象一个工具单例,直到运行阶段才决定到底使用那个具体的子类单例!
说的有点抽象把,我举个例子你可能就明白了。
假设,我们有一个起瓶器,开酒瓶的。这个显然使用于单例或静态函数,因为他只有一个动作,就是开盖。
但是我们知道。起瓶器有两种,开啤酒瓶的和开红酒的两个就不同。那我到底用哪个呢?
这个时候,如果酒瓶也被抽象了。那显然,我们用单例比较合适。
我抽象一个类,就是起瓶子器,然后有两个具体的子类实例,分别是啤酒起瓶器和红酒起瓶器,而这两个子类都可以做称单例。只有在运行时才决定,红酒就用红酒的单例起瓶器,啤酒就用啤酒起瓶器。明白了吧,不不懂给我留言。
另外,http://www.1000100hui.com/bulletin/biggift.html还有优惠,可以上去看看