Java类的调用顺序决定的单例模式

  学习Java有一年多,很多基础知识是了解的,有些知道怎么用,但不明白,它是怎么来的。 
经常在书上看到介绍类里面的构造方法,静态方法,普通方法与静态变量,调用顺序,但不明白它的真正用处。 
  今天走进公司时,我突然间,想到了Java的类中,方法,变量的调用顺序重要吗,我一下就想到了单例模式,因为我之前只是知道单例模式的用处,但不明白它怎么来的,单例模式不就是根据类的启动顺序写出来,因为类会先调用static,然后,再是构造函数,可见有些知识点,你只要灵活一点,就大有用处,当然不知,大家认为我的观点对不对,我认为是这样的。 



package com.fanshe; 

public class TestB { 

public static void main(String[] args) { 
TestA tmp = TestA.getSingleton(); 
tmp.Show("TestB调用show"); 
tmp.setX(20); 
System.out.println(tmp.getX()); 
TestC tmpc = new TestC(); 
tmpc.Td(); 





//先调用静态变量与静态方法,再是构造方法 
package com.fanshe; 

public class TestA { 

private static TestA Singleton = null; 
int x; 

public TestA() { 
x = 15; 
    System.out.println("进入构造方法..."); 


public static TestA getSingleton(){  
System.out.println("Singleton = "+Singleton); 
if (Singleton == null){ 
System.out.println("进入单例..."); 
Singleton = new TestA(); 

return Singleton; 


public void Show(String str) 

System.out.println(str); 

public int getX() { 
return x; 


public void setX(int x) { 
this.x = x; 






package com.fanshe; 

public class TestC { 

public void Td() 

TestA.getSingleton().Show("TestC调用show"); 
System.out.println(TestA.getSingleton().getX()); 




结果如下: 
Singleton = null 
进入单例... 
进入构造方法... 
TestB调用show 
20 
Singleton = com.fanshe.TestA@dd7404 
TestC调用show 
Singleton = com.fanshe.TestA@dd7404 
20 

转载于:https://my.oschina.net/u/815302/blog/339717

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值