关于静态属性的基础有关问题
关于静态属性的基础问题?
如果调用多次myStaticTest 类,请问MYClass 是否只实例化一次呢,还是每调用都会实例化呢?
如:
myStaticTest.newInstance();//1次
myStaticTest.newInstance();//2次
是否实例化了2次了MYClass呢,如果是,我可以这样写吗?
myStaticTest.init();
myStaticTest.newInstance();//1次
myStaticTest.newInstance();//2次
------解决思路----------------------
当然只实例一次了,static是静态共享的意思,static变量在类第一次创建时创建,之后直到jvm关闭才消失。
试试这个,只会输出一次test,说明两次创建对象,只执行一次构造函数
------解决思路----------------------
只会一次 操作的是同一个对象
public class myStaticTest {
private static MYClass mClass = new MYClass ();
public static String newInstance(){
return "strText="+ mClass.toString();
}
}
如果调用多次myStaticTest 类,请问MYClass 是否只实例化一次呢,还是每调用都会实例化呢?
如:
myStaticTest.newInstance();//1次
myStaticTest.newInstance();//2次
是否实例化了2次了MYClass呢,如果是,我可以这样写吗?
public class myStaticTest {
private static MYClass mClass = null;
public static void init(){
mClass = new MYClass ();
}
public static String newInstance(){
return "strText="+ mClass.toString();
}
}
myStaticTest.init();
myStaticTest.newInstance();//1次
myStaticTest.newInstance();//2次
------解决思路----------------------
当然只实例一次了,static是静态共享的意思,static变量在类第一次创建时创建,之后直到jvm关闭才消失。
public class _2_StaticClass {
/**
* @param args
*/
public static void main(String[] args) {
Test1 t1 = new Test1();
Test1 t2 = new Test1();
}
}
class Test1{
private static Test test = new Test();
public static String newInstance(){
return "strText="+ test.toString();
}
}
class Test{
public Test(){
System.out.println("test");
}
}
试试这个,只会输出一次test,说明两次创建对象,只执行一次构造函数
------解决思路----------------------
只会一次 操作的是同一个对象