import java.util.*;
import net.rim.vm.*;
public class AddressBook {
static Vector addresses;
static PersistentObject persist;
static {
// Hash of "net.rim.sample.AddressBook".
long KEY = 0xa3b3159378f59a29L;
persist = PersistentStore.getPersistentObject( KEY );
if( persist.getContents() == null ) {
persist.setContents( new Vector() );
persist.commit();
}
addresses = (Vector)persist.getContents();
}
}
void add( Address a ) {
addresses.addElement( a );
persist.commit();
}
}
user244333
问问题
91 次
7 回答
1
这static {....}
称为静态块。这些用于初始化您的静态成员。当类被加载/初始化时,静态块被执行。
在您的示例中,您正在使用静态块初始化地址和向量。
于 2012-09-28T06:56:51.253 回答
1
- 该类已加载
静态实例变量被初始化
static Vector addresses;
static PersistentObject persist;
然后执行静态块。
static{....}
于 2012-09-28T06:58:13.187 回答
1
当类第一次由ClassLoader
. 这发生在第一次实例化该类的对象时,或者第一次访问该类的静态成员时。
静态块初始化器可以作为实例字段的构造器。构造函数使用适当的值初始化实例变量,其中静态块初始化程序将适当的值分配给static
变量。
当您想通过执行代码(例如函数调用和循环)来初始化静态字段时,静态块很有用,这些代码不能放在简单的赋值语句中。
于 2012-09-28T06:58:20.137 回答
0
无需为类创建对象即可使用这些静态变量
静态向量地址;静态 PersistentObject 持久化;
如果我们使用静态{---}之类的东西。它被称为静态初始化器。它在创建对象之前被初始化
于 2012-09-28T07:00:10.937 回答
0
先初始化静态变量,再初始化静态块
于 2012-09-28T07:05:49.657 回答
0
静态块将在此类(AddressBook)首次加载到 JVM 时执行。加载程序后,您的变量将可供使用。
于 2012-09-28T06:58:14.920 回答