数组类的加载

对于数组实例来说,其类型是由JVM运行期动态生成的,表示为[[Lcom.shengsiyuan.jvm.classloader.MyParent4;这种形式
动态生成的类型,其父类型是Object。

对于数组来说,JavaDoc经常将构成数组的元素为Component,实际上就是将数组降低一个维度后的类型。但是数组类与类加载器仍然又很密切的关系,因为数组类的元素类型(ElementType,指的是数组去掉所有维度的类型)最终是要靠类加载器去创建。

public class MyTest4 {
    public static void main(String[] args) {
        MyParent4[] myParent4s = new MyParent4[1];

        System.out.println(myParent4s.getClass());//class [Lcom.shengsiyuan.jvm.classloader.MyParent4;
        System.out.println(myParent4s.getClass().getClassLoader());//sun.misc.Launcher$AppClassLoader@18b4aac2

        System.out.println("========");

        MyParent4[][] myParent4s1 = new MyParent4[1][1];
        System.out.println(myParent4s1.getClass());//class [[Lcom.shengsiyuan.jvm.classloader.MyParent4;
        System.out.println(myParent4s.getClass().getSuperclass());//class java.lang.Object

        System.out.println("========");

        int[] ints = new int[1];
        System.out.println(ints.getClass());//class [I
        System.out.println(ints.getClass().getSuperclass());//class java.lang.Object
    }
}

class MyParent4{
    static {
        System.out.println("Myparent4 static code");
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 虚拟机把描述类的数据从Class文件加载到内存, 并对数据进行校验、转换解析和初始化, 最终形成可以被虚拟机直接使...
    好好学习Sun阅读 1,262评论 0 3
  • C/C++在运行前需要完成预处理、编译、汇编、链接;而在Java中,类加载(加载、连接、初始化)是在程序运行期间第...
    Steven1997阅读 978评论 1 2
  • 这几天上课课程,没什么收获,给了一巴掌,就回来了。o(∩_∩)o呵呵…
    可爱茹茹阅读 156评论 0 0
  • 《人生》 文/我心飞翔 风吹残叶雨拍窗 人活百年空一场 昔日江山今犹在 醉卧黄昏倚夕阳
    我心飞翔XF阅读 63评论 1 1