最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

java中数值类型计算时是多地址,变量值会变换

网站源码admin3浏览0评论

java中数值类型计算时是多地址,变量值会变换

最近又在回头复习java基础,在运算符优先级中发现了自己理解的不足。

主要还是在自增和自减中有迷惑,今天的复习才发现,java中数值类型计算是多地址的,同一个变量的值可能在同一时刻并不相等

我们直接上代码看吧

代码语言:javascript代码运行次数:0运行复制
package practice7;
public class Test {
	 public static void main(String[] args) {
		 int n = 11 , f = 12;
		 f = f * (f - f) + f;
		 f += ++f;	// 等价于f = f + ++f;
		 	if ( n++ > 11) {
		 		System.out.println(n);
		 	}else {
		 		System.out.println("是这个n:"  + n);
		 	}
		 	System.out.println(n + "======");
		 	System.out.println(f + "*****");
	 }
}

这只是一个简单的优先级运算,先自行猜测运算结果,我猜测 f 的输出是26,但发现和实际运行结果有所偏差。

运行结果:

这里就需要我们在上面提到的一句话来解释了java中数值类型计算是多地址的,同一个变量 f 的值在同一时刻并不相等,先++的 f 已经是13,而 f 本身还是12

代码语言:javascript代码运行次数:0运行复制
f += ++f;	// 等价于f = f(12) + ++f(13);

这样一来,对于运行结果就有了一个明确的理解。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-07,如有侵权请联系 cloudcommunity@tencent 删除publicsystem变量基础java
发布评论

评论列表(0)

  1. 暂无评论