关于java中static问题
2012-02-02 09:38
246 查看
实例变量与类变量的区别:
实例变量:类的所有对象都会被分配相应的实例变量,及不同的对象的实例变量存储在不同的内存里;
类变量:类的所有对象都共享一个类变量,及类被加载到内存时,类变量的内存已经被分配,改变其中一个对象的这个类变量会影响其他对象的这个类变量,及该类变量被所有对象所共享。
例:
class A{
int x;
static int y;
}
class B{
A a1=new A();
A a2=new A();
}
![](http://hi.csdn.net/attachment/201201/30/0_1327904549cMTc.gif)
实例方法与类方法的区别:
实例方法:只有在类创建第一个对象时,实例方法才被分配入口,但是,该入口被所有对象共享,方法中的成员变量被认为是分配给该对象的成员变量,类变量和其他对象共享,该入口只有当所有对象不存在时才被取消。
类方法:在类被加载到内存中时,类方法就分配了相应入口地址,可以直接通过类名进行调用,只有当退出程序时该入口地址才被取消,所以类方法中只能调用类变量和类方法。
注:类方法中只能调用类变量和类方法
实例变量:类的所有对象都会被分配相应的实例变量,及不同的对象的实例变量存储在不同的内存里;
类变量:类的所有对象都共享一个类变量,及类被加载到内存时,类变量的内存已经被分配,改变其中一个对象的这个类变量会影响其他对象的这个类变量,及该类变量被所有对象所共享。
例:
class A{
int x;
static int y;
}
class B{
A a1=new A();
A a2=new A();
}
![](http://hi.csdn.net/attachment/201201/30/0_1327904549cMTc.gif)
实例方法与类方法的区别:
实例方法:只有在类创建第一个对象时,实例方法才被分配入口,但是,该入口被所有对象共享,方法中的成员变量被认为是分配给该对象的成员变量,类变量和其他对象共享,该入口只有当所有对象不存在时才被取消。
类方法:在类被加载到内存中时,类方法就分配了相应入口地址,可以直接通过类名进行调用,只有当退出程序时该入口地址才被取消,所以类方法中只能调用类变量和类方法。
注:类方法中只能调用类变量和类方法
相关文章推荐
- 【初学者常见问题】Java中关于static的谜团
- 关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- java中关于static的一个小问题
- 关于java中成员变量,static等问题总结
- java 关于对“是否可以从一个static方法内部发出对非static方法的调用”问题的理解
- 关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- 关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- 【JAVA基础】关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- java中关于static的一个小问题
- java 关于static问题
- 关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- java中关于static的一个小问题
- jni关于从java端调用C++的问题
- 关于使用fastdfs-client-java链接fastDFS(外网访问)超时问题
- java面试题inti=2;i+=i-=i*i的值以及关于i++;++i;i=i+1;i+=1 的效率问题
- 关于java.net.unknownHostException的问题 andriod
- 关于Java变量的可见性问题
- 关于JAVA初学者链表的问题
- 关于java中Axis2客户端调用C#webservice服务端包含Cookie问题