static在java中的应用

来源:互联网 发布:se加密源码 编辑:程序博客网 时间:2024/05/16 06:41

静态变量:
1)static放在变量的前面成为静态变量,或类变量。
2)为该类的公共变量。
3)对所有的对象来说只有一份(共享)。

输出结果为1 1 2 1。可以看出,静态变量sno是所有对象共享的,非静态变量都有自己的copy。当sno加1之后,下一次被另一个对象调用的时候为1,而age的值为0.

 

静态代码块:
1)当一个类中有静态代码块和非静态代码块时,首先要执行静态代码块。
2)静态代码块只能被初始化一次,非静态代码块可以初始化多次。

输出结果为static-block   non static-block  non static-block。非静态代码快被调用了两次,静态代码快只能被实例化一次。而且静态代码快的执行在非静态代码快的前面。

 

静态方法:
1)放在方法前为静态方法,或类方法。
2)在调用该方法时,不会将对象的引用传递给它,所以static方法不能访问
非static成员。但是非静态方法可以访问静态方法和静态变量。

输出结果 0 0 .静态方法可以调用静态方法和静态变量但是不能调用非静态方法和变量。而且在调用静态方法的时候只需要类名.方法名();

我们不推荐实例化后的调用。

 

非静态方法:

1)可以调用静态方法和静态变量。

2)在调用非静态方法的时候,先实例化后调用。

单利模式:
1)构造方法为private,外部不能实例化调用。
2)静态变量只用一个副本。
3)方法为static,外部不能实例化,只能在自己的方法体内部实例化,外部如果想调用方法必须要用到static,正好不需要实例化而且还能通过方法得到实例化对象。
4)一个类可以实例化多个对象,但是在单利中只能有一个对象(实例)。

输出结果为false,不能满足单利模式只有一个实例(对象),因为每一次都得到一个新的对象。

1:饿汉模式
一开始的时候就就来拿东西(对象)

懒汉模式:
一开始的时候就为null,饿的时候才过来拿(对象)。

输出结果为true.

1 0
原创粉丝点击