Eclipse调试注意事项

Eclipse调试注意事项

断点的使用

debug的精髓就在断点,要将断点打在合适的位置上,不然即浪费时间又浪费精力。

一个经典的java题

试算出i,j,k

	public static void main(String[] args) {
		int i = 1 ; 
		i = i++;
		int j = i++;
		int k = i + ++i*i++;
		System.out.println(i);
		System.out.println(j);
		System.out.println(k);
	}
i++是选取值再自增
++i是先自增再取值

这个大家都再熟悉不过了吧
但是这道题我在第一次做的时候完全蒙了j,k,l没有一个对的上
之后通过debug快速找到问题所在并理解这道题
我们先把断点打在main方法前面,这样就可以完整查看代码运行流程

刚刚进入断点
这是刚刚进入断点的样子
在这里插入图片描述
点击进入下一步
在这里插入图片描述
我们可以看到一个对象i被创建
继续下一步
在这里插入图片描述
问题来了,i=i++这段代码运行之后i还是1,i看起来并没有自增其实不然
这是因为 JVM 在处理 i = i++; 时 , 会建立一个临时变量来接收 i++ 的值 , 然后返回这个临时变量的值 , 返回的值再被等号左边的变量接收了 , 这样就是说 i 虽然自增了但是又被赋值了1 , 这样结果自然还是 1 了

在这里插入图片描述
当j=i++这断代码运行后 i变为2 而创建的j 被赋为1
在这里插入图片描述
在运行完 int k = i + ++i*i++; 这行代码之后 i的值变为4而k自然就等于2+3x3=11;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值