当前位置:首页 > 开发 > 编程语言 > Java > 正文

java类加载顺序

发表于: 2015-02-06   作者:3213213333332132   来源:转载   浏览:
摘要: package com.demo; /** * @Description 类加载顺序 * @author FuJianyong * 2015-2-6上午11:21:37 */ public class ClassLoaderSequence { String s1 = "成员属性"; static String s2 = "
package com.demo;

/**
 * @Description 类加载顺序
 * @author FuJianyong
 * 2015-2-6上午11:21:37
 */
public class ClassLoaderSequence {
	
	String s1 = "成员属性"; 
	
	static String s2 = "静态属性";
	
	String s3;
	
	static String s4;
	
	static {
		System.out.println("静态代码快");
	}
	
	{
		System.out.println("普通代码快");
	}
	
	public static void test1() {
		System.out.println("静态方法");
	}
	
	public void test2() {
		System.out.println("普通方法");
	}
	
	public static void main(String[] args) {
//		ClassLoaderSequence.test1();
		new ClassLoaderSequence().test2();
	}
}


//运行 ClassLoaderSequence.test1(); 得出结论:类加载会先加载有初始值的静态属性和静态代码快顺序从上至下,最后调用方法。

//运行 new ClassLoaderSequence().test2(); 得出结论:先加载类,new出对象后(构造方法)加载有初始值的属性和代码快(有初始值的静态属性已经加载过所以不会在加载)顺序从上至下,最后调用方法。

//综合结论:
类加载不会加载静态方法、普通方法、普通代码快、没有初始值的属性、有初始值非静态的属性。
类加载会加载静态代码快、有初始值的静态属性,顺序从上至下。

java类加载顺序

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
本文原文为 http://blog.csdn.net/crazycoder2010/article/details/6288732 java ClassLoader的学习
在csdn看到一篇文章,原文地址http://bbs.csdn.net/topics/390973527。 java代码: public class St
问题 昨天有人问我一个类中有静态方法,有静态代码块,普通代码块,构造函数,普通方法,静态方法,
Java类加载器加载类顺序  数组就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同
java ClassLoader的学习 java是一门解释执行的语言,由开发人员编写好的java源文件先编译成字节码文
如果类A和类B中有静态变量,静态语句块,非静态变量,非静态语句块,构造函数,静态方法,非静态方
这其实是去年校招时我遇到的一道阿里巴巴的笔试题(承认有点久远了-。-),嗯,如果我没记错的话,当
加载顺序为 父类静态定义初始化 子类静态定义初始化 父类定义初始化 父类构造方法 子类定义初始化
JVM学习笔记(二)------Java代码编译和执行的整个过程 JVM学习笔记(三)------内存管理和垃圾回收
class A{ private int i = 1; public A(){ System.out.println("A 开始构造"); this.display(); Syst
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号