m=m++,结果让你大吃一惊。

如图,本来以为m=m++和m++是同一个效果,没想到m的值居然还是0.

原来m++是一个表达式,是有返回值的,它的返回值就是m自加前的值,Java对自加是这样处理的:首先把m的值(注意是值,不是引用)拷贝到一个临时变量区,然后对m变量加1,最后返回临时变量区的值。程序第一次循环时的详细处理步骤如下: 步骤1 JVM把m值(其值是0)拷贝到临时变量区。 步骤2 m值加1,这时候m的值是1。 步骤3 返回临时变量区的值,注意这个值是0,没修改过。 步骤4 返回值赋值给m,此时m值被重置成0。

只能说java的套路太深了。

据说在c++里面,m=m++和m++真的是一个效果哦。

时间: 2024-10-07 16:45:16

m=m++,结果让你大吃一惊。的相关文章

keepalived实现mycat高可用问题排查;道路坎坷,布满荆棘,定让你大吃一惊!

前言 开心一刻 医院里,一母亲带着小女孩打针.小女孩:“妈妈我不想打针,疼!”妈妈:“宝贝儿听话,这里这么多护士阿姨,咱们找个打针不疼的.”小女孩:“那哪个阿姨打针不疼呢?”妈妈:“妈妈也不知道,咱们试试看吧.”小女孩高兴的点了点头... 路漫漫其修远兮,吾将上下而求索! github:https://github.com/youzhibing 码云(gitee):https://gitee.com/youzhibing 问题背景 Mycat - 实现数据库的读写分离与高可用写完之后,本以为一两

js高阶函数

map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81] reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个

小虫的时间观01-结构化你的时间

好长时间不跟小然联系,翻看电话簿想起该给她打个电话.结果她公司同事告诉我小然正在家休息,原因是得了上班恐惧症.天哪,让我大吃一惊.我赶紧给小然打个手机,没人接,后来发个短信,到昨天晚上才给我回复.问其原因才知道,原本在我眼里就是个忙碌的姑娘,她最近有一段时间工作特别忙.忙得很少进食,忙得很少跟朋友交流,忙得睡觉时间都很短.所以厌倦了这样的工作生活,在家休息调整情绪. 我们很多人经常把忙碌挂在嘴边,但绝大部分都是不会利用时间的结果.时间是对我们每个人都很公平的财富,掌控了你的时间就掌控了你的生命,

《Effective C++》学习笔记(八)

原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38962661 条款29:为"异常安全"而努力是值得的 看完这个条款,第一感觉就是之前写的代码多么具有风险. 先看一个书上的例子,假设有个class用来表现夹带背景图案的GUI菜单,这个class也要用于多线程环境当中,所以我们考虑用了一个互斥器(mutex)作为并发控制(concurrency control)之用: class PrettyMenu { p

论大数据的十大局限

“忽如一夜春风来,千树万树梨花开”,似乎在一夜之间,大数据就红遍了南北半球,,大数据被神化得无处不在,无所不包,无所不能.这里面有认识上的原因,也有故意忽悠的成份.笔者以为,越是在热得发烫的时候,越是需要有人在旁边吹吹冷风.在这里谈大数据的十大局限性,并非要否定其价值.相反,只有我们充分认识了大数据的特点和优劣势,才能更加有效地对其进行采集.加工.应用,充分挖掘和发挥其价值.         1.数据噪声:与生俱来的不和谐 大数据之所以为大数据,首先是因为其数据体量巨大.然而,在这海量的数据中,

HashMap的工作原理

这是一节让你深入理解hash_map的介绍,如果你只是想囫囵吞枣,不想理解其原理,你倒是可以略过这一节,但我还是建议你看看,多了解一些没有坏处. hash_map基于hash table(哈希表).哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间:而代价仅仅是消耗比较多的内存.然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的.另外,编码比较容易也是它的特点之一. 其基本原理是:使用一个下标范围比较大的数组来存储元素.可以设计一个函数(哈希函数,也

Linux 新手容易犯的 7 个错误

改变操作系统对于任何人来说都是迈出的一大步,特别是当许多用户不确定操作系统究竟如何的时候,尤其如此. 但是,从Windows切换到Linux特别艰难.因为这两个操作系统有不同的假设和优先级,以及不同的做事方式.因此,新的Linux用户很容易混淆,因为他们使用Windows开发的期待结果不再适用. 例如,下面就是很多Windows用户开始使用Linux的时候,会犯的7个错误(不按特定的顺序排序):7.选择错误的Linux发行版 Linux有几百个不同的版本,或者称为发行版.其中许多是专门针对不同版

廖雪峰js教程笔记4 sort排序的一些坑

排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个对象呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来.通常规定,对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1,这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序. JavaScript的Array的sort()方法就是用于排序的,但是

不要去深圳小梅沙海洋世界

我对深圳的收费景点始终是没有兴趣的,这来源于我对深圳这个城市的看法.虽然我的个人看法可能有些不公或者可能会伤害深圳,但这始终是真实的.深圳本来就是一个小渔村,能有什么呢.没有历史,就没有人文:没有人文,就没有景致.所以,我自2014年来深圳,几乎没有去过深圳的收费景点. 在我看来,深圳全城就是一座工厂,到处弥漫着工厂气息.路上的人,你可以简单分为老板和打工仔.在我最开始来深圳的那一段日子里,我时常问我自己,如果我要离开深圳,最让我舍不得的原因是什么呢?“蓝天.白云和大海”,我很多次都这样对我自己