- 浏览: 253414 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (232)
- 瞎扯两句 (8)
- 操作系统 (5)
- 工作笔记 (33)
- 设计模式 (1)
- java (57)
- Java IDE (7)
- hibernate (17)
- oracle (46)
- ms sql (2)
- spring (9)
- struts2 (0)
- javascript (16)
- java_code (2)
- java之集合 (2)
- java之线程 (4)
- java之IO (4)
- java之虚拟机 (6)
- java之异常 (0)
- EJB (4)
- XML (4)
- 数据结构-算法 (2)
- 架构设计 (5)
- 配置信息 (2)
- 阅读笔记 (6)
- IT专业英语 (1)
- PI (0)
- 单元测试 (1)
最新评论
java初始化顺序
1在new B一个实例时首先要进行类的装载。(类只有在使用New调用创建的时候才会被java类装载器装入);
2,在装载类时,先装载父类A,再装载子类B
3,装载父类A后,完成静态动作(包括静态代码和变量,它们的级别是相同的,安装代码中出现的顺序初始化)
4,装载子类B后,完成静态动作。
类装载完成,开始进行实例化
1,在实例化子类B时,先要实例化父类A
2,实例化父类A时,先成员实例化(非静态代码)
3,父类A的构造方法
4,子类B的成员实例化(非静态代码)
5,子类B的构造方法
总结
初始化一般是针对类的成员来说的,所以那个函数根本不存在初始化的问题,只存在初次被调用的问题!
-->先初始化父类的静态代码(包括代码段,静态变量 按代码顺序初始化)
-->初始化子类的静态代码(包括代码段,静态变量 按代码顺序初始化)
-->初始化父类的非静态代码(普通变量, 按代码顺序初始化)
-->初始化父类构造函数
-->初始化子类非静态代码(普通变量, 按代码顺序初始化)
-->初始化子类构造函数
1在new B一个实例时首先要进行类的装载。(类只有在使用New调用创建的时候才会被java类装载器装入);
2,在装载类时,先装载父类A,再装载子类B
3,装载父类A后,完成静态动作(包括静态代码和变量,它们的级别是相同的,安装代码中出现的顺序初始化)
4,装载子类B后,完成静态动作。
类装载完成,开始进行实例化
1,在实例化子类B时,先要实例化父类A
2,实例化父类A时,先成员实例化(非静态代码)
3,父类A的构造方法
4,子类B的成员实例化(非静态代码)
5,子类B的构造方法
总结
初始化一般是针对类的成员来说的,所以那个函数根本不存在初始化的问题,只存在初次被调用的问题!
-->先初始化父类的静态代码(包括代码段,静态变量 按代码顺序初始化)
-->初始化子类的静态代码(包括代码段,静态变量 按代码顺序初始化)
-->初始化父类的非静态代码(普通变量, 按代码顺序初始化)
-->初始化父类构造函数
-->初始化子类非静态代码(普通变量, 按代码顺序初始化)
-->初始化子类构造函数
发表评论
-
servletcontext 的获取
2013-05-12 20:10 477容器在初始化servlet时,会为其注入servletconf ... -
取得下一个sequence。 getNextInterval
2013-03-15 11:47 9391. 初始sequence值放置于数据库。 2. 启动时产 ... -
java 脚本,编译与注解处理
2013-02-05 10:04 8491.java中支持脚本调用 通过脚本引擎来执行。 Obj ... -
java 安全管理器
2013-02-04 11:24 8281.在java语言实现中,扩展和系统加载器都是java实现的, ... -
RMI 底层实现
2013-01-28 16:43 9141. server端代码: Registry regist ... -
Java获取当前路径
2013-01-22 18:12 895无论是抽象路径名还是路径名字符串,都可以是绝对 路径名或相对 ... -
java1.5 新特性
2013-01-10 16:50 762"JDK1.5"的一个重要主题就是通过新增 ... -
import static静态导入
2013-01-10 12:12 848import static静态导入是JDK1.5中的新特性。一 ... -
类加载器加载的类的访问权限问题
2013-01-04 15:34 10501.父加载器加载的类不能访问子加载器加载的类。 (向下可见性) ... -
java 内部类总结
2012-12-28 12:31 744主要从分类和使用情境来看 1. 普通内部类。 位置: 在 ... -
Java多线程之Condition接口的实现
2012-11-26 17:03 933在实际中一个lock可产生多个Condition对象。个人认为 ... -
java线程同步原理(lock,synchronized)
2012-11-26 14:26 997一。 java线程同步原理 java会为每个object对象分 ... -
总结下java中abstract,interface,final,static,加深理解
2012-11-16 17:16 886一,抽象类:abstract 1,只要有一个或一个 ... -
为什么interface的变量必须是public final static的
2012-11-16 17:15 1017public 感觉是因为Java对接口的要求是所有类都可以实现 ... -
stack在排序的应用
2012-10-22 17:04 718对于list, 可用Collections的静态方法 Coll ... -
随机访问文件RandomAccessFile 与 内存映射文件MappedByteBuffer
2012-09-25 14:59 1572RandomAccessFile RandomAccessF ... -
Java 服务器端支持断点续传的源代码
2012-09-25 14:44 4035Java 服务器端支持断点续传的源代码【支持快车、迅雷】(仅支 ... -
new File(String parent,String child)
2012-08-22 23:00 1167//user_dir:E:\workspace\javates ... -
System.getProperty
2012-08-22 22:07 911System.getProperty(String name) ... -
JAVA中SERIALVERSIONUID的解释
2012-08-01 12:05 661serialVersionUID作用: 序列化 ...
相关推荐
在探讨继承中子类与父类构造函数及静态块的执行顺序时,我们首先需要理解构造函数和静态块的基本概念及其在Java中的作用。构造函数主要用于初始化对象的状态,而静态块则是在类加载到内存中时执行的一段代码,通常...
3 构造函数,(创建对象时执行完2后再执行构造函数,不管构造函数是public还是private) */ public class Test{ public Test(){ System.out.println("类Test构造方法被执行 6"); } { System.out.println("类...
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
在 `Table` 类和 `Cupboard` 类的构造器中,可以看到静态变量的初始化会导致它们关联的实例方法 `f()` 被调用。例如,`Table` 类的构造器在创建静态变量 `b2` 时调用了 `b2.f(1)`,这将打印出 "f(1)"。同样,`...
特别是当涉及到静态域(静态变量)、非静态域(实例变量)、静态块、非静态块以及构造函数时,明确它们的初始化顺序有助于避免潜在的编程错误。 根据题目提供的内容,我们将重点讨论这些概念以及它们之间的相互关系...
在Java编程语言中,了解静态代码块和构造方法的执行顺序是至关重要的,尤其是在处理类的初始化和对象的创建时。下面将详细解释这些概念及其执行逻辑。 首先,静态代码块(也称为静态初始化器)是由`static`关键字...
在深入探讨Java类的完整构造执行顺序之前,我们先来明确一下Java中构造函数与类初始化的基本概念。构造函数在创建对象时被调用,用于初始化该对象的状态。而类初始化则是指在类首次被使用时,JVM执行的一系列初始化...
`B`类的`plus`变量也会被初始化,导致`A`类的构造函数执行,进一步影响`A`类的静态变量。这个过程会导致一些复杂的交互,需要仔细分析代码来确定确切的顺序和值。 总的来说,理解Java中静态变量的初始化顺序对于...
在 Java 中,static 块和构造函数的执行顺序是非常重要的。通常情况下,static 块在类加载时执行,而构造函数在类实例化时执行。下面是一个简单的示例代码: ```java public class WebSerivceTest { private ...
在 Java 中,静态变量的初始化过程可以被分为三个阶段:静态初始化、非静态初始化和执行构造函数。静态初始化是指在类加载时对静态变量的初始化。非静态初始化是指在实例创建时对实例变量的初始化。执行构造函数是指...
通过这两个示例,我们可以看到,非静态成员变量的初始化顺序是:成员变量初始化语句>成员变量初始化块>构造函数。 而对于静态成员变量,它们是在类加载时初始化的。例如,我们可以定义一个静态成员变量static ...
在Java中,静态初始化块的执行顺序非常重要,因为它会影响类的静态变量和静态方法的初始化。在实际开发中,了解静态初始化块的执行顺序非常重要,否则可能会导致类的静态变量和静态方法不能正确地初始化。 下面是一...
通过这个“14_构造函数”视频教程,观众应该能够理解并掌握如何在Java中有效地使用构造函数来创建和初始化对象,这对于编写高质量的Java代码至关重要。学习这些基础知识,开发者可以更好地理解和实现面向对象编程的...
这一切都是在构造函数执行之前,变量的真正初始化是在构造函数中执行。 Java 变量初始化的时机 Java 变量初始化的时机可以分为两类:实例变量初始化和类变量初始化。 实例变量初始化 实例变量初始化可以在三个...
3. **静态初始化块与构造函数**:静态初始化块和构造函数有明显的区别。构造函数是在创建对象时执行,而静态初始化块是在类加载时执行。两者不会相互影响,它们各自负责不同的初始化任务。 4. **多线程环境**:如果...
需要注意的是,静态初始化块只在类被加载时执行一次,而实例初始化块(构造函数)则会在每次创建类的实例时执行。静态变量的初始化是在类加载时完成的,而实例变量的初始化则在对象创建时进行。 在实际开发中,对...
它的执行顺序早于类的非静态初始化块和构造函数。当类第一次被加载时,静态块按照它们在代码中的顺序依次执行。 下面是一个简单的静态块示例,展示了如何使用静态块初始化静态变量: ```java public class ...
2. 对象创建时,先执行类中的非静态代码块,再调用构造函数。 通过上述分析,我们可以清楚地看到`static`关键字在Java中是如何被运用的,及其在变量、方法和代码块管理上的独特优势。理解这些概念,对于编写高效、...
本资源摘要信息中,我们将总结 Java 面试笔试题中的知识点,涵盖 Java 基础、Java 集合框架、Java垃圾回收、Java 方法返回值、Java 对象引用、Java 构造函数执行顺序等方面的知识点。 一、Java 基础知识点 1. Java...
Java构造代码块和静态代码块是Java中两种特殊的代码块,它们的运行机制和应用场景不同,下面将详细介绍Java构造代码块和静态代码块的原理、用法和注意事项。 一、局部代码块 局部代码块是指在某个特定的范围内定义...