非法向前引用的例子:


那么为什么类似于i= "1234";这样的代码可以呢?这是因为Java对其中的某些情况做了“特许”,其中有一条就是“通过简单名称引用的变量可以出现在左值位置,但不能出现在右值的位置”,所以前面的代码可以,但System.out.println(i);不行,因为这是一个右值引用。
其目的是避免循环初始化和其他非正常的初始化行为。
什么是循环引用,看一下下面这个例子:
privateinti=j;
privateintj=i;
如果没有前面说的强制检查,那么这两句代码就会通过编译,但是很容易就能看得出来,i和j并没有被真正赋值,因为两个变量都是未初始化的(Java规定所有变量在使用之前必须被初始化)
0人点赞

本文探讨了Java中非法向前引用的规则及其目的,以及通过实例解释了循环引用可能导致的问题。重点在于理解变量初始化的规则和避免潜在编程错误。
184

被折叠的 条评论
为什么被折叠?



