静态变量、静态块与变量自增代码分析
来源:互联网 发布:node.js能实现什么 编辑:程序博客网 时间:2024/05/22 03:44
java 代码
- /***********************************************************************
- * Module: Static.java
- * Author: danlley
- * Modified: 2006年7月27日 13:11:21
- * Purpose: Defines the class Static
- ***********************************************************************/
- public class Static{
- static{
- int x = 5;
- }
- static int x,y;
- public static void main(String args[]){
- x--;
- myMethod();
- System.out.println(x + y + ++x);
- }
- public static void myMethod(){
- y = x++ + ++x;
- }
- }
---------- Java ----------
3
输出完成 (耗时: 0 秒) - 正常终止
==============================================
分析如下:
首先,是静态变量与静态块的执行顺序问题。接下来才是变量作用域与全局变量之间的关系问题。我不知道是否有人会怀疑变量重复定义的问题。毫无疑问,这段程序是完全可以跑通的。静态块中定义的变量只会在他的作用域范围内部有效。而且只要是重新定义的,就不会受全局变量的影响。也就是说,main方法中的x--仅仅是针对全局变量的。由于Java会将该变量初始化,此时,i--=0,但是在你下次用到 i 时,其值已经变为-1。接下来就是给 y 赋值。同理 x++ 的值应该是 -1 。但是在下次使用 i 时,其值已经变为 0 了。而对“0”累加的结果就是“1”,因此,y的值也是“0”。由此推断,最后结果为“3”。
0 0
- 静态变量、静态块与变量自增代码分析
- java中的静态变量、静态方法与静态代码块
- java中的静态变量、静态方法与静态代码块
- java中的静态变量、静态方法与静态代码块
- java的静态变量,静态代码块和静态变量
- static变量 静态方法 静态代码块
- Java中变量、代码块与静态块调用顺序
- java中的静态变量、静态方法与静态代码块详解与初始化顺序
- 关于静态变量(函数)与非静态变量(函数)代码块的使用时机
- Java学习:静态方法,静态变量和静态代码块
- java中静态的代码块,静态变量,静态方法
- java中的静态变量、静态方法和静态代码块
- java中静态的代码块,静态变量,静态方法
- 静态方法(类方法),静态变量,静态代码块
- Static静态变量,静态方法,静态代码块
- static静态变量,静态方法和静态代码块
- java中的静态变量、静态方法与静态代码块区别
- java静态变量 实例变量 非静态代码块 静态代码块
- 对象作用域代码分析
- jQuery技术——根据省份的选择动态加载相应城市
- App Store 上架流程
- 生产者消费者问题
- Windows 中以不同用户身份,复制文件到远程目录
- 静态变量、静态块与变量自增代码分析
- perl标量上下文小结
- String类常用方法练习
- Windows 删除共享文件夹
- Java 执行影音文件
- Intersection of Two Arrays问题及解法
- Map集合统计字母次数
- setBackground、setBackgroundDrawable、setBackgroundResource、setBackgroundColor的区别
- 用Java读取Windows的Command指令