java static method_java 中static的几种用法
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的几种用法相关推荐
- Java中final的三种用法
在java中final的三种用法: 1. final成员变量 2. final函数 3. final类 final成员变量 当你在类中定义变量时,在其前面加上final关键字,那便是说这个变量一旦被初 ...
- js中继承的几种用法总结(apply,call,prototype)
本篇文章主要介绍了js中继承的几种用法总结(apply,call,prototype) 需要的朋友可以过来参考下,希望对大家有所帮助 一,js中对象继承 js中有三种继承方式 1.js原型(proto ...
- C语言中 * “星号”的九种用法
C语言中 * "星号"的九种用法 乘法运算符 复合赋值运算符 假读符 注释符 普通符号 指针定义符 指向运算符 行列地址转换符 地址值符 乘法运算 c=ab; a=2, b=3, ...
- <a>标签中href的几种用法
众所周知,a标签的最重要功能是实现超链接和锚点.而且,大多数人认为a标签最重要的作用是实现超链接,今天我刚好碰到a标签的一种写法<a href="javascript:;"& ...
- a标签中href=的几种用法
众所周知,a标签的最重要功能是实现超链接和锚点.而且,大多数人认为a标签最重要的作用是实现超链接,今天我刚好碰到a标签的一种写法<a href="javascript:;"& ...
- a标签中href的几种用法
a标签的一种写法,所以就来整理下a标签中href的几种用法. 一.JS伪协议的几种调用方法(参考总结的) 1. a href="javascript:js_method();" 这 ...
- 英语中‘s的几种用法
英语中's的几种用法 1.所有格 2.is的缩写 3.has的缩写 4.does的缩写 5.us的缩写 let's 6.用于构成店名.家庭.特定地点等 事实上,'s有多种释义和用法,并不固定,具体要根 ...
- java super是引用变量吗_Java中super的几种用法并与this的区别
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...
- java中super用来定义父类,Java中super的几种用法及与this的区别
综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...
最新文章
- 【SLAM】卡尔曼滤波:究竟滤了谁?
- 多变量线性回归 原理
- 使用vim转换文件编码
- 关于HTML5中Canvas的宽、高设置问题
- Java面向对象(19)--抽象类与抽象方法abstract
- nemesis什么车_nemesis是什么意思_nemesis的翻译_音标_读音_用法_例句_爱词霸在线词典...
- c语言如何实现单进程,如何用C语言实现多线程
- OpenSSL 1.1.1 国密SM2 SM3 SM4 SM9 ZUC EEA3 EIA3 SM2 +SM3签名 源码 Demo 下载 OpenSSL iOS端库下载
- .San(三). Xia(峡).对长江二号洪水削峰作用总结
- 计算机图形系统根据硬件配置,计算机图形系统硬件基础.ppt
- 量子计算机物理学,使用量子计算机来测试物理学的基本原理
- 张小龙2018微信公开课超时演讲,总结微信8年
- 如何使用计算机还原魔方?
- 一般来说仿制一个网站大概需要多少钱呢
- 【图像超分辨率重建】——RCAN论文精读笔记
- 什么是 DNS 故障?常见原因和解决方案
- 【java】输入一个数输出它的绝对值
- 2022第四届长安杯复盘(WP)
- FeedBurner: 使用RSS路由器的风险
- ZJ-6型压电测试仪(准静态d33/d31(+d15)测量仪)
热门文章
- 即时通讯飞鸽传书民意soft需求
- 《南方都市报》:中国互联网“公共性”正在变形或流失
- 我端午节又来免费送书了!
- OpenCV中鼠标交互-绘制矩形框
- jupyter notebook一些实用技巧
- 轨迹相似性度量方法总结
- 鱼不长肢蛇不长脚,多多益善更烦恼?人猴嵌合肥胖有救,生活还要压力要小!...
- 量子通信入门相关书籍
- office2010 启动man_Office2010打开很慢怎么回事如何解决 Office2010无法安装怎么解决办法...
- java生成j动态页面_zk动态产生多个页面的例子代码