java 静态方法和单例模式的区别

1、首先明白内存问题

  Java内存分为两部分:堆内存、栈内存

  无论是静态方法还是非静态方法,在内存中都只有一份;非静态方法在调用时会默认使用this传入当前对象;

2、静态方法不可以重写

  静态方法是在

3、使用上

  静态方法不需要new实例就可以调用;非静态方法必须new实例才可以调用;

4、加载时机的问题

  静态方法是在类加载的时候就加载到内存中;

时间: 2024-10-08 11:29:52

java 静态方法和单例模式的区别的相关文章

java 静态方法和实例方法的区别

静态方法和实例方法的区别主要体现在两个方面:   在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方式.也就是说,调用静态方法可以无需创建对象.   静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法:实例方法则无此限制.   下面几个例子展示了这一区别.   1.调用静态方法示例. //-----------hasStaticMethod.j

java 静态方法和实例方法的区别(转)

静态方法和实例方法的区别主要体现在两个方面:   在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方式.也就是说,调用静态方法可以无需创建对象.   静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法:实例方法则无此限制.   下面几个例子展示了这一区别.   1.调用静态方法示例.   //-----------hasStaticMethod

静态方法与单例模式的区别

观点一:(单例) 单例模式比静态方法有很多优势:首先,单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集成实例成员):其次,单例可以被延迟初始化,静态类一般在第一次加载是初始化:再次,单例类可以被集成,他的方法可以被覆写:最后,或许最重要的是,单例类可以被用于多态而无需强迫用户只假定唯一的实例.举个例子,你可能在开始时只写一个配置,但是以后你可能需要支持超过一个配置集,或者可能需要允许用户从外部从外部文件中加载一个配置对象,或者编写自己的.你的代码不需要关注全局的状态,因此你的代码会更

java静态方法和实例化方法的区别(copy)

[资料来源] http://blog.csdn.net/biaobiaoqi/article/details/6732117 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用 实例化方法需要new了以后才可以使用....我们真的理解了吗? 从实际项目开发说起,这里有开发项目的三种方式: 开发项目中把BLL和DAL分开,在BLL调用DAL的代码. 一.在DAL中使用静态方法,不创建实例直

java静态方法(变量)、非静态方法(变量)区别

java静态方法.静态变量在调用时生成唯一标识,即在内存中给定一个静态位子,这样在调用时可以直接找到,而且会节省内存.但如果声明的静态方法.静态变量过多,会占用过多内存,有可能导致内存溢出. 非静态方法.非静态变量有gc管理,每new一个对象时,在堆上分配一块内存,不用时由gc回收. 即,静态方法.静态变量预先分配,非静态方法.非静态变量动态分配. 所有的class.static变量位于方法区,方法区既可以在堆上,又可以在栈上.

Java | 基础归纳 | 静态方法与实例方法的区别

静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方式.也就是说,调用静态方法可以无需创建对象. 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法:实例方法则无此限制. 来源:https://www.cnblogs.com/shenliang123/archive/2011/10/27/222692

java中的单例模式与静态类

单例模式与静态类(一个类,所有方法为静态方法)是另一个非常有趣的问题,在<Java中有关单例模式的面试问题>博文中露掉了,由于单例模式和静态类都具有良好的访问性,它们之间有许多相似之处,例如,两者可以直接使用而无须创建对象,都可提交唯一实例,在一个非常高的高度上看起来它们都为是用于同样的任务.由于它们具有较多的相似性,面试官常常会问一些类似为神马使用单例模式替换静态方法?你能使用静态类替换单例模式吗?Java中单例模式与静态的区别有那些?等这样的问题,为回答这些问题,记住他们单例模式和静态方法

折腾Java设计模式之单例模式

博文原址:折腾Java设计模式之单例模式 单例模式 Ensure a class has only one instance, and provide a global point of access to it. 一个类仅仅只有一个实例,并且提供全局的接入点.简洁点理解就是涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建.这个类提供了一种访问它自己唯一的对象的方式,可以直接访问,不需要实例化该类的对象. 饿汉式单例模式 public final class EagerSi

(九)JAVA设计模式之单例模式

JAVA设计模式之单例模式 一.单例模式的介绍 Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点.     全局对象和Singleton模式有本质的区别,因为大量使用全局对象会使得程序质量降低,而且有些编程语言根本不支持全局变量.最重要的是传统的全局对象并不能阻止一个类被实例化多次. 二.单例模式的特点 单例类只能有一个实例 单例类必须自己创建自己的唯一实例. 单例类必须给所有其他对象提供这一实例.