`

关于java的非法向前引用

 
阅读更多
下面的注释这行代码为什么会报错:非法向前引用?
这个时候我debug都可以看到i的值是100.为什么不能打印出来呢?


public class Test {
    static {
        i = 100;
//        System.out.println("================================"+i);
    }
    public static int i=10;
    public static void main(String[] args) {
        System.out.println("此时 i 的输出为" + i);
    }
}


0
6
分享到:
评论
2 楼 freezingsky 2013-08-20  
这个问题属于数据初始化顺序方面。
1 楼 wingware 2013-08-20  
public class Test {
	public static int i = 10;
	static {
		i = 100;
	}
	public static void main(String[] args) {
		System.out.println("此时 i 的输出为" + i);
	}
}

改成这样子,输出来的就是100了...
由此得出结论。
ClassLoader时
1.先检查static属性的声明
2.执行static{]语句块
3.给static属性赋值

相关推荐

    java代码-ScopeErr

    通过仔细检查变量声明的位置,确保它们在正确的作用域内使用,并避免遮蔽和非法向前引用,可以有效地预防ScopeErr类型的错误。同时,阅读并遵循`README.txt`文件中的指导,将有助于理解和解决这个问题。

    Java面试题和答案.pdf

    `String`在Java中属于引用数据类型,它实际上是一个类(`java.lang.String`)。 **7. Java中操作字符串都有哪些类?它们之间有什么区别?** - **`String`**: 不可变的字符序列。 - **`StringBuilder`/`StringBuffer`...

    2013年JavaEE培训班第一阶段评测试卷v1.0.pdf

    因此,`class`(关键字)、`1234`(数字开头)和`*name`(非法字符)都是非法的,而`$abc`是合法的。 9. **数组初始化**:创建一个长度为10的数组,但未初始化任何元素。尝试访问未赋值的数组元素默认会得到`0`,...

    麻省理工18年春软件构造课程阅读08-可变性与不变性-1

    在构造函数中,`this.position`用于初始化实例变量,而`Tortoise.position`则会尝试访问类变量,这在Java中是非法的,因为类变量不能在实例上下文中通过类名来访问,必须通过类名直接访问。 关于`get`和`set`方法,...

    SCJP考题中的陷阱

    21. **向前引用变量会导致编译错误**:在变量声明之前使用变量会导致编译错误。 22. **多维数组可以稀疏**:多维数组的子数组可以不连续,可以有不同的长度。 23. **数组总是初始化的**:无论是在类级别还是局部...

    2008年中创校园招聘笔试题

    因此,选项(B) #table 是非法的Java标识符,因为#不是合法的字符。 2. **T-SQL游标**:T-SQL中的游标允许逐行处理结果集。游标有两种操作模式:向前只读和可滚动。游标一次只能提取一行记录,选项(A)1 是正确的。 ...

    2021-2022计算机二级等级考试试题及答案No.1651.docx

    seth(x)或setheading(x)用于改变画笔的方向,而不是向前移动距离。正确的导入方式是`import turtle`,然后可以直接使用circle()等函数。 3. TCP协议通信 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流...

    大数加减乘类的实现

    在计算机中,常规的数据类型如int、long等都有其最大值和最小值限制,例如在Java中,int的最大值为2^31 - 1,long的最大值为2^63 - 1。当需要处理超过这些限制的数字时,就需要用到大数算法。大数通常用字符串或数组...

    2021-2022计算机二级等级考试试题及答案No.18947.docx

    - **解释**:在编程中,当通过地址传递参数时(例如,通过引用或指针),实际上传递的是一个指向原始数据的引用,这意味着实参和形参指向的是相同的内存位置。 #### 9. 控制器的功能 - **知识点**:控制器负责对...

    2021-2022计算机二级等级考试试题及答案No.15670.docx

    根据提供的文档内容,我们可以总结出一系列关于计算机二级等级考试的关键知识点。这些知识点涵盖了计算机软件的基本概念、编程语言(如C语言)的使用技巧、数据库管理技术、数据结构基础以及用户界面设计等方面的...

    易语言程序免安装版下载

     支持库开发框架调整是扩展性调整,比较好的做到了向前向后兼容。即,新版支持库可被旧版易语言或易程序使用,旧版支持库也可被新版易语言或易程序使用(只是不支持静态编译)。  静态编译后的易语言EXE/DLL之间...

Global site tag (gtag.js) - Google Analytics