left-to-right evaluation rule and side effect
来源:互联网 发布:java方法调用 参数返回 编辑:程序博客网 时间:2024/06/05 04:37
class ArrTest{
public static void main(String args[]) {
int i = 0;
int[] a = {3,6};
a[i] = i = 9;
System.out.println(i + " " + a[0] + " " + a[1]);
}
}
这里是会throw IndexOutOfBoundsException呢,还是会正常输出,如果正常输出,输出的结果是什么呢?
Java是这样解释这段代码的
从left-to-right evaluation rule中可以知道,这里首先得到了一个"A",储存在某个地方之后,开始分析后面的new C(),首先实例化一个对象C,然后调用它的toString()方法,然后得到字符C,连接"A""C",然后打印"AC"。那么"B"是怎么出现的呢。在toString()方法内有一句,System.out.println("B");当在解释new C()的时候,调用toString()方法,这时候在将C返回之前,打印出"B",然后在返回"C",连接"A""C",打印"AC",所以得到的最后结果就是"BAC"。
这也叫side effect,一般都认为这是不好的代码类型。有时候为了debug某段代码的时候,也会用到这个方法。
- left-to-right evaluation rule and side effect
- The "right-left" rule
- right-left rule
- The right-left rule
- c 声明 && right-left rule
- android left-to-right
- side effect
- Side effect
- side effect
- side effect
- Side Effect
- iphone swipe left and right
- codechef Chef and Left-Right
- Rearrange int array to put odd number to left and even to right
- how to set cornerRadius for only top-left and top-right corner of a UIView?
- C# Left, Right and Mid函数
- Inverse matrix, left-inverse and right inverse
- C# Left, Right and Mid函数
- 在VS.net 2005(ASP.NET 2.0) 中为GridView加行序的方法
- java第五课
- 跟陌生人逛街的周末
- 图书在线看
- 《老子》
- left-to-right evaluation rule and side effect
- 在Netscape中,event.target 不能在函数中调用的问题
- 在C#中使用Retun,并访问数据库时应注意犯的错误
- 第一次亲密接触
- [转载]C++ STL(标准模板库) 学习资源列表
- oracle最常规问题和方法
- SQL 的一些常见函数
- GSM无线模块短消息PDU 格式说明
- ZZ最近做了温水煮青蛙的试验 感觉真的上当了