`

类的加载顺序

    博客分类:
  • J2SE
阅读更多
/**
 * 父类 
 *
 */
public class Parent 
{
	private int ix = 50;
	private static int iz = getNext(30);
	{
		System.out.println("Parent的初始化块");
		int x = 100;
		int y = getNext(100);
	}
	
	static
	{
		System.out.println("Parent的静态初始化块");
		int sx = 100;
		int sy = getNext(100);
	}
	
	public Parent()
	{
		System.out.println("Parent的构造方法被调用");
	}
	
	public void display()
	{
		System.out.println("Parentde的display方法被调用");
		System.out.print("ix=" + this.ix);
		System.out.println("; iz=" + iz);
		dispA();
	}
		
	public static int getNext(int base)
	{
		System.out.println("Parent的getNext(int base)被调用");
		return ++base;
	}
	
	public static void dispA()
	{
		System.out.println("Parent的dispA()被调用");
	}
	
	protected void finalize()
	{
		System.out.println("Parent的销毁方法被调用");
	}
}

public class Child extends Parent
{
	{
		System.out.println("Child的初始化块");
		int bx = 100;
	}
	
	static
	{
		System.out.println("Child的静态化初始化块");
	}
	
	public Child()
	{
		super();
		System.out.println("Child的构造方法被调用");
	}
	
	public static void dispB()
	{
		System.out.println("Child的dispB()被调用");
	}
	
	/**
	 * 当Java进行垃圾回收时,会调用对象的finalize方法
	 */
	protected void finalize()
	{
		System.out.println("Child的销毁方法被调用");
		super.finalize();
	}
}

/**
 * 类的加载顺序
 *
 */
public class ClassInitOrderTest {
	public static void main(String args[])
	{
		System.out.println("不new对象,访问静态方法时的输出:");
		Child.dispB();
		System.out.println();
		System.out.println("new对象,访问非静态方法时的输出:");
		new Child().display();
		//通知虚拟机进行垃圾回收
		System.gc();
	}
}
分享到:
评论

相关推荐

    Java虚拟机类加载顺序

    Java虚拟机类加载顺序,Java虚拟机类加载顺序,Java虚拟机类加载顺序

    Tomcat启动时类加载顺序

    详细说明了tomcat启动过程中 加载资源的顺序

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

    主要介绍了详解java中继承关系类加载顺序问题的相关资料,需要的朋友可以参考下

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

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

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

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

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

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

    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中类的加载顺序剖析(常用于面试题),本文直接给出代码实例和运行结果,给后给出了加载过程总结,需要的朋友可以参考下

    类,对象,成员加载的顺序

    java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序

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

    NULL 博文链接:https://xiaoxinshome.iteye.com/blog/1688607

    Java类加载机制.pdf

    java的类加载机制,类加载顺序,类加载的体系结构,类加载过程,双亲委派模型及机制等相关内容。做架构师或者高级开发,类加载是必须要掌握的内容。

    tomcat详解与启动加载顺序

    tomcat详解与启动加载顺序 tomcat详解与启动加载顺序

    Java中类的加载顺序

    不过我们可以换个直接的问法,如果类A和类B中有静态变量,静态语句块,非静态变量,非静态语句块,构造函数,静态方法,非静态方法,同时类A继承类B,请问当实例化A时,类内部的加载顺序是什么?  当时我也是一头...

    Java类加载器加载类顺序

    java ClassLoader的学习  java是一门解释执行的语言,由开发人员编写好的java源文件先编译成字节码文件.class...  一个类如果要被JVM所调度执行,必须先把这个类加载到JVM内存里,java.lang下有个很重要的类ClassL

    让spring解决控制springboot中bean的加载顺序的问题.docx

    1.为什么需要控制加载顺序 springboot遵从约定大于配置的原则,极大程度的解决了配置繁琐的问题。在此基础上,又提供了spi机制,用spring.factories可以完成一个小组件的自动装配功能。 在一般业务场景,可能你不大...

    详解Java中类的加载顺序

    Java中什么时候类加载,第一次需要使用类信息时加载。类加载的原则:延迟加载,能不加载就不加载。下面这篇文章主要介绍了Java中类的加载顺序,需要的朋友可以参考借鉴,下面来一起看看吧。

    RAD类加载器序列

    有时在WebSphere Application Server喜欢的类加载器的顺序,防止旧版本的相似实例首先提到,因此,我们需要指定的顺序加载类

    Java中类的加载顺序执行结果

    主要介绍了Java中类的加载顺序执行结果的相关资料,需要的朋友可以参考下

    Java类加载初始化的过程及顺序

    今天小编就为大家分享一篇关于Java类加载初始化的过程及顺序,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    css样式加载顺序及覆盖顺序深入理解

    查找一些教材中(w3schools等),只说css的顺序是“元素上的style” > “文件头上的style元素” >“外部样式文件”,但对于样式文件中的多个相同样式的优先级怎样排列,没有详细说明。经过测试和继续搜索,得知...

Global site tag (gtag.js) - Google Analytics