Java自加(i++)的所谓缓存变量
来源:互联网 发布:mac迅雷提示信任 编辑:程序博客网 时间:2024/06/05 08:13
在面试书上看到一个非常变态的面试题,考的是Java的后自加(j++)操作。
public static void main(String[] args){ int j = 0; for(int i=0; i<100; i++){ j = j++; } System.out.println(j);}运行结果是0.首先简化一下问题:
public static void main(String[] args){ int j = 0; j = j++; System.out.println(j);}运行结果是0.单独抽出这两句:
int j = 0;j = j++;
1, int j = 0 开辟一个内存A,赋值为0;
2, 开辟一个内存B,赋值为内存A的值(0);
3, 内存A的值加1;
4, 把内存B的值赋给内存A。
所以,输出结果是0.
再来一个,
int j = 0;j = j++ + j++ + j++;
1, int j = 0 开辟一个内存A,赋值为0;
2, 开辟一个内存B,赋值为内存A的值(0);
3, 内存A的值加1(1);
4, 开辟一个内存C,赋值为内存A的值(1);
5, 内存A的值加1(2);
6, 开辟一个内存D,赋值为内存A的值(2);
7, 内存A的值加1(3);
8, 将 B+C+D 的值给内存A。
因此,结果为3.
注意,这个只是后加的情况。
我想说,这样的题真的没有什么实际意义。
0 0
- Java自加(i++)的所谓缓存变量
- java i++ 的中间变量缓存机制
- Java中间缓存变量机制(i++)
- Java中间缓存变量机制(i++)
- freemarker变量自加
- 变量自加运算
- java中间变量缓存机制——i=i++;
- 对比C++和java自加问题i++
- 有关自增自加的奇怪问题i++和++i
- 关于java的自增操作符与中间缓存变量机制
- 关于自增运算符和java的中间缓存变量机制
- Java的中间缓存变量机制与自增操作符
- java的中间缓存变量
- Linux Shell 变量自加
- Linux Shell 变量自加
- 自加(++)操作符在变量前后的问题测试
- Android线程—变量自加导致的问题
- 中间缓存变量机制 i++
- SQL效率分析之01
- 用plsql连接数据库 报错 无法解析指定的连接标识符 ora06413 连接未打开
- Java字符串之性能优化
- 000
- Centos下搭建svn并且和web服务器同步
- Java自加(i++)的所谓缓存变量
- linux常用命令
- oracle 监听程序的作用--Net Configuration Assistants
- Oracle 常用dump命令【转自】dave
- OCM_Session8_2_Step-by-Step Instructions for Creating a Physical Standby Database
- 第四周作业-键盘输入数据 和 数据类型
- 第3周作业-循环与判断语句
- 小爬虫系列
- Ordinal Numbers