关于静态属性的基础问题?

Android 码拜 10年前 (2015-05-10) 1036次浏览 0个评论
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次

30分
当然只实例一次了,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,说明两次创建对象,只执行一次构造函数

10分
只会一次  操作的是同一个对象

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于静态属性的基础问题?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!