java基础static变量初始化和赋值的例子
1.代码案例
public class A {public static int x;static{x = B.y+ 1;}
}
public class B {public static int y = A.x+ 1;public static void main(String[] args) {System. out. println(String . format( "X:%d,Y:%d", A.x, y));}
}
2.输出的结果是
X:1,Y:2
3.原理解释
1. main(String[] args)方法是java程序入口,所以先加载类B2. 初始化类B(y=0,备注:先初始化再赋值)3. 执行到public static int y = A.x+ 1;去加载类A并初始化,此时A.x=0,然后执行static{ x = B.y+ 1;} 这里因为B.y只是初始化完成还没有完成赋值,所以此时B.y=0执行完静态代码块A.x完成赋值x=0+1,即x=1。4.A类加载和初始化完成,继续执行public static int y = A.x+ 1; 此时,y=1+1,即y=2 B.y完成赋值5.继续执行main方法完成x和y的格式化输出,即 X:1,Y:2ps:static代码块
static代码块也叫静态代码块,是在类中独立于类成员的static语句块,
可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会
执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类
中出现的先后顺序依次执行它们,每个代码块只会被执行一次
java基础static变量初始化和赋值的例子相关推荐
- Java Static 变量初始化
目录 Java Static 变量初始化 直接赋值 static块初始化 实例方法初始化 解决方案 Java Static 变量初始化 static变量初始化方式 直接赋值 static块初始化 实例 ...
- Java基础以及变量和运算符、包机制、javadoc生成
Java基础以及变量和运算符.包机制.javadoc生成 注释.标识符.关键字 注释 标识符 关键字 标识符注意点 数据类型 强类型语言 弱类型语言 Java的数据类型 基本类型(primitive ...
- java基础之类变量和类方法:程序员成长之路
java基础之类变量和类方法: 一.类变量(静态变量): 1.基本介绍: 类变量也叫静态变量.静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,渠道的都是相同的值,同样任何一个该类的 ...
- 1.2编程基础之变量定义、赋值及转换 10 Hello, World 的大小
http://noi.openjudge.cn/ch0102/10/ #include <bits/stdc++.h> using namespace std; int main( voi ...
- php 如何初始化变量的值,php中变量初始化和赋值方法
php中变量初始化和赋值方法 发布时间:2020-05-21 23:07:12 来源:亿速云 阅读:125 作者:鸽子 什么是变量 通俗的来说变量是一种容器.根据变量类型不同,容器的大小不一样,自然能 ...
- java static 变量 初始化一次_关于java static变量初始化的疑问
java中,类的static变量作为类变量,只需要被一次初始化,就可使用,但是,我在程序中遇到一个问题: 在web.xml中配置listener,服务器启动时,ServletContextListen ...
- java 给static变量赋值_java static变量可以赋值吗?
java static变量可以赋值吗? 可以赋值的.static的主要作用是静态成员,指该变量的实例在内存中之存放一次.赋值是可以随便改的. java中static关键字 static是java中非常 ...
- java中的static变量初始化_Java初始化静态变量的时间顺序
1. 开始吧! 今天,我们来探讨交流下静态变量初始化过程.Java虚拟机在类加载期间也同样遵循这个过程. 2. 初始化过程 在较高的层次上,JVM执行以下步骤: 首先,加载并链接类.然后,这个过程的& ...
- [JAVA基础] 成员变量和局部变量(一看就懂的总结归纳篇)
引言 成员变量和局部变量在每种编程语言中都有涉及,如果之前了解过其他语言的成员变量或者局部变量,那么在学习java中的成员变量和局部变量时可以看看有那些联系和不同,这一块的东西也不能说难,如果第一次接 ...
最新文章
- 移植 thttpd Web服务器
- Java并发编程实践读书笔记(3)任务执行
- jQuery 之 [ 动画 ]
- elasticsearch实战三部曲之三:搜索操作
- 【Python小游戏】扫雷游戏竟有世界排行榜,中国90后00后霸占半壁江山?
- 全球及中国生物仿制药淋巴细胞调节剂行业需求潜力分析及及投资规划研究报告2021-2027年
- 【Get 以太坊技能】CentOS 7 安装 go
- 华为交换机 查看IP和MAC对应关系
- linux下面使用gparted进行格式化
- 6-10 阶乘计算升级版(20 分)
- ComponentArt.web.ui中文帮助之Grid(六)
- 叶氏量能大抄底(通达信副图)
- C#与Javascript变量、函数之间的相互调用
- python 基于滑动平均思想实现缺失数据填充
- 怎样让Excel数据自动标记颜色?学会这一招让大家对你刮目相看
- 2017报计算机热不热,【2017年10月份热吗】2017年10月份热不热_亲亲宝贝网
- 关于‘\0’ ,‘0’, “0” ,0的理解
- 【SpringBoot项目实战+思维导图】瑞吉外卖①(项目介绍、开发环境搭建、后台登陆/退出功能开发)
- 用幂律分布研究工资收入
- resnet_unetpp