static关键字主要有4种使用情况:成员变量,成员方法,代码块和内部类。

1.成员变量

虽然java中没有全局的概念,但可以通过static关键字来达到全局的效果。java类型提供了两种类型的变量,用static关键字修饰的静态变量和不用static关键字修饰的实例变量。 静态变量属于类,只要静态变量所在的类被加载,这个静态变量就会被分配空间,因此就可以被使用了。

不能在方法体中定义static变量。

public static void  add(){// static final int i = 0; // 编译失败,只能在类中定义静态变量,不能在方法中定义静态变量}

2. 成员方法

与变量类似,java类同时也提供了static方法与非static方法。static方法是类的方法,不需要创建对象就可以被调用。static不能使用this和super关键字,不能调用非static方法。

static一个重要的作用是实现单例模式,单例模式的特点是该类只能有一个实例。

public class TestStatic{static{// 加载类时, 执行静态代码块System.out.println("....static......");}private static TestStatic f = new TestStatic(); //加载类时,为静态变量赋初值, 当去掉static,就会造成无限引用,引发栈溢出{System.out.println("..non..static.......");}public TestStatic(){System.out.println("......构造....");}public static void main(String[] args){System.out.println("main");TestStatic ff = new TestStatic();}
}

3.static代码块

静态代码块在类中是独立于成员变量和成员函数的代码块的。它不在任何一个方法体内,jvm在加载类时会执行static代码块,如果有多个static代码块,jvm将会按顺序来执行。这些static代码块只会被执行一次。

4. static内部类

static内部类是指被声明为static的内部类,它可以不依赖于外部类实例对象而被实例化,而通常的内部类需要在外部类实例化后才能实例化。静态内部类不能访问外部类的普通成员变量,只能访问外部类中的静态成员和静态方法。

static经常与final结合使用:

static final修饰变量,表示变量一旦赋值,不能被修改,并且通过类名可以访问该变量。

static final修饰方法,表示该方法不可覆盖,并且可以通过类名直接访问。

java:static关键字相关推荐

  1. Java 静态变量,静态方法,静态常量(java static 关键字)

    Java 静态变量,静态方法,静态常量  就是变量 ,方法,常量前面添加了static 关键字 为什么要使用静态的呢 有时候在处理问题时会需要两个类在同一个内存区域共享一个数据, 不如现在 Main ...

  2. java static关键字_好程序员Java教程分享static关键字的理解

    好程序员Java教程分享static关键字的理解,static关键字含义可以理解为静态的. 1. 当其修饰属性时,该属性为整个类公有,所有的对象操作的都是同一个静态属性.所以调用时应该使用类名去调用, ...

  3. 关于java static 关键字

    当我们创建类时会指出哪个类的对象的外观与行为. 一般的流程是用new 创建这个类的对象,然后生成数据的存储空间,并使用相应的方法. 但以下两种情况不太适合这个流程: 只想用一个存储区域来保存一个特定的 ...

  4. [转载] Java static关键字与static{}语句块

    参考链接: Java中的静态块static block 目录直通车 一. 类的加载特性与时机 1. 类加载的特性 2. 类加载的时机 二. static的三个常用 1. 修饰成员变量 2. 修饰成员方 ...

  5. 为什么java要你写static,java static关键字理解

    文章大纲: 1.为什么static会有这样的效果? 2.static的使用 3.static误区 4.static面试题 static的魔法效果是: 被static关键字修饰的方法或者变量不需要依赖于 ...

  6. java static关键字_Java基础:static关键字作用总结

    前言 之前讲到final关键字的作用是每次面试的时候我必问求职者的两个问题之一,另外一个问题就是文本会写到的static.final和static一样,都是一个小问题可以看到一个人的基础是否扎实以及平 ...

  7. [转载] Java static关键字详解

    参考链接: Java中的static关键字 static关键字 在类中,用static声明的成员变量为静态成员变量,也成为类变量.类变量的生命周期和类相同,在整个应用程序执行期间都有效. 这里要强调一 ...

  8. java static关键字的作用是什么_static关键字有什么作用

    今天主要学习下Java语言中的static关键字. static关键字的含义及使用场景 static是Java50个关键字之一.static关键字可以用来修饰代码块表示静态代码块,修饰成员变量表示全局 ...

  9. java static关键字的作用是什么_java中的static关键字

    一.static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概念,在Java中static表示"全局"或者 ...

最新文章

  1. Balkan2007]Toponyms[链式前向星建字典树+getchar()读入优化]
  2. .net Tuple特性
  3. 【校招面试 之 C/C++】第15题 C 回调函数
  4. 【NOIP2015】斗地主 题解
  5. the serveice mysql_解决重启MySQL数据库The server quit without updating PID file问题
  6. 【算法】设计算法求所有强连通分量的完整代码(kosaraju算法)
  7. centos7 切换中文输入法 无需安装
  8. 【渝粤题库】陕西师范大学400005 中国传统文化 作业(专升本)
  9. python文本去重函数_python3.4.3下逐行读入txt文本并去重的方法
  10. 易语言mysql验证_易语言MySql注册登录
  11. Hive在linux上的部署
  12. Android Wifi 调试
  13. 【数字信号调制】基于matlab GUI ASK+OOK+BPSK+8PSK+QPSK+AM调制解调【含Matlab源码 1368期】
  14. 如何复制百度文库中的内容
  15. 转:adb连接手机进行调试有两种方式
  16. 计算机逻辑与 或 非的表达式,计算机算数和,逻辑与,逻辑或,逻辑非分别是什么意思...
  17. HTML---网络编程基础知识(2)
  18. 我的申请已经通过审核,你想成为阿里云 MVP 吗?
  19. speedoffice表格中怎样给文字添加删除线?
  20. 一次nginx代理前端报rewrite or internal redirection cycle while internally redirecting to “index.html“ 记录

热门文章

  1. [中英对照]How PCI Works | PCI工作原理
  2. JSP/SERVLET(5)——JSP页面单选按钮操作
  3. SQL Server 数据库基础编程
  4. 在日期上加上相应天数,并在GridView上显示
  5. C#中的浅拷贝和深拷贝
  6. Java 面向对象细节
  7. Interface Builder nib2objc ibtool
  8. c# 使用 itextsharp 实现生成Pdf报表
  9. ThreadPool.QueueUserWorkItem的用法
  10. iOS中的UIView