java基础注意细节问题

阅读更多

1.i+=1;i=i+1;i++的区别与联系:

区别:

(1)从执行效率上来看:i++的效率最高;i+1=的效率次之;i=i+1效率最低;

(2)从执行的方式上来看:

i=i+1:读取右边i的地址;然后进行i+1操作;接着获取左边i的的地址;最后将i+1的值赋值给i(编译器并不认为"="两边的值等)

i+=1:读取i的地址;然后进行i+1操作,最后将i+1的地址赋值给i

i++:读取i的地址;然后进行i+1自增操作;

(3)i=i+1与i+=1的值相等吗?在什么样的情况i=i+1错误?在什么样的情况下i+=1错误?

答案:不一定; short i=1;i=i+1是错误的,在进行i=i+1操作时数据类型自动的进行了的提升操作;所以结果会是int类型,再将值赋给类型为short的i时,编译器会提示需要强制转换数据类型;

 

你可能感兴趣的:(java)