public class B {
/* public class A {
// 静态方法 static
public static int add(int i) {
return(i);
}
// 非静态方法 static
public int add2(int i) {
return(i);
}
}*/
public static void main(String args[]) {
final int i=5; // final 只能被赋值一次,赋值后其值不再改变
System.out.println(A.add(i));// 输出 5
A a = new A(); // a 即是A类的实例化对象
System.out.println(a.add(i));// 输出 5
a.add2(i);
/*
// 静态方法和非静态方法的区别:
1-方法归属: 静态方法属于类本身, 非静态方法属于对象()这个对象是类实例化后的对象
2-调用方式: 非静态方法只能是“对象.方法名”, 静态方法即可通过“对象.方法名”,也可“类.方法名”
3-生命周期: 静态方法的生命周期从进程创建时开始,在类装载时被装载到内存中,不自动销毁,一直存在内存中,直到JVM关闭
非静态方法的生命周期从创建实例化对象开始,一直到实例化对象被注销回收之后结束
4-线程安全: 静态方法是共享代码段,静态变量是共享数据段。既然是“共享”就有并发(Concurrence)的问题。
非静态方法是针对确定的一个对象的,所以不会存在线程安全的问题。
5-执行效率: 静态方法的使用效率比非静态方法的效率高
*/
}
}
静态方法和非静态区别
最新推荐文章于 2021-03-02 12:52:52 发布