首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编程必备,想学JAVA看这里,JAVA编程模式对象概述

与编译和加载Java文件的传统Java虚拟机(JVM)不同,Oracle JVM编译并加载模式对象。加载以下Java模式对象。

Java类模式对象,这些对象几乎都对应于Java类文件。Java资源模式对象,对应于Java资源文件。

为了确保Oracle JVM可以运行类文件,必须使用Load Java工具从类文件或源文件创建Java类架构对象并将其加载到模式中。为了使Oracle JVM能够访问资源文件,必须使用Load Java从资源文件中创建和加载Java资源架构对象。

DROP JAVA工具删除对应于Java文件的架构对象。您应该始终使用DROPJAVA删除使用Load Java创建的Java架构对象。使用SQL数据定义语言(DDL)命令删除架构对象将不会更新由Load Java和DROPJAVA维护的辅助数据。

何时何地加载?

必须使用Load Java加载资源文件。如果用常规编译器在数据库外部创建.class文件,则必须用Load Java加载它们。加载类文件的另一种方法是加载源文件,并让Oracle数据库编译并管理生成的类模式对象。在Oracle数据库10G中,最有效的方法是编译和调试数据库之外的大多数代码,然后加载.class文件。对于特定的Java类,可以加载.class文件或相应的.java文件,但不能同时加载它们。

Load Java工具接受包含源文件和资源文件或类和资源文件的Java存档(JAR)文件。当将jar或zip文件传递给Load Java时,它会打开存档并单独加载成员。没有jar或zip架构对象。从上次加载后的内容没有更改的文件不会重新加载。因此,加载JAR文件几乎没有性能损失。加载jar文件是使用Load Java的一种简单、愚蠢的证明方法。

同一模式中的两个模式对象定义同一个类是非法的。例如,假设A.java定义了类X,并希望将X的定义移动到B.Java。如果已经加载了A.Java,那么Load Java将拒绝加载B.java的尝试。相反,请执行下列操作之一:

删除A.java,加载B.java,然后加载不定义X的新A.java。

加载新的A.java,它不定义X,然后加载B.java。

分辨率

所有Java类都包含对其他类的引用。传统的JVM搜索目录中的类、zip文件和在类路径中命名的jar文件。相反,Oracle JVM为类模式对象搜索模式。数据库中的每个类都有一个解析器规范,它是Oracle数据库对应的类路径。例如,Alpha类的解析器规范列出了搜索alpha使用的类的模式。请注意,解析器规范是每个类,而在经典JVM中,类路径对于所有类都是全局的。

除了一个解析器规范,每个类模式对象都有一个类间引用绑定列表。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190707A0IBK500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券