Java关键字static


static表示静态的或者全局的,只能用来修饰变量、方法或方法块。它表示被修饰的内容在一定范围内是可以共享的。

  1. static修饰变量
    static修饰的变量如果权限为public,表示该变量是所有类共享的,不用初始化该类就能被其他类访问(类名.变量名)。静态变量只会初始化一次,一旦初始化完成无论该类被new出多少对象,静态变量都不会再进行初始化。
    static修饰的变量如果被多个线程同时访问就有可能会出现线程安全问题,如果遇到线程安全问题,可以通过加锁的方式解决。如果静态变量是ArrayList这种非线程安全的集合类型,也可以通过使用线程安全的集合类型代替的方式来解决如:CopyOnWriteArrayList。
  2. static修饰方法
    static修饰方法经常见于各种工具类中,表示该方法可以被其他类直接调用(类名.方法名),调用起来十分方便。
    static修饰的方法只能调用同样被static修饰的方法,使用共享的变量时变量也必须由static来修饰。否则编译报错。
    static方法内部变量是线程安全的,因为方法的数据存储于栈内,方法栈是线程隔离的,所以不会出现线程安全问题。
  3. static修饰方法块
    static修饰的方法块又叫静态块,静态块常用来做一些类加载前的准备工作,如一些变量的初始化,再例如Long中缓存的初始化就是静态块来完成的。静态块中使用的共享变量也同样是要用static来修饰并且必须位于静态块定义之前,否则编译报错。
  4. static修饰内容的初始化
    顺序:
    父类静态变量——>父类静态块——>子类静态变量——>子类静态块——>父类构造器——>子类构造器

Java关键字static相关推荐

  1. Java 关键字—— static 与 final

      static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被stat ...

  2. java,关键字static

    static:静态的,可以声明 字段,方法,和代码块[称为静态代码块],这样在一个 这个类的实例将可以共享他们[共产社会主义好] 并且该类也可以直接使用它,无须实例化.和final一起使用时,被声明的 ...

  3. Java关键字-static

    一.static关键字 作用域:static可以修饰 方法,变量,代码块. 作用: 支持未创建对象的情况下,直接通过类本身进行调用. 节省内存空间,被修饰的部分在内存中只有一个副本.对于多次进行相同内 ...

  4. java 如何调用static_java 关键字static详细介绍及如何使用

    java 关键字static 详解 一. static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概念,在Java中stati ...

  5. java关键字static_Java中的static关键字

    java关键字static static keyword in Java is used a lot in java programming. Java static keyword is used ...

  6. Java关键字this、super使用总结

    2019独角兽企业重金招聘Python工程师标准>>> 一.this关键字 Java关键字this只能用于成员方法体内,它是一个系统隐含的指针且被自动附加在非静态的成员方法参数列表中 ...

  7. java的static关键字

    java的static关键字 静态变量和静态方法 static关键字最基本的用法是: 1.被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来 2.被static ...

  8. java中的关键字static

    原文链接: https://zhuanlan.zhihu.com/p/70110497 昨晚面试中被问到,没能回答出来.这篇答疑文章写得非常好,无一字可增删,遂直接复制. 在平时开发当中,我们经常会遇 ...

  9. Java关键字final、static、this、super使用总结

    一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...

最新文章

  1. java cxf服务端代码_【JAVA】 cxf 生成 webservice 服务端代码
  2. 教程是php手工注入
  3. angular5 ng-content使用方法
  4. Pixhawk原生固件PX4之串口添加读取传感器实现
  5. ulead gif animator_搞笑GIF趣图:这风看来很大啊,今天回不来家了7
  6. UVA - 202 Repeating Decimals
  7. 轻量级RTSP服务SDK
  8. C语言之*和++、--连用时的结合性探究
  9. Java Web从前端到后台常用框架介绍
  10. C++入门系列博客四 const define static关键字
  11. lodop 小票排版_Lodop打印小票
  12. POS收单地区代码表(2015年3月版)
  13. Web调用海康威视摄像头
  14. wincc7.4sp1硬件狗破解不成功
  15. 分治——最近点对问题
  16. ThingJS如何收费的?
  17. css用网络图片做背景图片,网络编程css为图片设置背景图片
  18. HTTP Live Streaming(HLS)详解
  19. 360奇虎php,phpTrace:奇虎360开源的PHP脚本跟踪分析工具
  20. 计算机用户文件夹加密,电脑怎么设置加密文件夹_给电脑文件夹设置密码的方法...

热门文章

  1. 人间值得!支付宝宣布平台上登记器官捐献人数:90后占比超一半
  2. 情怀再次输给现实!中国式星巴克,如今亏到连租金都交不起
  3. 减少系统进程【ZT】
  4. glassfish显示不了html文件,Glassfish websocket无法正常工作(示例代码)
  5. python中shift_Pandas DataFrame.shift()用法示例
  6. MFC小笔记:系统托盘实现
  7. crosstool-ng构建的一个错误的解决
  8. 【Flink】This YARN version does not support getSchedulerResourceTypes
  9. 【Flink】 producer attempted to use a producer id which is not currently assigned to its transaction
  10. 【lucene】Lucene的lukeall工具