`
shang7053
  • 浏览: 531 次
文章分类
社区版块
存档分类
最新评论

java类加载顺序

    博客分类:
  • java
阅读更多

在csdn看到一篇文章,原文地址http://bbs.csdn.net/topics/390973527。

java代码:

public class StaticTest {
    public static int k=0;
    public static StaticTest s1=new StaticTest("s1");
    public static StaticTest s2=new StaticTest("s2");
    public static int i=print("i");
    public static int n=99;
    public int j=print("j");
     
    {
        print("构造块");
    }
     
    static
    {
        print("静态块");
    }
     
    public static int print(String s)
    {
        System.out.println(++k+":"+s+"\ti="+i+"\tn="+n);
        ++n;
        return ++i;
    }
     
    public StaticTest(String s)
    {
        System.out.println(++k+":"+s+"\ti="+i+"\tn="+n);
        ++i;
        ++n;
    }
 
    public static void main(String[] args) {
        new StaticTest("init");
    }
}

 而结果是

1:j    i=0    n=0
2:构造块    i=1    n=1
3:s1    i=2    n=2
4:j    i=3    n=3
5:构造块    i=4    n=4
6:s2    i=5    n=5
7:i    i=6    n=6
8:静态块    i=7    n=99
9:j    i=8    n=100
10:构造块    i=9    n=101
11:init    i=10    n=102

 初一看有点懵了,很少接触这个,自己原样摘下来,debug了下流程。不知道图片能不能显示,自己看到的结果是这样也不知道对不对,先留着备忘吧。总结如下:



 

  • 大小: 437.8 KB
分享到:
评论

相关推荐

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

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

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

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

    Java类加载器原理

    类加载器的作用不仅仅是加载类,还包括确保类的唯一性,避免重复加载,并且遵循特定的加载顺序。以下是对类加载器原理的详细解释: 1. 类加载器作用: 当JVM启动时,如果需要使用某个类,对应的类加载器会将这个类...

    Tomcat启动时类加载顺序

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

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

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

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

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

    java类加载原理分析

    开发者可以通过`-Xbootclasspath`、`-Xbootclasspath/p`和`-Xbootclasspath/a`命令行参数来指定引导类加载器的类路径,从而影响加载顺序或添加额外的类库。 在特殊情况下,如上述示例中的`java -Xbootclasspath/a:...

    java 继承关系的加载顺序

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

    java应用程序类加载器,ClassLoader for java Application

    通过配置类路径,开发者可以自定义加载顺序和加载来源,例如从网络、文件系统或特定的jar中加载类。 **配置灵活性**: 在开发大型Java应用时,类加载器的配置灵活性变得非常重要。例如,可以创建自定义类加载器来...

    Spring+SpringMVC配置加载顺序1

    Spring 和 SpringMVC 的配置加载顺序是理解这两个框架协同工作的重要方面。首先,DispatcherServlet 是 SpringMVC 的核心组件,它扮演着请求分发者的角色,确保请求被正确地路由到相应的处理器。DispatcherServlet ...

    Java类的基本运行顺序

    在Java中,类的加载顺序遵循“父类优先”原则,即子类在初始化前,其父类必须先完成初始化。同时,如果一个类没有显式地定义初始化块,JVM会自动提供一个空的方法。 至于文件`任务安排表.xls`,虽然与Java类的运行...

    Java类加载机制学习1

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

    Java类加载机制.pdf

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

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

    Java类加载初始化的过程及顺序 Java类加载初始化的过程是Java编程语言中一个重要的概念,它决定了Java类的加载和初始化顺序。在Java中,类的加载是通过类加载器(ClassLoader)来实现的。类加载器会将类的字节码...

    Java类加载器加载类顺序

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

    译 Java类加载机制(二)

    除了基本概念,博客还可能涉及一些进阶主题,如类的全限定名、类的双亲加载与子类加载的顺序、以及类的链接和初始化的区别。链接阶段包括验证、准备和解析,而初始化是类的静态块被执行的过程。 此外,热部署、...

    Java类执行顺序详解+实例(阿里面试题)+详细讲解+流程图

    总结来说,Java类的执行顺序涉及到类加载、验证、准备和初始化四个关键步骤,这些步骤在JVM内部协同工作,确保代码的正确性和安全性。理解这些基础知识对于编写高效、可靠的Java程序至关重要,也是面试中常见的技术...

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

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

Global site tag (gtag.js) - Google Analytics