课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
类加载是程序员在学习java编程开发语言的时候需要重点掌握的一个编程技术,下面我们就通过案例分析来了解一下,java虚拟机类加载步骤与常见问题。
类是怎么创建的呢?类的创建可以是由其他类调用该类的初始化方法来创建,也可以通过反射来创建。
类其实又可以分为两种,一种是数组类,一种是非数组类。
对于非数组类,因为他们有相应的二进制表示,所以是通过类加载器加载二进制表示来创建的。
而对于数组类,因为他们没有外部的二进制表示,所以数组类是由java虚拟机创建的。
java虚拟机中的类加载器又有两种,一种是虚拟机提供的引导类加载器,一种是用户自定义的类加载器。
如果是用户自定的类加载器,那么应该是ClassLoader的一个实现。用户自定义类加载器主要是为了扩展java虚拟机的功能,以支持动态加载并创建类。
链接
链接是为了让类或者接口可以被java虚拟机执行,而将类或者接口并入虚拟机运行时状态的过程。
链接具体的工作包括验证和准备类或者接口。而解析这个类或者接口中的符号引用是链接过程中的可选部分。
如果java虚拟机选择在用到类或者接口中的符号引用时才去解析他们,这叫做延迟解析。
如果java虚拟机在验证类的时候就解析符号引用,这就叫做预先解析。
验证
验证主要是为了保证类和接口的二进制表示的结构正确性。
如果类或者接口的二进制表示不满足相应的约束,则会抛出VerifyError异常。
准备
准备主要是创建类或者接口的静态字段,并使用默认值来初始化这些字段。
解析
解析是指根据运行时常量池中的符号引用来动态决定其具体值的过程。
解析可以分为类和接口的解析,字段解析,普通方法的解析,接口方法解析,方法类型和方法句柄解析,调用点限定符解析这几种。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。