`
jiangshaolin
  • 浏览: 57569 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java中final类型的初始化问题

    博客分类:
  • java
阅读更多
今日读到开源项目中一段源代码,发现对final类型的field在某方法中附值了,感觉不对劲,于是查阅了相关资料,总结如下:

1.  final修饰的成员变量没有默认值
2.  final初始化可以在三个地方
    (1)声明的时候初始化
    (2)构造函数里初始化
    (3)要是没有static修饰的话可以在非静态块里初始化,要是有static修饰的话可以在静态块里初始化
3.  使用final成员前要确保已经初始化,如果没初始化,或者初始化多次,则无法通过编译。
分享到:
评论
3 楼 SanyKing 2011-03-08  
^_^好像是java入门书籍里的
2 楼 freish 2011-03-07  
这不是java入门书籍里的么
1 楼 akunamotata 2011-03-05  
你想说明什么?只看到你对final的总结...

相关推荐

    java程序初始化顺序

    在Java编程语言中,程序初始化的顺序是一个关键概念,它涉及到类加载、对象创建以及执行流程的安排。了解这些顺序对于编写高效、无错误的代码至关重要。以下是对Java程序初始化顺序的详细说明: 1. **类加载阶段**...

    Java中final的深度剖析

    final关键字也可以用于方法内的局部变量,这使得变量一旦初始化就不能再次赋值。例如: ```java public static String testMethod(final String suffix) { final String key = "prev" + suffix; return key; }...

    java中final和static的区别

    注意,系统不会默认为它初始化,只有两种初始化的方式:在定义处和构造方法中对其初始化。 2. final 修饰方法中的参数(包括成员方法、构造方法、抽象方法):该参数只读,不可以修改其值。 3. final 修饰类(但不...

    Java中的final关键字

    - `final`修饰的实例变量(非静态)意味着它必须在构造函数中初始化,之后不能更改。如果未在构造函数中初始化,编译器会报错。 2. **final方法** - 当一个方法被声明为`final`时,不允许子类覆盖该方法。这确保...

    java中final类型等的应用

    - 当用于声明变量时,表示该变量的值一旦被初始化后就不能改变。 - 当用于声明方法时,表示该方法不能被子类重写。 - 当用于声明类时,表示该类不能被继承。 #### 3.2 使用示例 ```java public class Example {...

    java中final和static的总结

    3. **静态初始化块**:静态初始化块在类加载时执行,用于初始化静态变量。 4. **静态导入**:可以使用`import static`导入类的静态成员,避免每次使用时都需要带上类名。 结合`final`和`static`,我们可以创建常量...

    java初级视频教程系列之-java初始化

    1. **基本类型变量初始化**:Java中的基本类型(如int, double, boolean等)会根据其类型自动赋予默认值。例如,int类型的变量默认为0,boolean类型的变量默认为false。 2. **对象引用初始化**:对象引用在声明时...

    java中final与static的用法

    在Java编程语言中,`final`与`static`是两个非常关键且常用的关键字,它们各自具有独特的功能和用途,可以极大地增强代码的稳定性和可维护性。下面将详细解析这两个关键字的用法及其在Java中的重要性。 ### 一、`...

    深入理解Java中的final关键字_动力节点Java学院整理

    1. 对于成员变量,`final` 必须在声明时初始化或在构造器中初始化。 2. 局部变量必须在声明时立即赋值。 3. 匿名类中的所有变量必须是 `final` 的。 4. `final` 方法不能被重写。 5. `final` 类不能被继承。 6. 未...

    深入理解final变量的初始化

    一旦`final`变量被初始化,它的值将对所有线程可见,且不会受到并发问题的影响。这使得`final`变量成为实现线程安全的常用工具。 总结来说,`final`变量的初始化必须在定义时、构造函数中或者初始化代码块中进行,...

    java中final关键字和static关键字详细用法

    Java中的`final`和`static`关键字是编程中非常重要的两个修饰符,它们分别用于不同的场景,以确保代码的稳定性和高效性。 首先,`final`关键字主要用于表示不可变性。它可以用来修饰类、方法和变量。对于类,如果一...

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

    1. 基本类型的静态字段和引用类型的静态字段(如果它们是常量,即final且已初始化):这些字段在类加载时按声明顺序初始化。 2. 静态初始化块:当类第一次被加载时执行,按块的顺序执行。 3. 实例字段:在构造器内部...

    解析Java虚拟机中类的初始化及加载器的父委托机制共14页

    本文将深入探讨Java虚拟机中的类初始化以及加载器的父委托机制。 一、类的加载 类加载是JVM启动时或运行中根据需要动态加载类到内存中的过程。这个过程分为三个阶段:加载、链接和初始化。 1. 加载:JVM通过类...

    java代码初始化流程研究

    最后,工具在Java代码初始化中的作用不容忽视。例如,IDE如IntelliJ IDEA和Eclipse可以帮助开发者调试和理解初始化流程,通过断点、变量查看等功能,可以直观地观察到类加载和对象创建的过程。另外,一些分析工具如...

    Static和Final修饰类属性变量及初始化

    1.static修饰一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为private私有,那么只能在类内部使用.

    Java中final共2页.pdf.zip

    当应用于变量时,它表示该变量一旦被初始化后就不能再改变其值。例如: ```java final int constant = 10; // 声明一个整型常量 constant = 20; // 编译错误,不能重新赋值 ``` 在类层次结构中,`final`关键字也...

    java final变量详解

    在 Java 中,变量的初始化顺序也很重要。变量的初始化次序优于任何方法,甚至在构造方法的前面。如果变量是原始类型,那么它得到一个标准的原始类型的初始值,如果是一个对象的引用,除非你创建了一个新的对象给这个...

    Java关键字final、static使用总结

    static 块是用来初始化静态变量的,JVM 会在类加载时执行 static 块。 final 和 static 关键字都是 Java 编程语言中的重要概念,了解它们的使用方法和限制对编写高效、可靠的 Java 程序非常重要。

    Java中final的用法.doc

    如果`final`变量在声明时没有初始化,那么在后续的代码中必须为其赋值,否则编译器将会报错。 2. **静态常量**: 当`final`关键字与`static`一起使用时,创建的是类级别的常量,如文档中的`I2`和`I3`。这些常量在...

    关于Java中final的深度剖析.pdf

    final变量可以在编译时被初始化,也可以在运行时被初始化,但是一旦被初始化,final变量的值就不能被修改了。使用final变量可以提高代码的可读性和可维护性,因为它可以避免不必要的逻辑错误。 例如,在数学计算中...

Global site tag (gtag.js) - Google Analytics