当前位置: 首页 > news >正文

111 - exercise 5

public class Dummy {private static int a = 3;private static int b = 5;private static int c = 7;public static void main(String... arguments) {int a = 1, b = 2;System.out.println("" + a + (a - b) + c);}
}

这个Java程序中有两个a和b变量,一个是类变量(private static),一个是方法内部的局部变量。程序的运行逻辑如下:

变量解释:

•	类的静态变量:
•	a = 3
•	b = 5
•	c = 7
•	main方法内部:
•	局部变量:a = 1, b = 2

代码分析:

1.	在main方法内部,有局部变量a = 1和b = 2,它们会覆盖类中的静态变量a和b。
2.	System.out.println("" + a + (a - b) + c); 语句会按顺序执行:
•	a的值是1(局部变量)。
•	(a - b) 等于 1 - 2 = -1。
•	c 的值是 7(类的静态变量)。
3.	表达式的计算顺序:
•	由于+操作符在Java中是从左到右结合的,所以首先执行"" + a,这会将a的值 1 转换为字符串,得到 "1"。
•	然后执行 "1" + (a - b),即 "1" + -1,得到 "1-1"。
•	最后执行 "1-1" + c,即 "1-1" + 7,得到字符串 "1-17"。

注:
在 Java 中,+ 操作符有两种功能:

1.	数值相加:当两个操作数都是数字时,+ 会执行普通的加法运算。
2.	字符串拼接:当其中一个操作数是字符串时,+ 操作符会将另一个操作数转换为字符串,并进行字符串拼接。

public static int test(int a, int b, int c) {b = c;System.out.println("" + c + b + a);return a + b + c;
}public static void main(String... arguments) {int a = 5, b = 4, c = 3;a = test(c, b, a);System.out.println("" + a + b + c);
}
1.	main方法的初始变量:
•	a = 5
•	b = 4
•	c = 3
2.	调用test方法:

在main方法中,调用了test(c, b, a),此时参数传递如下:
• a = 3(c的值)
• b = 4(b的值)
• c = 5(a的值)
3. 进入test方法:
• 在test方法中,首先执行 b = c;,因此 b 的值被更新为 c 的值,即 b = 5。
• 然后执行 System.out.println(“” + c + b + a);,我们按顺序拼接输出:
• c = 5(没有改变)
• b = 5(已经在上一步更新为5)
• a = 3(传入的参数)
因此,打印结果为:553。
• 最后,test方法返回 a + b + c 的值,即 3 + 5 + 5 = 13,将其返回给main方法中的a。
4. 返回main方法:
• 返回值 13 赋给 main 方法中的 a,因此现在 a = 13。
• b 和 c 保持不变,分别是 b = 4 和 c = 3。
5. 第二次输出:
• 在main方法中,执行 System.out.println(“” + a + b + c);,这会输出:
• a = 13
• b = 4
• c = 3
因此,输出结果为:1343。

输出结果:

整个程序的输出将会是:

1.	调用test方法时输出:553
2.	在main方法中输出:1343

http://www.mrgr.cn/news/53403.html

相关文章:

  • 【时时三省】(C语言基础)函数介绍strncmp
  • Vue详细入门(语法【三】)
  • kafka入门
  • 计算机网络架构实例
  • 阿里商品发布框架如何覆盖海量规则
  • 王牌功能 | 法大大“合同起草”,让合同定稿不再难搞!
  • Java 异步编程——常用线程池 ThreadPoolExecutor
  • 《OpenCV计算机视觉》—— 年龄与性别预测
  • 【服务器部署】Nodejs环境搭建
  • 单例模式(自动加载)
  • 提高效率从编写 init.sh 开始
  • 基于微博评论的自然语言处理情感分析
  • #保持每天更新第一天(1)_文本预处理小技巧_中英文翻译分割技巧_从中文右边空格分割,用rsplit(‘ ‘, 1)
  • YOLO系列入门:1、YOLO V11环境搭建
  • 锅炉水处理历年真题附答案(二)
  • GIT batch的支持中文的方法和系统建议
  • Windows自带录屏工具操作教程和四款录屏神器推荐!
  • 2024.10.18 软考学习笔记
  • HashMap优点总结及源码分析
  • 90%的建筑工程都在用的项目管理系统大盘点