`
kewen342757003
  • 浏览: 145114 次
社区版块
存档分类
最新评论

java 类中初始化顺序学习笔记

阅读更多
一个类中的字段初始化工作进行顺序如下:
1.类中字段自动初始化/制定初始化。
    这两种初始化是同优先级的,如果有多个字段需要初始化,依照定义的先后顺序,依次进行初始化。

private int i; 

这里进行的就是自动初始化,会将i设置成0。(不同类型的变量有不同的默认初始化值)
这个步骤是仅限于类中的字段。如果在方法中使用未经赋值的变量,编译会不通过

private int i = 3;

这里进行的就是制定初始化。

2.进行构造方法初始化。
class Counter 
{
    int i;
    Counter() 
    { 
        i = 7; 
    }
}

这里的i最终被初始化为7,但是其实经过了初始化为0的一步,第二部被构造方法初始化为7。
到此为止,初始化工作全部完成。


3.继承类的构造方法调用顺序
class Art {
Art() {
System.out.println("Art constructor");
}
}
class Drawing extends Art {
Drawing() {
System.out.println("Drawing constructor");
}
}
public class Cartoon extends Drawing {
Cartoon() {
System.out.println("Cartoon constructor");
}
public static void main(String[] args) {
Cartoon x = new Cartoon();
}
}

该程序的输出显示了自动调用:
Art constructor
Drawing constructor
Cartoon constructor
基类会在衍生类访问之前,进行初始化,调用构造方法。 即使我们没有给衍生类加上自己的构造方法,编译器也会自动给出一个默认的构造方法,从最高层的基类依次向下调用所有的构造方法。



Tips:
1.Static字段都在非Static字段之前进行初始化。
2.在类中的任何方法执行之前(包括构造方法),首先会完成所有字段的初始化。
3.方法首次使用的地方也是static 初始化发生的地方。装载的时候,所有static 对象和static 代码块都会按照类代码中的书写顺序依次初始化。
4.static 数据只会初始化一次。
分享到:
评论

相关推荐

    java基础学习笔记

    ### Java基础学习笔记知识点 #### 一、Java学习路线概览 Java学习通常分为几个阶段,从基础到高级,逐步深化。以下是对给定文件中提到的学习路线的详细解析: ##### 第一阶段:Java基础 - **JAVASE**:Java标准版...

    JAVA JDK6学习笔记

    Java JDK6学习笔记是针对Java编程语言初学者和进阶者的一份宝贵资源,它涵盖了Java的基础语法,并通过经典且易于理解的实例进行讲解。在本文中,我们将深入探讨Java JDK6中的关键概念和特性,以帮助你更好地理解和...

    Java虚拟机JVM类加载学习笔记

    而当初始化顺序改变,先初始化静态变量再创建`singleton`实例时,`a`和`b`的值都变为1,这是因为静态变量的初始化发生在类加载后、类初始化前。 理解JVM的类加载机制对于优化程序性能、解决类加载问题以及深入学习...

    java学习笔记.pdf

    ### Java学习笔记知识点总结 #### 第一章:Java语言入门 - **1.1 Java的诞生** Java由Sun Microsystems公司于1995年推出的一种可移植、面向对象的编程语言。最初的设计目标是为消费电子产品提供一种通用编程语言...

    JAVA项目学习笔记

    【JAVA项目学习笔记】 在Java开发中,尤其是在SpringMVC框架下,我们常常会遇到各种注解的使用,这些注解极大地简化了代码并优化了性能。以下是一些关键注解的详细解释: 1. **@Basic**: 这个注解用于指定实体属性...

    java基础(超详细。。学习笔记) 公司内部资料!保密哦!!!

    本篇学习笔记将深入探讨Java的基础概念,主要包括初始化、数据类型、对象、变量类型、集合类、泛型、垃圾回收、方法重载与重写以及static关键字。 首先,初始化是程序执行的起点,涉及到变量的分配和设定初始值。在...

    Java学习笔记 必看经典 pdf

    4. **构造方法**:构造方法用于初始化对象,没有返回值,其名称与类名相同。构造方法在创建对象时自动调用,用于设置初始状态。 #### 结论 Java的面向对象编程提供了强大的工具和概念,帮助开发者构建复杂而灵活的...

    Java学习笔记(必看经典)

    Java中的方法重载(Overloading)是指在同一个类中可以有多个同名方法,但这些方法的参数列表必须不同(参数数量、类型或顺序)。而方法覆盖(Overriding)发生在子类中,子类可以重新定义父类中已有的非私有方法,...

    java实战经典学习笔记

    ### Java实战经典学习笔记知识点概览 #### 一、Java概述及开发环境搭建 - **Java概述** - Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年发布。 - Java的设计目标是“一次编写,到处运行”,这...

    Java学习笔记 经典必看

    ### Java学习笔记经典知识点解析 #### 一、面向对象编程基础 **面向对象**是一种重要的编程范式,它改变了传统的面向过程的编程思路,强调通过对象来组织代码,提高代码的复用性和维护性。 **面向对象的核心概念*...

    CoreJava学习笔记

    ### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...

    java学习笔记 java学习笔记

    Java学习笔记涵盖了许多核心概念,包括面向对象编程的各个方面。以下是对这些知识点的详细解析: 1. **继承中方法的重写**: 当子类重写父类的方法时,子类方法的访问权限必须至少等于或大于父类中对应方法的访问...

    java-servlet学习笔记

    在本篇学习笔记中,我们将深入探讨与Java Servlet相关的知识点,包括其工作原理、生命周期、配置以及实际应用。 首先,了解Servlet的工作原理至关重要。当一个HTTP请求到达服务器,Web容器(如Tomcat)会识别请求的...

    java之jvm学习笔记五(实践写自己的类装载器)

    这个“java之jvm学习笔记五(实践写自己的类装载器)”很可能是对这一主题的详细探讨。 类装载器在Java中的主要职责是动态加载类到JVM中。Java的类装载器分为三个基本层次:启动类装载器(Bootstrap ClassLoader)、...

    java学习笔记

    本资源是 Java 开发者的学习笔记,涵盖了项目管理、权限管理、自动编号、Ajax 访问 servlet、数据库查询、字符串处理、数据加密、jQuery 弹框插件、乱码解决方案、版本控制、流程中加载 Java 事件、页面警告弹框、...

    Java的高手学习笔记

    ### Java的高手学习笔记 #### 面向对象编程基础 **面向对象编程**是一种编程范式,它强调使用“对象”来设计软件。相比于传统的**面向过程编程**,面向对象编程更符合人类的认知习惯,并提供了更好的代码组织方式...

    java入门级学习笔记

    【Java入门级学习笔记】 Java是一种广泛使用的编程语言,尤其对于初学者来说,它具有简单性、面向对象、健壮性、安全性等显著特点。本笔记将深入浅出地介绍Java的学习路径,涵盖从环境配置到核心概念的全方位理解。...

    Java学习笔记+程序员生涯

    ### Java学习笔记+程序员生涯 #### 一、面向对象编程基础 **面向对象与面向过程对比** 面向对象编程(Object-Oriented Programming, OOP)是现代软件开发中的一种核心编程范式,它强调以对象作为基本单位进行设计...

    java私塾学习笔记整理

    ### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...

    Java语言程序设计学习笔记

    在前29章的学习笔记中,你可能会接触到以下内容: 1. **Java环境配置**:安装JDK,设置环境变量PATH和JAVA_HOME,确保能够正确运行Java编译器javac和解释器java。 2. **Hello, World!**:编写第一个Java程序,理解...

Global site tag (gtag.js) - Google Analytics