永发信息网

java求助,关于j=j++的疑惑

答案:6  悬赏:40  手机版
解决时间 2021-04-05 07:02
java求助,关于j=j++的疑惑
最佳答案
csdn上的解释:首先刚开始J = 0 , 在J = J++的时候, 等号前面的那个J已经不是J声名时的那块内存区了,JVM为他重新为他分配一块新的内存区.比如说,int j = 0 时,j的内存地址为00xx01,值为0。那么经过第一循环的以后前面那个J内存地址为00xx02,值为0,而后面那个J(内存地址00xx01)则会进行++操作,此时他的值为1,不过他已经不能影响到前面J的值了,此时J的内存地址就已经是等号前面的那个J的内存地址了(00xx02),再进行第二循环的时候,j的内存地址是:00xx02,值是0,至于00xx01那块内存区域,因为已经没有人再使用,所以将会在下一次垃圾回收的时候被GC回收,此时他(内存地址为00xx02的J)变成后面的那个j,前面那个J 则又会重新分得一块新的内存区域00xx03,值仍然是0,而00xx02则又会被丢弃然后被GC回收,依此类推,直至最后打印时J仍然为0,但他的内存地址已经不是最开初的00xx01了,换句话说,他已经不是当初的那个J了。
全部回答
for循环里的这条语句是没有用的:j=j。
你的j=0;j++又等于0加一万遍还是等于0,
怎么会有j+1的效果呢????????
要多加努力咯!!!!!!追问#include
int main(void)
{
int j=0;
for(int i=0;i<10;i++)
{
j=j++;
}
printf("%d",j);
}
我很努力哦,你看C语言执行怎么就是10呢?
本质原因是因为c默认是按值传递,java是按引用传递。
j=j++
在java中分解一下就是
temp=j;
j=j+1;
j=temp;
j=j++
先执行: j=j ;
然后是: j++ ;
如此 。
j=j++; 运算过程是
第一步:先算j=j计算结果是0;
第二步:算0++,所以结果还是0;
总而言之:j=j++;算的就是0++;所以结果还是0,没有给j赋上值追问.。。。你的第二步说的不对
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
团聚包饺子,谁吃到包着制钱的饺子最有福,一年
单选题Iwanttoreadanoveltonightinste
从吉隆坡转机到柬埔寨可以落地签吗
大三大四的时候可以到别的城市去实习吗?
下列对亚洲的说法正确的是A.位于西半球B.位于
日本的和歌、俳句跟中国的古诗有什么不同
佳客来中西餐厅金霖商厦店在什么地方啊,我要
卓越围棋(青陶路)地址好找么,我有些事要过去
电动螺旋压力机和双盘摩擦压力机哪个好?
在淘宝上买含羞草怏了,卖家说补发给我是不真
如何洗掉汽车绕桩时蹭在车身上的红色漆
六十年前的农村信用社股金证有用吗
一个数与自己相加,相减,相除,再把所得的和
十年婚姻祝福祝朋友,一个女孩微信聊天说有人
朱复戡字画书法作品目前多少钱一平尺
推荐资讯
迪奥香奈儿哪个好,兰蔻娇兰迪奥香奈儿哪家香
简算:3÷93×0.31
初一语文古诗词背诵题,语文古诗题
九台市第二十二中学怎么样?
请问那种类似茂昌、吴良才能有验光吗?或者上
电脑关机后会不会自动断网?
电路图标10E电阻是多少欧姆
把两个完全一样的圆柱,拼成一个长30厘米的圆
明信片小清新温暖寄语
拍快手都用什么软件,快手软件怎么搜网红?
在周长相等的情况下,下面的图形中(  )的
做包子300克面粉加多少水
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?