什么是动态加载,什么是动态运行

lipeng3252642 2008-07-17 09:34:08
问一个基础问题,什么是Java动态加载,什么是Java动态运行。能举例说明更好!
...全文
1376 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
无敌波哥8 2012-08-21
  • 打赏
  • 举报
回复
这主要看java的虚拟机实现了,不同的虚拟机实现不一样。但是大部分时 当需要某个类的时候 才将java类的class文件加入内存 形成一个Class对象。然后会进行加载,校验,准备,初始化等工作。这就是动态加载。

例子很简单。比如一个main方法里,创建一个你定义的对象,那么就在这段代码执行时,这个类就会被加载。加载只会加载一次,除非虚拟机把他卸载过。
longren1hao 2012-08-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

2>动态运行 : 你写了一个类,你用它父类的引用来运行它的时候,执行引擎会动态的确定这个类的类型,重而调用正确的方法.
[/Quote]


这个不是很懂
ZangXT 2008-07-17
  • 打赏
  • 举报
回复
动态加载应该是类的动态加载。
动态运行时什么?
youjianbo_han_87 2008-07-17
  • 打赏
  • 举报
回复
就是反射,你到我博客上去看看,有反射的文章的
Even__Chung 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 daybybyby 的回复:]
在JAVA中,通过Class.forName()方法可以动态决定加载哪一个类,这个功能对于相同接口的不同实现来讲非常有用。比如对于设计好的数据库连接池接口,我们可以有多种的接口实现类来完成相同的功能,同时用户可以简单的通过修改配置文件来指定实际使用哪一个实现类,在源代码里面通过读取配置文件信息,并用Class.forName(configClassName).getInstance()就可以构造一个特定的实现类实例,而不用每次修改源代码。这样对于程序来讲只用…
[/Quote]
daybybyby 2008-07-17
  • 打赏
  • 举报
回复
在JAVA中,通过Class.forName()方法可以动态决定加载哪一个类,这个功能对于相同接口的不同实现来讲非常有用。比如对于设计好的数据库连接池接口,我们可以有多种的接口实现类来完成相同的功能,同时用户可以简单的通过修改配置文件来指定实际使用哪一个实现类,在源代码里面通过读取配置文件信息,并用Class.forName(configClassName).getInstance()就可以构造一个特定的实现类实例,而不用每次修改源代码。这样对于程序来讲只用关心接口的定义,用户只用进行配置文件的设置就完成了同一功能的不同实现的切换。

baidu 来的,呵呵
jingulang 2008-07-17
  • 打赏
  • 举报
回复
去google查 或看书 都会看到很详细的答案

sagezk 2008-07-17
  • 打赏
  • 举报
回复
动态加载:运行时需要哪个类就动态地加载哪个类(的字节码文件即 class 文件)。
动态运行:这个就太多了,动态获取类型信息(反射),动态类加载,字节码的动态解释执行,动态字节码优化,动态编译(程序运行时自己生成 Java 源代码并在编译后应用于系统中),多态机制,JIT ......
ZangXT 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 our651 的回复:]
1> 动态加载 : 你写了一个类,你运行它的时候,类装载器会装载这个类,然后再根据这个类内容(引用的包),再去装载其他的类.

2>动态运行  : 你写了一个类,你用它父类的引用来运行它的时候,执行引擎会动态的确定这个类的类型,重而调用正确的方法.
[/Quote]
晕,那叫动态绑定吧。
our651 2008-07-17
  • 打赏
  • 举报
回复
1> 动态加载 : 你写了一个类,你运行它的时候,类装载器会装载这个类,然后再根据这个类内容(引用的包),再去装载其他的类.

2>动态运行 : 你写了一个类,你用它父类的引用来运行它的时候,执行引擎会动态的确定这个类的类型,重而调用正确的方法.

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧