`
liaozh2004
  • 浏览: 18401 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

static 类型初始化

    博客分类:
  • java
阅读更多
在初始化时,先初始化static类型变量,再初始化普通变量,再初始化构造函数。
如下程序:
class A{
A(int i){
System.out.println("A "+i);
}
void f(int i){
System.out.println("f1 "+i);
}
}

class B{
static A a1=new A(1);
B(){
System.out.println(" B ");
a2.f(1);
}
void f2(int i){
System.out.println(" f2 "+i);
}
static A a2=new A(2);
}

class C{
            A a3=new A(3);
static A a4=new A(4);
C(){
System.out.println(" C ") ;
a4.f(2);
}
void f3(int i){
System.out.println(" f3 "+i);
}
static A a5=new A(5);
}
public class TestStaticInitial {
public static void main(String args[]){
System.out.println("Now begin to test!");
new C();
System.out.println("Now begin to test the second time!");
new C();
bb.f2(1);
cc.f3(1);
}
static B bb=new B();
static C cc=new C();
}
执行顺序:
在主程序中,先初始化static 变量bb,cc.
再打印Now begin to test!;
执行new C();
再打印Now begin to test the second time
执行new C();

初始化变量bb的过程:
先初始化static 变量a1,a2
再执行B();

注意static变量只执行初始化一次

分享到:
评论

相关推荐

    一个简单的static类型的初始化问题

    都知道用static修饰的变量是静态数据,此时变量的地址在静态区存放,因此在函数结束时,该地址中的值不被释放,除非主函数结束。因此每次访问该地址所指向的变量,都会有上次的值。但是会出现一个问题......

    Java静态初始化块和对象初始化块

    这里我们将深入探讨两种类型的初始化块:静态初始化块(Static Initializer Block)和对象初始化块(Instance Initializer Block)。这两种初始化块在创建类实例或加载类时分别扮演着不同的角色。 **静态初始化块**...

    java中类的初始化顺序

    4. **实例成员变量的默认初始化**:创建对象时,默认情况下,实例成员变量会被初始化为其类型的默认值。 5. **实例初始化块的执行**:紧随实例成员变量之后,实例初始化块被执行。 6. **实例成员变量的显式初始化**...

    C#中结构(struct)的部分初始化和完全初始化实例分析

    在C#编程语言中,结构(struct)是一种值类型,与类(class)不同,它在内存中的存储方式和行为有所区别。...理解并正确使用结构的初始化是C#程序员必备的知识点,特别是在处理值类型和避免潜在的未初始化问题时。

    对象初始化流程梳理对象初始化流程梳理

    Java中的对象初始化流程是编程实践中一个非常重要的概念,它涉及到类加载、静态初始化块、实例初始化块、构造器等多个方面。下面将详细解释这个过程。 首先,对象初始化流程的起点是程序的入口点,即`main`方法。当...

    初始化和清理.ppt初始化和清理.ppt初始化和清理.ppt初始化和清理.ppt

    初始化和清理是编程中至关重要的概念,特别是在Java这样的高级编程语言中。本节主要讨论了Java中的构造器、成员初始化、对象创建过程、垃圾回收以及垃圾回收器的工作原理。 4.1 构造器 构造器是Java中用于初始化新...

    基本数据类型初始化1

    在Java编程语言中,基本数据类型的初始化是一个重要的概念。当我们在类中定义成员变量时,如果未显式地为其分配初始值,Java会自动进行默认初始化。这些默认值是根据变量的数据类型设定的,确保了代码的健壮性和可...

    java面试题-类的初始化顺序.doc

    在面试中,面试官可能会通过这种类型的题目来评估应聘者对Java内存模型的理解,以及他们在编写代码时是否能考虑到这些初始化规则,从而避免潜在的陷阱。因此,掌握类的初始化顺序是每个Java开发者必备的知识点。

    Java中static静态变量的初始化完全解析

    Java中的静态变量(static变量)是在类加载时初始化的,而不是在对象创建时。静态变量属于类,而不属于任何特定的对象,因此它们是共享的,所有类实例都可以访问。了解静态变量的初始化顺序对于理解和避免潜在的编程...

    Java初始化块Java初始化块.doc

    根据是否带有 `static` 关键字,初始化块分为两种类型:普通初始化块(非静态初始化块)和静态初始化块。 1. 普通初始化块(非静态初始化块) 普通初始化块在创建对象时会被隐式调用,并且在执行构造器之前运行。...

    C++类成员和数据成员初始化总结

    1. **const、引用和特定类型的成员**(如没有默认构造函数的类类型成员)必须在构造函数的初始化列表中初始化,因为它们不能在构造函数体内赋值。 2. **成员初始化的顺序**并不受它们在构造函数中出现的位置影响,...

    成员的初始化顺序和多态性

    4. **默认值初始化**:如果没有明确指定初始值,那么Java会给成员变量一个默认值,例如`int`类型的成员变量默认值为0,`String`类型的成员变量默认值为`null`。 #### 示例分析 假设我们有一个简单的类定义如下: ...

    C语言初始化效率问题以及关键字解释

    通过对C语言初始化效率问题的探讨以及对`static`、`auto`、`register`等关键字的理解,我们可以更好地管理程序中的变量生命周期和作用域,从而优化程序的性能。理解这些概念对于编写高效、可靠的C程序至关重要。

    const成员函数、初始化列表、static成员1

    C++ 编程语言 - const 成员函数、初始化列表、static 成员变量 C++ 编程语言中,const 成员函数、初始化列表、static 成员变量是三个重要的概念,它们在编程中发挥着重要的作用。 const 成员函数 在 C++ 中,...

    Java中对象的初始化

    ### Java中对象的初始化 #### 一、Java对象初始化概述 在Java中,对象的初始化是一个重要的概念,它涉及到如何创建对象以及如何设置对象的状态。本文档主要介绍Java对象初始化的相关知识点,包括构造方法的使用、...

    S5700交换机初始化和配置[参考].pdf

    华为 S5700 交换机初始化和配置 华为 S5700 交换机初始化和配置是指从零开始配置华为 S5700 交换机的所有步骤,包括基本配置、Telnet 远程登录配置、SSH 远程登录配置、AAA 认证配置等。以下是华为 S5700 交换机...

    Java初始化顺序1

    如果一个域是静态的基本类型域,且没有对它进行初始化,那么它将会被初始化为该类型的默认值。 Java 中的初始化顺序是按照定义的顺序进行的,而静态变量的初始化顺序则是按照定义的顺序,并且只在第一次访问时初始...

    6种方法初始化JAVA中的list集合

    本文将详细介绍6种初始化Java List集合的方法,并通过代码示例帮助理解每种方法的使用和特点。 1. 常规方式 这是最常见的初始化List的方式,通过创建ArrayList实例并逐个添加元素。自JDK 7以后,可以省略泛型类型的...

    php 静态变量的初始化

    静态变量的初始化通常在声明时进行,但必须注意的是,它们只能被标量类型(如整型、浮点型、字符串和布尔型)初始化。这意味着你不能直接在声明时将静态变量设置为对象。例如: ```php class A { static public $...

    学习java静态数据初始化.doc

    隐式初始化指的是在静态变量声明时赋值,例如 `static int x = 10;`。显式初始化指的是在静态代码块中赋值,例如 `static { x = 10; }`。 在 Java 中,静态变量的初始化顺序是按照它们在类中的定义顺序进行的。如果...

Global site tag (gtag.js) - Google Analytics