1.static修饰变量和方法

在类的变量和方法上加上了static修饰符以后,在JVM加载该类的时候就会被分配到方法区(new 出来的对象分配到堆),因此不需要在创建该类的实例以后再进行引用。

有几点需要特别注意:

在static方法中不能调用其他的非static方法;

不能引用this或者super;

在static的方法上加synchronized占用的是类锁而非对象锁,比如一个线程执行一个对象的非static synchronized方法,另外一个线程需要执行这个对象所属类的static synchronized方法,此时不会发生互斥现象;

2.static静态代码块

public class StaticCodeTest {

public StaticCodeTest(){

System.out.println("我是构造方法,我被执行了");

}

static {

System.out.println("我是static代码块,我被执行了,我只会被执行一次");

}

}

public static void main(String[] args){

new StaticCodeTest();

new StaticCodeTest();

}

运行结果:

我是static代码块,我被执行了,我只会被执行一次

我是构造方法,我被执行了

我是构造方法,我被执行了

Process finished with exit code0

static代码块会在JVM加载类的时候执行,并且只会执行一次,应用较多的场景一般是项目启动的时候加载初始化配置。

3.静态内部类

在Java中不能用static修饰顶级类,但是允许我们在一个类里面定义内部静态类,静态类只能访问外部类的静态成员,不管是静态方法还是非静态方法都可以在非静态内部类中访问。

public classStaticCodeTest {static classInnerStatiClass{public voidprint(){

System.out.println("我是静态内部类");

}

}

}

public static void main(String[] args){

new StaticCodeTest.InnerStatiClass().print();

}

4.import static导入

import static 静态导入是从jdk1.5以后引入的,方式:import static java.lang.Integer.MAX_VALUE;或者:import static java.lang.Integer.*;这样写的好处是我们可以直接在代码中调用引入的静态方法,而不需要通过classname.method()来引用,减少代码的重复使用。

java static method_java 中static的几种用法相关推荐

  1. Java中final的三种用法

    在java中final的三种用法: 1. final成员变量 2. final函数 3. final类 final成员变量 当你在类中定义变量时,在其前面加上final关键字,那便是说这个变量一旦被初 ...

  2. js中继承的几种用法总结(apply,call,prototype)

    本篇文章主要介绍了js中继承的几种用法总结(apply,call,prototype) 需要的朋友可以过来参考下,希望对大家有所帮助 一,js中对象继承 js中有三种继承方式 1.js原型(proto ...

  3. C语言中 * “星号”的九种用法

    C语言中 * "星号"的九种用法 乘法运算符 复合赋值运算符 假读符 注释符 普通符号 指针定义符 指向运算符 行列地址转换符 地址值符 乘法运算 c=ab; a=2, b=3, ...

  4. <a>标签中href的几种用法

    众所周知,a标签的最重要功能是实现超链接和锚点.而且,大多数人认为a标签最重要的作用是实现超链接,今天我刚好碰到a标签的一种写法<a href="javascript:;"& ...

  5. a标签中href=的几种用法

    众所周知,a标签的最重要功能是实现超链接和锚点.而且,大多数人认为a标签最重要的作用是实现超链接,今天我刚好碰到a标签的一种写法<a href="javascript:;"& ...

  6. a标签中href的几种用法

    a标签的一种写法,所以就来整理下a标签中href的几种用法. 一.JS伪协议的几种调用方法(参考总结的) 1. a href="javascript:js_method();" 这 ...

  7. 英语中‘s的几种用法

    英语中's的几种用法 1.所有格 2.is的缩写 3.has的缩写 4.does的缩写 5.us的缩写 let's 6.用于构成店名.家庭.特定地点等 事实上,'s有多种释义和用法,并不固定,具体要根 ...

  8. java super是引用变量吗_Java中super的几种用法并与this的区别

    1.     子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...

  9. java中super用来定义父类,Java中super的几种用法及与this的区别

    综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...

最新文章

  1. 【SLAM】卡尔曼滤波:究竟滤了谁?
  2. 多变量线性回归 原理
  3. 使用vim转换文件编码
  4. 关于HTML5中Canvas的宽、高设置问题
  5. Java面向对象(19)--抽象类与抽象方法abstract
  6. nemesis什么车_nemesis是什么意思_nemesis的翻译_音标_读音_用法_例句_爱词霸在线词典...
  7. c语言如何实现单进程,如何用C语言实现多线程
  8. OpenSSL 1.1.1 国密SM2 SM3 SM4 SM9 ZUC EEA3 EIA3 SM2 +SM3签名 源码 Demo 下载 OpenSSL iOS端库下载
  9. .San(三). Xia(峡).对长江二号洪水削峰作用总结
  10. 计算机图形系统根据硬件配置,计算机图形系统硬件基础.ppt
  11. 量子计算机物理学,使用量子计算机来测试物理学的基本原理
  12. 张小龙2018微信公开课超时演讲,总结微信8年
  13. 如何使用计算机还原魔方?
  14. 一般来说仿制一个网站大概需要多少钱呢
  15. 【图像超分辨率重建】——RCAN论文精读笔记
  16. 什么是 DNS 故障?常见原因和解决方案
  17. 【java】输入一个数输出它的绝对值
  18. 2022第四届长安杯复盘(WP)
  19. FeedBurner: 使用RSS路由器的风险
  20. ZJ-6型压电测试仪(准静态d33/d31(+d15)测量仪)

热门文章

  1. 即时通讯飞鸽传书民意soft需求
  2. 《南方都市报》:中国互联网“公共性”正在变形或流失
  3. 我端午节又来免费送书了!
  4. OpenCV中鼠标交互-绘制矩形框
  5. jupyter notebook一些实用技巧
  6. 轨迹相似性度量方法总结
  7. 鱼不长肢蛇不长脚,多多益善更烦恼?人猴嵌合肥胖有救,生活还要压力要小!...
  8. 量子通信入门相关书籍
  9. office2010 启动man_Office2010打开很慢怎么回事如何解决 Office2010无法安装怎么解决办法...
  10. java生成j动态页面_zk动态产生多个页面的例子代码