• 在类中,用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量.

   • 它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化,

  • 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!

  • 优先于对象存在,随着类的加载而加载  

  • 可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”

  • static变量置于方法区中!

  如果一个类中所有的成员都是静态的。那么它的构造函数应该设置成 private 的,这样以避免 这个类 被创建成对象

                

• 用static声明的方法为静态方法

  • 不需要对象,就可以调用(类名.方法名)

  • 在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。只能访问静态成员变量和静态成员方法;

    而非静态方法,既可以访问静态成员也可以访问非静态成员

  • 静态方法不能以任何方式引用this和super关键字;(随着类加载而加载,而this是随着对象的创建而存在)

public class TestStatic { 

    int a;
static int width; static void gg(){
System.out.println("gg"); } void tt(){
System.out.println("tt"); } public static void main(String[] args){
TestStatic hi = new TestStatic();
TestStatic.width = 2;
TestStatic.gg(); //gg();
hi.gg(); //通过引用也可以访问static变量或static方法。不过,一般还 是使用类名.static成员名来访问。
gg();
}
}

静态初始化块

• 如果希望加载后,对整个类进行某些初始化操作,可以使用static初始化块。

类第一次被载入时先执行static代码块;类多次载入时,static代码块只执行一次;Static 经常用来进行static变量的初始化。

• 是在类初始化时执行,不是在创建对象时执行。

• 静态初始化块中不能访问非static成员。

public class TestStaticBlock {
static {
System.out.println("此处,可执行类的初始化工作!");
}
public static void main(String[] args) {
System.out.println("main方法中的第一句");
}
}

java _static 关键字的更多相关文章

  1. Java 并发 关键字volatile

    Java 并发 关键字volatile @author ixenos volatile只是保证了共享变量的可见性,不保证同步操作的原子性 同步块 和 volatile 关键字机制 synchroniz ...

  2. 【转载】java final 关键字的几种用法

    原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...

  3. 【转载】java static 关键字的四种用法

    原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...

  4. [java]final关键字的几种用法

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final ...

  5. [java]static关键字的四种用法

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们先来了解一下stat ...

  6. [Java并发编程(三)] Java volatile 关键字介绍

    [Java并发编程(三)] Java volatile 关键字介绍 摘要 Java volatile 关键字是用来标记 Java 变量,并表示变量 "存储于主内存中" .更准确的说 ...

  7. java的关键字与保留字

    1,Java 关键字列表 (依字母排序 共50组): abstract, assert, boolean, break, byte, case, catch, char, class, const(保 ...

  8. 深入java final关键字

    Java final关键字详解:https://blog.csdn.net/kuangay/article/details/81509164 深入java final关键字 用法注意点和JVM对其进行 ...

  9. Java Synchronized 关键字

    本文内容 Synchronized 关键字 示例 Synchronized 方法 内部锁(Intrinsic Locks)和 Synchronization 参考资料 下载 Demo Synchron ...

随机推荐

  1. man---中英文翻译

    一. 总览---SYNOPSIS 二.

  2. echart--如何将echart的配置项,放到webpack中(CHARTTEMPLATE时)

    1.假如,我们已经写好了组件,我们需要把它放入到一个环境中去 2.首先在index.html中,我们需要写一个dom结构 3.新建一个,chart.js文件(这个里面放组件的代码) 1>开始创建 ...

  3. 多数据源(sql server 2008,二个数据库不ip,)

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  4. Django模板自定义标签和过滤器,模板继承(extend),Django的模型层

    上回精彩回顾 视图函数: request对象 request.path 请求路径 request.GET GET请求数据 QueryDict {} request.POST POST请求数据 Quer ...

  5. 黑客代码HTML

    Crash firefox, chrome, safari browsers, and also restart iPhone using this javascript code. #dos #0d ...

  6. C++ STL bitset总结

    基础用法 C++ Reference 神犇博客 余下的就是例题了 [BZOJ3687]简单题 考虑\(DP\),设\(f[i][j]\)表示前\(i\)个元素的算数和为\(j\)的子集个数,有: \[ ...

  7. [BZOJ2038]:[2009国家集训队]小Z的袜子(hose)(离线莫队)

    题目传送门 题目描述 作为一个生活散漫的人,小$Z$每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小$Z$把这 ...

  8. 最新版本的JDK安装和配置(Java SE 10.0.2)

    1.废话少说,要么百度JDK,要么直接点传送门http://www.oracle.com/technetwork/java/javase/downloads/index.html.这里需要说的JDK包 ...

  9. 添加环境变量(path)

    使用命令提示符((cmd)(批处理)(Batch)(.bat))添加环境变量 永久环境变量 命令提示符下修改 ==注意:要使用管理员身份运行cmd== set PATH=%PATH%;要添加的路径 r ...

  10. Delphi XE2 之 FireMonkey 入门(27) - 数据绑定: TBindingsList: TBindScope

    Delphi XE2 之 FireMonkey 入门(27) - 数据绑定: TBindingsList: TBindScope 如果在编写表达式时, 如果能够随意指认需要的控件就好了(通过 Owne ...