`

final非静态变量初始化

 
阅读更多
final变量可以在任何可以被始化的地方被始化,具体应该是构造函数之前或构造函数中,但只能被初始化一次.一旦被初始化后就不能再次赋
值(重新指向其它对象),作为成员变量一定要显式初始化,而作为临时变量则可以只定义不初始化(当然也不能引用)
即使是作为一个类中的成员变量,也还可以在初始化块中初始化,所以"其初始化可以在两个地方,一是其定义处,
二是在构造函数中,两者只能选其一"是错误的.


例如
final String s;

{
s = "sss";
}

初始化数据域的方法:
(1)构造器。
(2)声明时赋值。
(3)初始化块。(用{}括起来的区域)  初始化时首先运行初始化块然后运行构造器主体。
初始化静态数据域的方法:
(1)构造器。
(2)盛明诗赋值。
**(3)静态初始化块。

分享到:
评论

相关推荐

    深入理解final变量的初始化

    以下是对`final`变量初始化的详细分析: 1. **定义时初始化**: `final`变量可以在定义时直接赋值,这是最常见的方式。例如: ```java final int a1 = 1; ``` 这里的`a1`在定义时就被赋予了初始值1,之后不能...

    java入门教程:数据类型_类变量(静态变量).pdf

    5. **默认值**:静态变量与实例变量(非静态变量)有相同的默认值:数值类型默认为0,布尔类型为false,引用类型为null。 6. **访问方式**:静态变量可以通过类名直接访问,无需创建类的实例。例如,`ClassName....

    java-静态变量方法块

    在Java编程语言中,静态变量、静态方法、静态代码块以及非静态变量和非静态方法是核心概念,它们对于理解和编写Java程序至关重要。下面将详细解释这些概念,并通过实例程序来阐述它们的使用和内存管理。 首先,静态...

    java程序初始化顺序

    - 静态初始化块(static{}):如果类中存在静态初始化块,该块的代码会在类加载后的准备阶段执行,用于初始化静态变量或执行其他静态设置任务。 - 静态变量的赋值:接着,静态变量会被赋予它们的初始值,这可以是...

    类初始化和实例初始化1

    5. 非静态代码块执行:执行类中的非静态初始化块,这些代码块会按顺序执行。 6. 用户代码:执行构造器中用户定义的代码,完成对象的初始化。 关于方法的重写(Override): 在Java中,我们可以覆盖父类的非final、...

    java入门教程:数据类型_类变量(静态变量).docx

    在Java中,类变量,又称为静态变量,是一种特殊的数据成员,它与实例变量(非静态变量)有所不同。 类变量使用`static`关键字进行声明,这意味着它们是属于类的,而不是类的任何特定实例。在类中声明静态变量时,...

    final变量.

    变量初始化优先于任何方法,包括构造函数。静态变量在类加载时初始化,然后是静态代码块,接着是非静态变量和非静态代码块,最后是构造函数。 6. **内联优化和多态**: `final`方法能够被编译器进行内联优化,...

    java_中的_final_变量[文].pdf

    静态变量在类加载时初始化,非静态变量在实例化对象时初始化。静态变量的初始化顺序先于非静态变量,而构造函数的执行顺序遵循继承链,从父类到子类。 多态是面向对象编程的一个核心概念,它允许父类类型的引用指向...

    java程序员经典笔试面试题汇总

    - 子类的非静态变量初始化 - 子类的非静态初始化块 - 子类构造器 综上所述,Java 中类的初始化顺序遵循一定的规则,包括静态成员优先于非静态成员,父类成员优先于子类成员的原则。这些基础知识对于理解Java程序...

    Java中的静态变量静态方法静态块与静态类.docx

    - 在静态方法内部,只能访问静态变量和其他静态方法,无法访问非静态成员。 - 静态方法常被用作工具方法,提供一些通用功能。 - **示例**: ```java public class StaticExample { private static int count;...

    C++和Java初始化顺序的比较代码

    2. 非静态数据成员:在构造函数初始化列表中,成员变量按照它们在类声明中的顺序被初始化。即使初始化列表中的顺序不同,也会按照声明的顺序进行。 例如: ```cpp class MyClass { public: int a; int b; static...

    java对象初始化代码详解

    5. 实例变量初始化:一共有三种方式对实例变量进行初始化:①定义实例变量时指定初始值②非静态初始化块中对实例变量进行初始化③构造器中对实例变量进行初始化。 二、实例变量初始化方式 实例变量初始化方式有三...

    Java面向对象2.docx

    `final`用于禁止继承或修改,`static`用于声明类成员(如静态变量和静态方法),`synchronized`用于方法或代码块的线程同步,`native`标识本地方法(用其他语言如C++实现的方法体),以及可选的`static`修饰初始化块...

    java面向对象之final修饰符.docx

    对于实例变量,可以在非静态初始化块、声明时或构造器中指定初始值,但不能在多个地方重复赋值。 ```java public class FinalVariableTest { final int a = 6; // 合法,直接在声明时赋值 final String str; // ...

    java核心程序,详细注释

    静态初始化块(用`{}`包裹的代码块,前有`static`修饰)也会在这个阶段运行,用于执行更复杂的静态变量初始化逻辑。 对象初始化则发生在创建新对象时。当使用`new`关键字创建一个对象时,Java会调用构造函数来初始...

    java基础知识精华总结

    静态变量初始化 在Java中,静态变量(`static`)的初始化通常发生在类加载时,即当类首次被使用时。静态变量的初始值取决于其数据类型: - 对于原始数据类型(如`int`),默认值为0。 - 对象类型的静态变量将被初始...

    final关键字详细解读

    有三种方式初始化final成员变量:直接在声明时进行显示初始化、在构造方法中初始化(非静态常量)、在实例代码块中初始化(非静态常量)。注意,这三种方式只能选择其一。final成员变量常用于表示不可变的状态信息。...

    JAVA面试题解惑系列114页.pdf

    2. **非静态变量与初始化块**:接着,当创建类的实例时,会初始化非静态变量(instance fields)并执行非静态初始化块(instance initialization blocks)。这些步骤在每个对象创建时都会进行。 3. **构造器**:...

    Java程序设计实验11-static、super、final、代码块.docx

    - 实例块(也称为构造代码块)在创建对象时执行,它们可以放在类的任何地方,用于初始化非静态变量。 - 静态块在类加载时执行,通常用于初始化静态变量或执行一次性的设置任务。 实验内容将涵盖这四个主题,让...

    java中final和static的区别

    1. final 修饰变量:表示该变量一旦被初始化,程序无法修改变量的值,该变量变成了一个常量。注意,系统不会默认为它初始化,只有两种初始化的方式:在定义处和构造方法中对其初始化。 2. final 修饰方法中的参数...

Global site tag (gtag.js) - Google Analytics