在一个 类中SocketServer类中,定义了下面变量:
public static SocketServer socket;
类名和变量名相同,这是具有什么含义呢?求教!
static 修饰,表示静态,编译期就会分配内存给这个对象,之后用类名.属性名就可以拿到这个对象,而且每次调用类名.属性名拿到的都是这个对象,就单例了
就是自身包含自身的一个实例,常用作单例模式
java中内存主要包含4块,即heap(堆内存)、stack(栈内存)、data segment(静态变量或是常量存放区)、codesegment(方法区).
堆内存中存放的是new出的对象,new出的对象只包含成员变量。
栈内存中:存放的是局部成员变量。对于基本的数据类型存放的是基本变量的值,而对于对象变量,存放的是堆内存的地址。
静态、常量区:存放的是静态变量(类变量)或是常量。
方法区:存放的是对象的方法。因此即使new出多个对象也是只是存在一个方法。
单例模式:
private static CrmMerchantService crmMerchantService=null;
private CrmMerchantService(){
}
public static CrmMerchantService getInstace(){
if(crmMerchantService==null){
crmMerchantService=new CrmMerchantService();
}
return crmMerchantService;
}
** 祝你快乐**
这个你需要使用单例模式,
创建一个需要多次调用的类的实例对象,
public static SocketServer
每次new这个类的对象只能生成唯一的这个对象,socket;
每个类其实也是一种数据类型,就是定义一个变量,只是这个变量有点特别。是一个静态的!
这是我的理解,有不同的可以教我一下!
感谢,我这回明白了 。。。