调用顺序:
JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的,静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。
先初始化父类的静态代码--->初始化子类的静态代码-->
(创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码--->初始化父类构造函数--->初始化子类非静态代码--->初始化子类构造函数
2 、类只有在使用New调用创建的时候才会被JAVA类装载器装入
3、创建类实例时,首先按照父子继承关系进行初始化
4、类实例创建时候,首先初始化块部分先执行,然后是构造方法;然后从本类继承的子类的初始化块执行,最后是子类的构造方法
5、类消除时候,首先消除子类部分,再消除父类部分
1. 父类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
2. 子类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
3. 父类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
4. 父类构造方法
5. 子类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
6. 子类构造方法
例子:
public abstract class Base {
//5、初始化父类的非静态代码
public int age = getNumber(100);
// 静态成员变量和静态初始化块级别相同 所以按照在代码中的顺序依次执行
// 1、初始化父 静态成员变量 static int sage
static int sage = getNumber(50);
// 2、初始化父 静态初始化块 static
static {
System.out.println("base static block");
}
{
System.out.println("base nonstatic block");
}
//6、初始化父类构造函数
Base()
{
System.out.println(age);
System.out.println("base start");
draw();// 会调用子类覆盖后的方法
System.out.println("base end");
}
static int getNumber(int base) {
System.out.println("base.getNumber int" + base);
return base;
}
public void draw() {
System.out.println("base.draw");
}
}
public class InitializeOrder extends Base {
//7、初始化子类的非静态代码
public int age = getNumber(1001);
//8、初始化子类的非静态代码
private int _radius = getNumber(10);
//3、初始化子 静态成员变量 static int sage
static int sage = getNumber(250);
//4、初始化子 静态初始化块 static
static {
System.out.println("subclass static block");
}
{
System.out.println("subclass nonstatic block");
}
//9、初始化子类构造函数
InitializeOrder(int radius) {
_radius = radius;
System.out.println(age);
System.out.println("initializeOrder initialized");
}
public void draw() {
System.out.println("initializeOrder.draw " + _radius);
}
/** */
/**
* @param args
*/
public static void main(String[] args) {
new InitializeOrder(1000);
}
}
分享到:
相关推荐
java编程思想-初始化与清理了解this之后,你就能更全面地理解“静态(static)方法”的含义。静态方法就是没有this的方法。在“静态方法”的内部不能调用“非静态方法”,反过来倒是可以的。而且你可以在没有创建...
Java的初始化与清理是编程过程中至关重要的环节,它关乎到程序的正确运行和资源的有效管理。本文将深入探讨Java中的初始化过程,包括对象的构造器初始化以及类成员的初始化顺序,同时也会涉及Java的垃圾回收机制,即...
Java初始化和清理是Java语言中非常重要的两个过程,它们确保了Java程序的正确运行和资源的有效管理。Java的初始化包括类的加载、连接和初始化三个过程,而清理则主要指垃圾回收机制。 首先,Java初始化的主要特性...
初始化和清理是编程中至关重要的概念,特别是在Java这样的高级编程语言中。本节主要讨论了Java中的构造器、成员初始化、对象创建过程、垃圾回收以及垃圾回收器的工作原理。 4.1 构造器 构造器是Java中用于初始化新...
本章“第五章 初始化与清理”可能详细探讨了这两个重要概念,特别是在软件工程和系统设计中的应用。下面将根据标题和描述,结合常见的初始化与清理实践,来阐述相关知识点。 初始化是程序启动时执行的一系列操作,...
Java编程思想中的初始化与清理是编程过程中的关键环节,它涉及到类的实例化以及对象生命周期的管理。在Java中,构造器(Constructor)是确保对象初始化的重要工具。 1. **构造器确保初始化** - 构造器是与类同名的...
《Java编程思想》第五章主要讨论的是对象的初始化与清理,包括构造器的使用、方法重载以及默认构造器的概念。下面将详细阐述这些知识点。 ### 一、构造器确保初始化 1. **为什么要引入构造器**:在Java中,构造器...
在Java程序设计中,初始化和清理是至关重要的概念,它们涉及到对象的生命周期管理和资源的有效利用。本章将探讨几个关键的方面,包括构造函数、函数重载、成员初始化以及垃圾回收机制。 首先,构造函数是Java中用于...
### Java编程思想学习笔记知识点...以上是《Java编程思想》学习笔记中关于操作符、控制语句、对象、初始化与清理等关键知识点的总结。通过理解这些基础概念和技术细节,可以更好地掌握 Java 编程的核心原理和技术实践。
本工具包专注于数据库的初始化、清除、备份与恢复功能,对于任何依赖于数据库的应用来说,这些都是核心的操作需求。以下是对这些关键知识点的详细阐述: 1. **数据库初始化**:数据库初始化是指在新安装或重新配置...
6. **清理与重建**:如果以上步骤未能解决问题,可以尝试清理并重新构建项目,或者删除项目中的`.idea`和`build`目录,然后重启Android Studio并重新导入项目。 7. **日志调试**:查看Logcat中的错误信息,这将提供...
初始化 2.清理 1.初始化 虽然自己的Java基础还是比较良好的..但是在解读编程思想的时候还是发现了许多的细节问题自己并没有完全的掌握.既然是研磨,那么应该更加的细致. i.构造方法的重载. 首先说明...
3. 数组初始化与内存分配 数组初始化时,Java会为数组的所有元素分配内存,并根据初始化列表为每个元素赋予初始值。对于未初始化的数组,如`int[] b = new int[5];`,虽然在堆上分配了足够的空间,但元素的初始值...
**JEECG 3.6 MYSQL 初始化问题详解** JEECG是一款基于代码生成器的Java快速开发平台,它集成了大量的优秀开源项目,为开发者提供了一整套的企业级解决方案。在部署和使用JEECG 3.6的过程中,MySQL数据库的初始化是...
在Java编程语言中,对象的创建、初始化以及引用的理解是至关重要的。首先,我们要明确对象、引用和堆栈(Stack)与堆(Heap)的区别。 1. **对象**:对象是Java中的核心概念,它是类的实例。在Java中,当我们使用`...
本篇文章将深入探讨“ejbCreate”函数在EJB中的作用以及如何使用它来初始化EJB实例。 ejbCreate函数是EJB 2.x时代的传统生命周期方法之一,用于在Bean实例创建时进行初始化。在EJB 3.x及更高版本中,这种特定的...
初始化Pinpoint库主要涉及到的是对分布式应用性能监控系统Pinpoint的安装和配置,特别是与HBase数据库相关的操作。HBase是Apache的一个高可靠性、高性能、分布式的列式存储系统,常用于海量数据的存储,而Pinpoint则...
Bean的生命周期包括初始化、正常运行以及销毁三个阶段。在这些阶段,Spring允许开发者定义自定义的行为,以便在特定时刻执行必要的操作。下面将详细介绍如何通过不同方式定义Spring Bean的初始化和销毁回调方法。 *...
4.4 Foreach语法 4.5 return 4.6 break和 continue 4.7 臭名昭著的“goto” 4.8 switch 4.9 总结 第5章 初始化与清理 5.1 用构造器确保初始化 5.2 方法重载 5.2.1 区分重载方法 5.2.2 涉及基本类型的重载 5.2.3 以...
初始化和清理 操作符与控制程序流 初始化与清理 - 涉及程序安全 构造器使用与初始化 方法重载 this关键字 终结处理与垃圾回收 初始化:成员、构造器、数组