JAVA是一门功能十分强大的语言,而Java 语言的类型可以分为两大类:
- 基本类型(primitive types)
- 引用类型(reference types)
Java 将引用类型细分为四种:类、接口、数组类和泛型参数。由于泛型参数会在编译过程中被擦除,因此 Java 虚拟机实际上只有前三种。在类、接口和数组类中,数组类是由 Java 虚拟机直接生成的,其他两种则有对应的字节流。
无论是直接生成的数组类,还是加载的类,Java 虚拟机都需要对其进行链接和初始化。
加载
加载是指查找字节流,并且据此创建类的过程。数组类没有对应的字节流,而是由 Java 虚拟机直接生成的。其他的类是Java 虚拟机则需要借助类加载器来完成查找字节流的过程。
以盖房子为例,要盖个房子得先找个建筑师,跟他说想要设计一个房型,比如说“一房、一厅、四卫”。房型相当于类,建筑师就相当于类加载器。
村里有许多建筑师,他们等级森严,但有着共同的祖师爷,叫启动类加载器(bootstrap class loader)。启动类加载器是由 C++ 实现的,没有对应的 Java 对象,因此在 Java 中只能用 null 来指代,祖师爷不喜欢小角色来打扰他,所以谁也没有祖师爷的联系方式。
除了启动类加载器之外,其他的类加载器都是 java.lang.ClassLoader 的子类,有对应的 Java 对象。这些类加载器需要先由另一个类加载器,比如说启动类加载器,加载至 Java 虚拟机中,方能执行类加载。
更多JAVA教程:
最后Java基础入门的小伙伴,技术整合提升自己不要错过
需要课件、源码、安装包等资料,可以评论告诉我哦~