`
slippy
  • 浏览: 32910 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 类静态成员初始化问题

阅读更多
public class StaticVar {
	private static StaticVar sv = new StaticVar();
	public  static int i;
	public  static int j = 0;

	private StaticVar() {
		i ++;
		j ++;
	}
	
	public static StaticVar getInstance(){
		return sv;
	}

	public static void main(String[] args) {
		//StaticVar sv = StaticVar.getInstance();	
		System.out.println("i = " + i);
		System.out.println("j = " + j);
	}
}

使用javap -v 反编译后关于静态区的内容

static {};
  Code:
   Stack=2, Locals=0, Args_size=0
   0: new #14; //class StaticVar
   3: dup
   4: invokespecial #15; //Method "<init>":()V
   7: putstatic #4; //Field sv:LStaticVar;
   10: iconst_0
   11: putstatic #3; //Field j:I
   14: return
  LineNumberTable:
   line 2: 0
   line 4: 10
分享到:
评论

相关推荐

    关于Java静态成员变量和静态初始化块等的初始化顺序的详细介绍

    详细介绍了Java的静态成员变量、静态数据块、非静态成员变量和非静态成员变量等初始化顺序

    Java静态和非静态成员变量初始化过程解析

    主要介绍了Java静态和非静态成员变量初始化过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java类中各成员初始化的顺序

    了解java中类各个成员的初始化顺序是非常重要的,这样你可以对类有全局的认识。不说太多,直接看下面的例子 class Father { static{ System. out.println("父类静态代码块初始化" ); } { System. out.println...

    java学习之神奇初始化

    如果有static,即静态成员定义,首先初始化static的变量,如,在类Cups中c3在c2前面,可是在输出的结果中,你可以发现,c2是在c3前执行的,这就是因为,所有的static都在第一时间被初始化。

    php 静态变量的初始化

    } } 但是php中并没有一个类似java中的静态构造器/静态块的东西,就没有合适的时机对其进行初始化了。 对于共有的成员还有办法解决,例如: class A { static public $child; } A::$child = new B()

    【Java语言基础】初始化块

    文章目录【Java语言基础】初始化块使用初始化块静态初始化块总结代码 【Java语言基础】初始化块 初始化块又称为代码块。属于类中的第四大成员。本质上是一个方法,它也有方法体,但没有方法名,没有参数,没有返回,...

    Java开发者文档,分享日常学习的一些小知识点 .rar

     ※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。  构造方法的作用就是初始化。  (2) 静态对象的初始化  程序中主类的静态变量会在main方法执行前初始化。  不仅第一次创建对象时,类中的...

    java面试题静态加载顺序构造方法

    Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。...3、类初始化时,先初始化类的属性成员,在执行构造方法。

    Test.java关于静态的分析

    //静态成员变量 int j=0; //成员变量 public static void print(){ } //静态的块 static{ System.out.println("我是静态块,我自己调用自己"); //j++; i++; ...

    Java开发技术大全(500个源代码).

    errorInit.java 演示变量初始化错误的程序 integerExample.java 演示各种整型变量的使用 isPrime.java 判断素数 leapYearByIf.java 用if语句判断闰年 leapYearByLogical.java 用逻辑表达式判断闰年 lowToUpper...

    JAVA基础知识精华总结 收藏

    ※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。 构造方法的作用就是初始化。 (2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量...

    实验03 Java面向对象编程1.doc

    ○2在Student类建立构造方法初始化各域的值,并统计学生人数count; ○3创建分别获得各域(学号,姓名,性别和年龄)的public方法,以及分别设置各域(学号,姓名,性别和年龄)值的public方法(即get、set方法);...

    Java并发--final关键字.docx

    而实例变量可以在声明变量的时候给实例变量赋初始值,在非静态初始化块中以及构造器中赋初始值。 类变量有两个时机赋初始值,而实例变量可以有三个时机赋初始值。当final变量未初始化时系统不会进行隐式初始化,会...

    Java初始化顺序

    1 无继承情况下的Java初始化顺序: class Sample { Sample(String s) { System.out.println(s);... Sample sam1=new Sample(sam1成员初始化); static{ System.out.println(static块执行); if(sam==null)Sy

    Java 基础核心总结 +经典算法大全.rar

    类的初始化 成员初始化 构造器初始化初始化顺序 数组初始化 对象的销毁 对象作用域 this 和 super 访问控制权限继承 多态组合代理 向上转型static final 接口和抽象类接口 抽象类异常 认 识 Exception 什么是 ...

    JAVA复习资料

    22、在Java程序中定义的类有两种成员: 静态成员 、 实例成员 。 23、Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类。在Java Application中,这个主类是指包含 main 方法的类;在...

    Thinking in java4(中文高清版)-java的'圣经'

    5.4 this关键字 5.4.1 在构造器中调用构造器 5.4.2 static的含义 5.5 清理:终结处理和垃圾回收 5.5.1 finalize()的用途何在 5.5.2 你必须实施清理 5.5.3 终结条件 5.5.4 垃圾回收器如何工作 5.6 成员初始化 ...

    java对象初始化顺序验证示例

    以下这段小程序对调用对象构造函数时,父类构造函数、成员变量初始化函数,以及非静态初始化块调用顺序进行验证,不考虑静态成员及静态初始化块

    java基础非常典型的面试题目.wps

    1.成员变量的初始化 实例变量可以在定义处或者在构造方法中被显式初始化。如果在这两处都没有初始化,那么保留自动初始化时的默认值。final型的变量必须被显式初始化。 静态变量可以在定义处或者在静态代码块中被...

    Java经典面试题.pdf

    静态关键字用于修饰类的成员(方法、变量、代码块),使其在类加载时被初始化,并且可以通过类名直接访问。静态成员属于类本身,而不是类的实例。静态方法无法访问非静态成员。 4.什么是Java的final关键字? final...

Global site tag (gtag.js) - Google Analytics