Java static 关键字详解
引言在《Java编程思想》中有这样一段话:static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。 这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键字的基本作用,简而言之,一句话来描述就是:方便在没有创建对象的情况下来进行调用(方法/变量)。 static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。 使用情况1、static成员变量静态变量属于类,在内存中只有一个复制,只要静态变量所在的类被加载,这个静态变量就会被分配空间。 2、static成员方法静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法 (就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。 3、static代码块static代码块在类中是独立于成员变量和成员函数的代码块的。注意:这些static代码块只会被执行一次。 4、静态类通常一个普通类不允许声明为静态的,只有一个内部类才可以。这时这个声明为静态的内部类可以直接作为一个普通类来使用,而不需实例一个外部类。 单例模式的实现比较常见的方式,双重检测
还有其他多种方式也可以实现单例模式,这里重点介绍一种,利用静态内部类进行实现,由于内部静态类只会被加载一次,故该实现方式时线程安全的。 (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |