1.基础知识

static 标注的变量 叫(静态变量)

没有static标注的变量 叫实例变量(即类 new出来,才能调用的变量)

2.静态变量与实例变量的对比

static标注的变量:static在类加载时,就会创建内存空间(静态数据存储空间)(只创建一次)直到程序退出才会释放内存(只在一个内存块)。static声明的变量可以通过(类名 . 变量)直接调用,不需要实例化,举个栗子:Integer.parseInt()、Long.parseLong(),这个就是用static修饰的变量。

实例变量:在类实例化后(new后)才可以调用类中的成员(变量)注意:类多次实例化,每个对象的变量都有独自的内存,它们互不影响(用static声明的变量,不会创建新的内存块)。

3.静态方法

静态方法只能访问静态成员或方法(即static声明/标注的)因此无法调用和对象相关的关键字,如this、super

应用场景:静态方法一般当做工具方法适用如Math.sqrt(),Arrays.sort(),StringUtils.isEmpty()。

4.static代码块

static代码块在加载一个类的时候最先执行,且只执行一次。

static{这里面写逻辑,例如初始化数据}

应用场景:一般在进行初始化操作时,比如读取配置文件信息,获取当前服务器参数等

5.static内部类

简单来说就是在一个类里面,再定义一个类。这种事情我们应该经常干,一般接收json时会临时在方法下面定义一个类,来对应json中的数据做对应接收(我们。。单指我)。这时在类的前面也就是class前面加一个static,就声明了这时一个内部类。内部类只能调用static声明过得变量、方法(即静态变量/方法),如果调用普通的实例变量,会编译出错。

静态内部类 非静态内部类
直接类名.成员就能用 必须new 才能用
可以再类里面定义静态变量和方法 不可以在类里面定义静态变量和方法
不能调用外部类的普通成员,只能调用static声明的

啥都能掉

应用场景:谁用给谁一巴掌

6.static包内导入

应用场景:直接打死

7.总结

使用static关键字修饰的变量,称为静态变量。静态变量的值是唯一的,不是不变的,在其作用范围内,只存在一个值,无论在作用域的哪里调用修改,改变的都是同一个内存地址。

巩固扩展

static final(常量) 在程序启动类加载时就已经加载完成了

static 在程序启动时 还要初始化一次后加载完成,顺序低于final

推荐两篇文章:

Java-静态成员变量值到底能不能变?_Xxhu1997的博客-CSDN博客_java静态变量可以修改吗

Java基础(六) static五大应用场景_躲不过这哀伤的博客-CSDN博客

java中static的理解相关推荐

  1. Java中 多态的理解

    ** Java中 多态的理解 ** 多态官方定义为: 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指 ...

  2. 【转载】谈谈我对Java中CallBack的理解

    谈谈我对Java中CallBack的理解 转载自: http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html CallB ...

  3. Java中static的作用

    Java中static的作用 请先看下面这段程序: public class Hello{ public static void main(String[] args){ //(1) System.o ...

  4. java中static、final 和 static final之间的区别

    java中static.final 和 static final之间的区别 static可以修饰:全局属性,方法,代码块,内部类(静态内部类或嵌套内部类) 由于静态属性和方法是属于该类的所有对象的,所 ...

  5. 沉淀再出发:关于java中的AQS理解

    沉淀再出发:关于java中的AQS理解 一.前言 在java中有很多锁结构都继承自AQS(AbstractQueuedSynchronizer)这个抽象类如果我们仔细了解可以发现AQS的作用是非常大的 ...

  6. java中static的用法_Java类中static的用法

    关于Java中static的使用有以下四种情况: 1.静态成员变量        被static修饰的成员变量,叫静态成员变量或类变量:没有被static修饰的变量,叫实例变量. 两者的区别是: 静态 ...

  7. java中static没有对象

    java中static关键字详解: 1 static 特点: 2 特点分析 2.1 随着类的加载而加载 2.2 通过类名调用 2.3 所有类共享数据 3 静态代码块 3.1案例一: 3.2案例二: s ...

  8. java中static关键字的作用(java中static关键字的作用)

    关键字static的作用是什么? 在Java语言中,static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但 ...

  9. java中的静态变量的作用域_详解JAVA中static的作用

    1.深度总结 引用一位网友的话,说的非常好,如果别人问你static的作用:如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的:如果是说 可以构成 静态代码块,那别人认为你还可以: 如果你说 ...

最新文章

  1. Python3爬虫-01-简单网页爬取
  2. sharepoint 判断用户是否存在某个组中三种方法
  3. [BZOJ 1001] 狼抓兔子
  4. 呼叫中心的技术创新源于管理文化的变革
  5. Linux 解压命令
  6. hal库选择滴答时钟函数_stm32h7“理解hal库框架”
  7. javafx中的tree_JavaFX中的塔防(4)
  8. C#基础知识整理:基础知识(11) 值类型,引用类型
  9. 最新麦子学院33G完整版Web前端Web前端开发从入门到精通
  10. DSPTMS320C6678的数据导入方法
  11. wangeditor富文本编辑器的复制word到浏览器发生乱码
  12. 全球及中国EOG放大器行业运营前景与发展动态研究报告2022版
  13. 360wifi驱动linux驱动安装,ubuntu安装360随身wifi驱动
  14. 数据结构:八种数据结构大全
  15. 人有多大胆,地有多大产
  16. Micropython开发之TPYBoard制作声光控开关教程实例
  17. 新黑马头条项目经验(黑马)
  18. Java开发人员必须掌握的两个Linux魔法工具(四)
  19. vue3.0项目的创建
  20. springBoot Aop打印日志

热门文章

  1. 吴恩达deeplearning.ai系列课程笔记+编程作业(6)第二课 改善深层神经网络-第二周:优化算法 (Optimization algorithms)
  2. c语言布尔变量定义,C语言布尔类型介绍 C语言标准(C89)没有定义布尔类型,如果你使用true...
  3. qt中利用普通函数将调用ui界面的控件
  4. 词嵌入(WORD2VEC)
  5. 高传染性传染病的传播趋势预测
  6. 深植于场景需求混布数据库Hubble
  7. LayaBox 接入QQ玩一玩 轻游戏流程
  8. Lambda首次使用很慢怎么办?看法宝
  9. 日常使用的二维码知多少,从数学的角度对二维码图案进行解析
  10. [译] 源代码映射(Source Map)简介