java函数加不加static有何不同

publicclassA{publicstaticinttestMethod(){return1;}}与publicclassA{publicinttestMethod(... public class A{

public static int testMethod(){
return 1;
}
}



public class A{

public int testMethod(){
return 1;
}
}

假设我现在要调用方法testMethod.

public class B{

public void main(String[] args){

A.testMethod();

( new A()).testMethod();

有何不同呢?

}
}

希望从JVM底层解释。

别只告诉我,一个是类的方法,一个是对象的方法。

这个大家都知道,关键是这种不同的做法在性能上,在内存上有何不同呢?
展开
 我来答
静心说科技
2009-08-23 · 超过26用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:86.2万
展开全部
你也知道,static method是类的方法,也就是在Class Loader 类加载的时候JVM会生成相应的字节码。它的生命周期是整个application。所以会一直占用内存。如果不经常使用,没有必要用static。

不加static的method就是对象的方法,必须用对象的实例来调用。并随着对象的消亡而消亡。如果频繁使用该方法,内存会不断地开辟空间、释放空间,性能会受影响。

如果一个方法在多处被调用,而且该方法的功能是一些Utility功能,比如格式化等,对于这类方法可以声明为static。

如果方法和对象关系比较紧密,需要用到对象的某些属性,就声明为该对象的方法。
百度网友110b0d9
推荐于2018-03-05 · TA获得超过264个赞
知道答主
回答量:150
采纳率:0%
帮助的人:93.5万
展开全部
说白了,就是调用时候方便 不加static是非静态函数,访问需要new出该类的对象来调用,加上static是静态函数 可直接访问或者通过类名访问
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaocai2007
2009-08-23 · 超过10用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:36.1万
展开全部
加了static 就像是 跟不加static 就像是 类 跟结构体的区别。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
充乐安F1
2009-08-24
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
http://hi.baidu.com/228939139/blog/item/7b6ef7864b7d8d23c65cc3b2.html
我博客的一篇转文,对你很有用哦,给分吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hwd0312
推荐于2016-07-02 · TA获得超过4336个赞
知道小有建树答主
回答量:1043
采纳率:100%
帮助的人:168万
展开全部
java中声明为static的方法称为静态方法或类方法。静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法。静态方法中不能使用this关键字,因为静态方法不属于任何一个实例。静态方法不能被子类的静态方法覆盖。
例如:
static class CompanyEmployee{
public static string GetCompanyName(string name) { ... }
public static string GetCompanyAddress(string address) { ... }
}
一般来说,类中标注了static的函数能在类外直接引用,比如说:
String M_string1 =CompanyEmployee.GetCompanyName(M_string2)
而没有标注static的函数则必须声明一个类的实体,有实体来引用。比如说:
static class CompanyEmployee{
public string GetCompanyName(string name) { ... } //没有Staticpublic static string GetCompanyAddress(string address) { ... }
}
CompanyEmployee M_CompE = new CompanyEmployee();
String M_string1 =M_CompE.GetCompanyName(M_string2);//静态类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式