java向前引用

根据看书和看得文章,引出了一个关于"向前引用"的问题:

public class InstanceInitTest {

    static {
//    {
        a = 6;
        System.out.println(a);//Cannot reference a field before it is defined
        System.out.println(fun());
    }
    static int fun(){
        return a;
    }
    static int a = 9;
    public static void main(String[] args) {
        System.out.println(new InstanceInitTest().a);
    }
}

编译出现的错误:

目前还并没有理解,资料较少,很多人也并不知道这么深入细节的java语言规范的东西。等有空再回顾理解下。

关于前向引用的链接:

http://www.cnblogs.com/nokiaguy/p/3156357.html

http://www.cnblogs.com/iamzhoug37/p/4306304.html

时间: 2024-10-26 10:41:49

java向前引用的相关文章

java 成员变量、局部变量、静态变量、类变量、非静态变量、实例变量、向前引用、非法向前引用、静态代码块、非静态代码块

①java类的成员变量有俩种: 一种是被static关键字修饰的变量,叫类变量或者静态变量 另一种没有static修饰,为成员变量 ②通俗点说: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享.静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期. 而实例变量取决于类的实例.每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期. 注意点: 1.JAVA中初始化

java的引用传递

最近看着李兴华讲师的java视频教程学习java,关于java引用传递方面的知识的总结. 基础知识 java的常用内存空间 栈内存空间:保存所有的对象名称(更准确地说是保存了引用的堆内存空间的地址) 堆内存空间:保存具体对象的具体属性内容. 全局数据区:保存static类型的属性 全局代码区:保存所有的方法定义 实例分析 class Person { private String name; private int age; private static String city = "北京&qu

Java 强引用,软引用,弱引用

1.强引用 public void handleMessage(Message msg) { case FAIL: GoplayException mException = new GoplayException(); setVideoUrlFailReason(mException); mListener.onFailed(mException); break; } protected void setVideoUrlFailReason(GoplayException mResult) {

python自定义函数可以向前引用不用声明

#有些编程语言不够"聪明",向这类向前引用的方式会导致报错,但Python足够"醒目",这段代码是正确的! def next(): print('我在next()函数里...') pre() def pre(): print('我在pre()函数里...') next() 我在next()函数里... 我在pre()函数里...

Java 持有引用 & WeakHashMap

Java 持有引用 & WeakHashMap @author ixenos Reference引用对象 可获得的(reachable):指在栈中有一个普通的引用正在指向此对象,也可能有更多的中间链接 如果一个对象是可获得的,垃圾回收器(GC)就不能释放它,因为他仍然为程序所用,宁愿耗尽内存也不释放:当一个对象不是可获得的时候,程序无法使用它,此时GC才认为将其回收是安全的 Reference对象:如果想继续持有对某个对象的引用,但也希望能够允许GC释放它,就应使用Reference对象作为与普

java的引用

本文转载自:http://www.cnblogs.com/skywang12345/p/3154474.html Java引用介绍 Java从1.2版本开始引入了4种引用,这4种引用的级别由高到低依次为:    强引用  >  软引用  >  弱引用  >  虚引用 ⑴强引用(StrongReference)    强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回收它.当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会

基于Java软引用机制最大使用JVM堆内存并杜绝OutOfMemory

题记:说好的坚持一周两篇文章在无数琐事和自己的懒惰下没有做好,在此表达一下对自己的不满并对有严格执行力的人深表敬意!!!! --------------------------------------------------------------------------------------------------------------------------------- 引文:Java程序员对OutOfMemory并不陌生,一般来说,出现此异常主要是由于应用里缓存了大量的数据没有被GC

Java Object 引用传递和值传递

Java Object 引用传递和值传递 @author ixenos Java中的引用传递: 除了在将参数传递给方法(或函数)的时候是"值传递",传递对象引用的副本,在任何用"="向引用对象变量赋值的时候都是"引用传递",传递对象的引用给另一个变量. 参数传递,传递引用的副本,这看起来是引用传递,实则是传递了副本,这已经是值传递的概念了: 变量赋值,传递引用,这算引用传递 Java参数传递中没有引用传递都是值传递 1.在 Java 应用程序中永

如何理解java的引用传递

1. 数组的引用传递 public class TestArray { public static void changeAry1(int[] ary){ int[] ary1 = {9,9,9}; ary = ary1; } public static void changeAry2(int[] ary){ ary[0] = 100; } public static void main(String[] args) { int[] ary = {1,2,3}; System.out.print