与C++不同的是,Java程序并不是一个可执行文件,而是由许多类文件组成的,每个文件对应一个类。ClassLoader是JVM中将类装入内存的那部分。
现在需要说明的是所有的类并发一次性加载,而是在需要的使用加载(运行期间动态加载)。
有如下代码:
package cn.xredman;
public class TestDynamicLoading {
public static void main(String[] args) {
new A();
System.out.println("---------------------");
new B();
}
}
class A {
}
class B {
}
如何证明A和B不是一次性加载的。如果A和B是一次加载的,则输入的隔行将会出现在B加载之后,否则出现二者中间。
右键->菜单->选择"Run Configurations..."
在arguments选项卡中输入:-verbose:class,为的是输出加载时的详细详细。
查看控制台输出信息如下:
Console 写道
[Loaded cn.xredman.TestDynamicLoading from file:/D:/eclipse/workplaces/reflection/bin/]
[Loaded cn.xredman.A from file:/D:/eclipse/workplaces/reflection/bin/]
---------------------
[Loaded cn.xredman.B from file:/D:/eclipse/workplaces/reflection/bin/]
[Loaded java.lang.Shutdown from shared objects file]
[Loaded java.lang.Shutdown$Lock from shared objects file]
确实不是一次性加载的。
- 大小: 20.3 KB
- 大小: 16.1 KB
分享到:
相关推荐
bjsxt -oa 源码bjsxt -oa 源码bjsxt -oa 源码bjsxt -oa 源码bjsxt -oa 源码bjsxt -oa 源码bjsxt -oa 源码bjsxt -oa 源码bjsxt -oa 源码bjsxt -oa 源码
【标题】"bjsxt马JAR包.rar" 指的是一款名为 "bjsxt" 的Java应用程序的归档文件,它以JAR(Java Archive)格式打包。JAR文件是Java平台上的一个标准文件格式,用于集合多个类文件、相关的元数据以及资源文件,便于...
### 一、客户端连接方式 #### Dos命令行连接 在DOS命令行中通过`sqlplus 用户名/密码`的方式登录Oracle数据库,例如: ``` sqlplusscott/tiger ``` #### 图形界面连接 可以通过开始菜单中的“运行”功能来启动SQL*...
NULL 博文链接:https://jerry-xin.iteye.com/blog/2242244
DOM模型将整个XML文档加载到内存中,形成一棵树形结构,允许开发者通过节点操作来访问和修改XML数据。使用Java的`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`类可以实现DOM解析。首先,...
在Model1模式中,业务逻辑和表示逻辑混合在一起,不利于维护和重用,而Struts引入了Model2模式,将用户交互、业务处理和视图展示分离,提高了代码的可维护性和可扩展性。在Model2中,浏览器发送HTTP请求到Controller...
sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unlock; --那么这个用户名就能使用了。 --(默认全局数据库名orcl) 1、select ename, sal * 12 from emp; --计算...
多对一: <hibernate-mapping> <class name="com.bjsxt.hibernate.User" table="t_user"> <!-- <many-to-one name="group" column="groupid" cascade="all"/> --> <many-to-one name=...
分页技术是Web应用中非常常见的一种数据展示方式,它能有效地管理大量数据,避免一次性加载所有数据导致的性能问题。以下将详细解释如何实现分页技术,主要涉及`Pager-taglib 2.0`标签库的使用、分页参数的传递以及...
其中,Struts2标签库(Struts2 Tags Library)是开发者常用的工具之一,它不仅简化了前端页面的开发工作,还提高了应用的性能与可维护性。本文将详细介绍Struts2.0标签库中 `$`, `#`, `%` 的使用方法及其区别。 ###...
- 核心配置文件的作用在于一次性配置数据库连接信息。 - Mapper文件则是针对特定表的操作(如CRUD),其中包含了具体的SQL语句。 - 通过`SqlSessionFactory`创建`SqlSession`对象来执行SQL语句。 #### 四、...
在Java和.NET之间选择时,考虑到Java的跨平台特性,尤其是开发Linux和Unix服务器程序的能力,以及从Java转向.NET的相对容易性,推荐初学者选择Java作为入门语言。随着经验的积累,语言和平台的差异会变得不那么重要...
通过将业务逻辑、数据处理与用户界面分离开来,Spring MVC极大地提高了代码的可维护性和可扩展性。 3. **控制反转(Inversion of Control, IoC):** - **控制反转**是Spring的核心特性之一,它改变了对象之间依赖...
- **作用**:解耦,使得程序员无需关心对象的具体创建过程,从而降低了程序间的耦合度,提高了代码的可维护性和灵活性。 #### 三、Spring环境搭建 - **步骤**: 1. **导入JAR包**:Spring框架的核心JAR包主要...
- **懒加载**:这是一种延迟加载策略,即当确实需要某个对象时才加载它。这样可以提高应用程序性能,特别是在处理复杂的关联查询时。 - **关联查询**:允许通过一个查询获取多个相关的记录,例如从客户表获取订单...
- **`<mapper resource="com/bjsxt/mapper/FlowerMapper.xml"></mapper>`**:指定一个Mapper配置文件的位置。 #### 三、Mapper配置文件详解 Mapper配置文件是MyBatis的核心组成部分之一,主要用于定义SQL语句以及...
Struts2.2-doc.zip 是一个包含Struts2框架版本2.2的文档集合,用于帮助开发者理解和使用这个流行的Java Web应用程序开发框架。Struts2是MVC(Model-View-Controller)架构的一个实现,旨在简化Java Web应用的构建...
升级10次,9次改的是后台的代码,只有一次是前台的代码 解决方案: 是将前台(广大网民看的页面)的代码和后台(管理员)的代码要分开,将原来的一个项目分别放到两个web项目;一个web项目一个tomcat;好处:更新的时候如果...
Spring Boot 是一款基于 Spring 的新型框架,旨在简化 Spring 应用程序的初始搭建及开发过程。它通过提供一系列默认配置来帮助开发者快速构建独立的、生产级别的基于 Spring 框架的应用程序,极大地提高了开发效率。...