`
冰红茶
  • 浏览: 14114 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

类的加载顺序

 
阅读更多

package com.fea.test.init;

public class Father {
	static{
		System.out.println("Father_静态初始化块");
	}
	public static String static_str="Father_静态字段";
	{
		System.out.println("Father_初始化块");
	}
	public String str="Father_字段";
	public Father(){
		System.out.println("Father_构造函数Father()");
	}
	public Father(String str){
		System.out.println("Father_构造函数Father(String str)");
	}
}


******************************************************************************

package com.fea.test.init;

public class Child extends Father {
	static{
		System.out.println("Child_静态初始化块");
	}
	public static String static_str="Child_静态字段";
	{
		System.out.println("Child_初始化块");
	}
	public String str="Child_字段";
	public Child(){
		System.out.println("Child_构造函数Child()");
	}
	public Child(String str){
		System.out.println("Child_构造函数Child(String str)");
	}
	public static void main(String[] args) {
		new Child();
		/**
		 *
		 *                ***************************
		 *                *						    *
		 *                *1.父类的静态变量或者静态块    *
		 *                *2.父类的静态变量或者静态块    *
		 *                *3.父类的静态变量或者静态块    *
		 *                *..........			    *
		 *                **********|****************
		 *							|
		 *				  ***************************
		 *                *						    *
		 *                *4.子类的静态变量或者静态块    *
		 *                *5.子类的静态变量或者静态块    *
		 *                *6.子类的静态变量或者静态块    *
		 *                *..........			    *
		 *                **********|****************
		 *							|
		 *				  ***************************
		 *                *						    *
		 *                *7.Object的初始化,          *
		 *                *8.父类的非静态变量或者代码块  *
		 *                *9.父类的非静态变量或者静态块  *
		 *                *10.父类的非静态变量或者静态块 *
		 *                *..........               *
		 *                *11父类的构造函数(在子类构造  *
		 *                *函数中调用的父类构造函数,    *
		 *                *默认为无参构造函数)         *
		 *                **********|****************
		 *							|
		 *				  ***************************
		 *                *						    *
		 *                *12.子类的非静态变量或者代码块 *
		 *                *12.子类的非静态变量或者静态块 *
		 *                *13.子类的非静态变量或者静态块 *
		 *                *..........               *
		 *                *14子类的构造函数            *
		 *                **************************
		 *
		 *
		 *
		 *
		 *
		 *
		 *
		 *继承体系的类加载,先加载父类的静态变量或者静态块,然后加载子类的静态变量或者静态块,
		 *在父类或者子类中,会按照静态变量或者静态块在类中的先后顺序而先后加载
		 *静态变量或者静态块初始化以后,会初始化父类的非静态变量或者非静态代码块(顺序和它们
		 *在类中的出现的先后顺序一样)初始化父类的构造函数,然后是子类的.
		 *
		 *
		 */

	}
}

分享到:
评论

相关推荐

    Tomcat启动时类加载顺序

    ### Tomcat启动时类加载顺序详解 #### 一、引言 Apache Tomcat是一款开源的Servlet容器,主要用于部署Java Web应用程序。它支持最新的Servlet、JSP等规范,并且以其轻量级、简单易用的特点而受到开发者的青睐。在...

    Java虚拟机类加载顺序

    ### Java虚拟机类加载顺序详解 #### 一、引言 在Java开发中,了解类是如何被加载到Java虚拟机(JVM)中的至关重要。本文将详细介绍JVM中的类加载顺序及其背后的原理,帮助读者理解这一过程,并掌握如何利用类加载...

    websphere6,7上修改类装载顺序为应用程序优先

    WebSphere应用服务器默认的类加载顺序是先从系统类加载器(System ClassLoader)开始,然后是扩展类加载器(Extension ClassLoader),最后是应用程序类加载器(Application ClassLoader)。这种机制可能导致应用中...

    详解java中继承关系类加载顺序问题

    Java继承关系类加载顺序问题详解 在Java中,类加载顺序问题是开发中经常遇到的问题之一。今天,我们来详解Java中继承关系类加载顺序问题,包括类加载顺序、构造方法调用顺序、静态代码块执行顺序等。 首先,让我们...

    struts2配置文件加载顺序

    这些文件会按照JAR包的类加载顺序进行加载。 3. **全局属性配置**:然后是`struts.properties`,框架会读取其中的全局配置信息。 4. **主配置文件**:之后是用户定义的`struts.xml`。这个文件通常包含对整个应用的...

    Tomcat加载顺序

    理解Tomcat的类加载顺序对于避免类加载冲突至关重要。例如,在上述内容中提到了不同版本的`mail.jar`可能导致的`NoSuchProviderException`异常。这是因为Tomcat默认会按照上述顺序查找类,当多个目录下存在相同或...

    类加载顺序的代码执行结果

    先静态代码块,然后构造代码块,再是构造方法,然后方法里面的代码块按顺序执行。 子类继承父类的时候,先执行父类的静态代码块,然后子类的静态代码块,然后父类的构造代码块和构造方法,再是子类的构造代码块和...

    weblogic类加载过程简述

    可以通过调整类加载顺序、设置类加载器优先级、使用命名空间隔离等手段来解决。 10. **类加载器调试** 为了帮助开发者调试类加载问题,WebLogic提供了详细的日志和跟踪选项,可以通过修改`weblogic.log.File`和`...

    Java中类的加载顺序剖析(常用于面试题)

    Java中的类加载顺序是编程面试中常见的问题,它涉及到Java虚拟机(JVM)的工作机制。下面我们将详细探讨这个问题,并基于提供的代码实例进行解析。 首先,我们了解类加载的基本顺序: 1. **静态变量和静态初始化块...

    Java类加载顺序笔试题-Nicobar:尼科巴

    Java类加载顺序笔试题 Nicobar:Java 的动态脚本和模块加载器框架 Nicobar 是一个 Java 动态脚本框架,由强大的基于 . 脚本可以是源代码,用 JVM 兼容语言(如 Groovy)编写,也可以是编译后的字节码,以 .class ...

    tomcat 类加载机制 —— ClassLoader

    在Tomcat中,我们可以通过配置`catalina.properties`文件和`server.xml`文件来调整类加载策略,例如设置自定义的类加载顺序或启用共享类加载器。 此外,Tomcat还支持热部署,即在不重启服务器的情况下更新Web应用的...

    tomcat8改了jar加载顺序的踩坑记录

    开发者应当注意,即使使用了相同版本的Tomcat和JAR包,也可能因为类加载顺序的改变而导致不同的行为。为了避免这类问题,建议保持项目依赖的一致性,尽量避免使用自定义的类加载器或重写库中的类。同时,使用版本...

    Java类加载机制.pdf

    类加载机制涉及类加载顺序、类加载器的体系结构、类加载过程以及双亲委派模型等核心概念。架构师或高级开发人员必须深刻理解这些知识点,以便在进行大型互联网平台架构设计和开发时做出正确的决策。 首先,类加载指...

    java面试题静态加载顺序构造方法

    java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); static{ System.out.println("tttt"); } X(){ System....

    Java类加载机制学习1

    这时,自定义类加载器如`ParentLastClassLoader.java`可以帮助我们实现这个目标,通过改变类加载顺序,使得新的类加载器可以加载新的类而不影响旧的代码。 线程上下文类加载器(Thread Context ClassLoader)是Java...

    Java 类在 Tomcat 中是如何加载的(过程分析)

    4. **类加载顺序** 当Tomcat加载类时,它遵循以下顺序: - 使用Bootstrap类加载器尝试加载。 - 使用System类加载器尝试加载。 - 使用Webapp类加载器加载`WEB-INF/classes`下的类。 - 使用Webapp类加载器加载`...

    spring加载顺序讨论

    在Spring框架中,加载顺序是理解应用程序启动过程的关键部分,涉及到bean的实例化、初始化以及依赖注入等多个环节。本文将详细探讨Spring加载顺序,并结合`@PostConstruct`、`构造方法`以及`@Autowired`等关键注解...

    Java类加载顺序笔试题-KeePassJava2:KeePass密码数据库的JavaAPI-读/写2.x,读1.x

    Java类加载顺序笔试题KeePassJava2 大师: 发展: 用于与著名的 Windows 密码保险箱兼容的数据库的 Java 7 API。 迄今为止的功能: 读写 KeePass 2.x 格式 Keepass 2.x 密码和密钥文件凭证 读取 KeePass 1.x 格式...

    java 继承关系的加载顺序

    了解Java中继承关系的加载顺序对于理解和优化程序性能至关重要。以下是对这个主题的详细阐述: 1. 类加载机制 Java的类加载过程分为三个主要阶段:加载、验证、准备、解析和初始化。当一个类被首次引用时(例如...

Global site tag (gtag.js) - Google Analytics