|
发表于 2002-11-30 16:49:41
|
显示全部楼层
java中对象放在动态的heap中,对象的reference(感觉就是指针)放在stack中,static可以不通过实例直接用class名调用,java中没有全局概念,但是可以通过访问控制符,如:public,protected,private控制,static好像还不能通过构造函数来初始化。。。final我的理解是因为java中在对对象的应用中是通过reference的副本进行应用的,这样可能会修改原始heap中的同一对象,对变量的操作中就没有这个现象了,,所以用final可以防止这一点。。。
呵呵~~关于final和static的关系,我举个例子:
//多运行几遍,观察i和j值差异,可看到不同之处
class Test{
final int i =(int)(Math.random()*20);
static final int j=(int)(Math.random()*20);
public void prn(String id){
System.out.println(
id + ":" +" i="+i +" , j= "+j);}
public static void main(String [] args){
Test test1=new Test ();
test1.prn("TEST1");
System.out.println("Creating a new TEST");
Test test2=new Test();
test1.prn("TEST1");
test2.prn("TEST2");
}
}
呵呵~~~我也是新手,,大家相互交流~~~~;& |
|