Java static 关键字详解
来源:互联网 发布:ts合并软件 安卓版 编辑:程序博客网 时间:2024/05/23 11:09
引言
在《Java编程思想》中有这样一段话:static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。
这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键字的基本作用,简而言之,一句话来描述就是:方便在没有创建对象的情况下来进行调用(方法/变量)。
static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。
使用情况
1、static成员变量
静态变量属于类,在内存中只有一个复制,只要静态变量所在的类被加载,这个静态变量就会被分配空间。
2、static成员方法
静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法 (就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。
3、static代码块
static代码块在类中是独立于成员变量和成员函数的代码块的。注意:这些static代码块只会被执行一次。
4、静态类
通常一个普通类不允许声明为静态的,只有一个内部类才可以。这时这个声明为静态的内部类可以直接作为一个普通类来使用,而不需实例一个外部类。
单例模式的实现
比较常见的方式,双重检测
public class Singleton { private volatile static Singleton singleton; private Singleton() { } public static Singleton getSingleton() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; }}
还有其他多种方式也可以实现单例模式,这里重点介绍一种,利用静态内部类进行实现,由于内部静态类只会被加载一次,故该实现方式时线程安全的。
public class Singleton { private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } private Singleton() { } public static final Singleton getInstance() { return SingletonHolder.INSTANCE; }}
3 0
- java关键字static详解
- java关键字Static详解
- java static 关键字详解
- Java Static关键字详解
- Java 关键字static详解
- Java关键字:static详解
- Java static 关键字详解
- Java Static关键字详解
- Java Static关键字详解
- Java static 关键字详解
- Java Static关键字详解
- java笔记 static关键字详解
- JAVA中static关键字详解
- Java中static关键字详解
- Java中的static关键字详解
- 详解JAVA中的static关键字
- Java关键字static,final详解
- Java中的static关键字详解
- python yield generator 详解
- 写给初学者10_android_selector 背景选择器
- prepareStatement与statement的区别
- 导入EXCEL 时间数据为小数 问题
- 模版类怎么定义不同参数
- Java static 关键字详解
- 第二讲:c/c++数据类型
- JavaScript自适应调整文字大小
- The project you are trying to remove is currently deployed to a running application server.解决方案
- 霍夫曼编码解码
- 没有块级作用域
- java调用cmd执行maven命令
- SSL1662 家庭问题(并查集)
- html总结