Java的动态特性有两种,一是隐式的;另一种是显示的。隐式的(implicit)方法就是当程式设计师用到new 这个Java 关键字时,会让类别载入器依需求载入您所需要的类别,这种方式使用了隐式的(implicit)方法。显式的方法,又分成两种方式,一种是藉由java。

lang。Class 里的forName()方法,另一种则

是藉由java。lang。ClassLoader 里的loadClass()方法。您可以任意选用其中一种方法。

2 隐式的动态特性

在执行java文件时,只有单独的变量声明是不会载入相应的类的,只有在用new生成实例时才载入

如示例所示:

public class Main

public static void main(String args[])

{

A a1 = new A() ;

B b1 ;

}

类A和B相同,如下:

public class A

{

public void print(“using A”);

}

编译后,可用java –verbose:class Main运行,察看输出结果。

可以看到JVM只载入了A,而没有载入B。

另外,类的载入只在执行到new一个类时,才载入,如果没有执行到new语句,则不载入。

如://类Office

public class Office

{

public static void main(String[] args)

{

Word myword=null;

Excel myexcel=null;

if (args[0]。

equals("Word"))

{

myword = new Word();

myword。start();

}

if (args[0]。equals("Excel"))

{

myexcel = new Excel();

myexcel。

start();

}

}

}

//类Word和Excel基本相同,如下

public class Word

{

public void start()

{

System。out。println("using word");

}

}

在dos命令提示符下,输入java –verbose Office Excel可以看到JVM只载入Excel类,而不载入Word类。

3 显示的动态特性

3。1 java。lang。Class里的forName()方法

在上一个Office示例中,进行如下修改:

一 加入Assembly类

public interface Assembly

{

public void start();

}

二 让Word和Excel类实现该接口

public class Word implements Assembly

{

public void start()

{

System。

out。println("using word");

}

}

三 Office 类如下所示

public class Office

{

public static void main(String[] args) throws Exception

{

java。

lang。Class c = java。lang。Class。forName(args[0]);

Object o = c。newInstance();

Assembly a = (Assembly)o;

a。start();

}

}

考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。

其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

全部

动态性是Java的特性吗_Java的动态特性有哪些?相关推荐

  1. java继承的性质_java 继承的特性

    java的三大特性之一-----继承 继承的特性: 1.提高了代码的复用性----代码的简洁 2.让类与类之间产生了关系.有了这个关系,才有了多态的特性. 注意:千万不要为了获取其他类的功能,简化代码 ...

  2. 【Groovy】Groovy 动态语言特性 ( Groovy 语言与 Java 语言执行效率对比 | 以动态特性编译的 Groovy 类 | 以静态特性编译的 Groovy 类 )

    文章目录 一.以动态特性编译的 Groovy 类 二.Groovy 语言与 Java 语言执行效率对比 三.以静态特性编译的 Groovy 类 一.以动态特性编译的 Groovy 类 Groovy 类 ...

  3. MOSFET开通特性(2)——动态特性

    2.MOSFET的动态特性 2.1驱动电路 驱动电路的暂态模型 Rg上的电压波形: 栅极的输入特性为容性,开通时充电,关断时放电:Rg起到限流和控制开关速度的作用. 2.2栅极的充电曲线及开通关断过程 ...

  4. java字符串去重复_Java 8新特性:字符串去重

    本文首发与InfoQ. 8月19日,Oracle发布了JDK 8u20,JDK 8u20包含很多新特性,比如Java编译器更新.支持在运行时通过API来修改MinHeapFreeRatio和MaxHe ...

  5. java动物类问题_java实现动物特性的面向对象的描述(三个阶段)

    动物特性描述 狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的.狗通常的时候和人打招呼会通过"摇摇尾巴",在被抚摸感到舒服的时候,会"旺旺叫",而在受 ...

  6. java强制转换概念_Java的“泛型”特性,你以为自己会了?(万字长文)

    使用Java的小伙伴,对于Java的一些高级特性一定再熟悉不过了,例如集合.反射.泛型.注解等等,这些可以说我们在平时开发中是经常使用到的,尤其是集合,基本是只要写代码没有用不到的,今天我们先来谈谈泛 ...

  7. java 流常用接口_java 8新特性5--使用集合流式API

    PS:向公众号发送关键字可以搜索文章哦! 使用集合的流式API 直接上代码了,常用api都有了,要点都在注释中 苹果类: packagejava8.stream;/***@authorqiang.xi ...

  8. java 可控异常_java异常处理,重新认识java异常,java7异常处理的新特性!

    原标题:java异常处理,重新认识java异常,java7异常处理的新特性! 在程序中,错误可能产生于程序员没有预料的各种情况,或者是超出了程序员可控范围的环境因素,如用户的坏数据.试图打开一个根本不 ...

  9. java注解详解_Java注解详解

    Annotation是从JDK5.0开始引入的新技术. Annotation的作用:–不是程序本身,可以对程序作出解释.(这一点,跟注释没什么区别)–可以被其他程序(比如:编译器等)读取.(注解信息处 ...

最新文章

  1. “记录”是给世界做积极贡献的一种方式
  2. WebView http图片加载失败
  3. 【Boost】boost库中timer定时器
  4. 软件设计的第一性原理:结构化抽象
  5. 玩转oracle 11g(38):rman备份-全库恢复
  6. activity 变成后台进程后被杀死_Android 后台运行白名单,优雅实现保活
  7. 概率论和数理统计 - 01
  8. sae php 当前路径,SAE上使用自定义环境运行异步任务
  9. 【封装那些事】 泄露的封装
  10. C#(WPF)为Grid添加实线边框。
  11. 李彦宏被泼水,是“多数人的暴力”还是“群众的宣泄”
  12. 2 网段 Vlan+NAT 配置
  13. javascript 数组操作函数
  14. java list stream 去除 null_Stream流的这些操作,你得知道,对你工作有很大帮助
  15. 215. 数组中的第K个最大元素
  16. 2、ARM嵌入式系统:LED初始化
  17. android opengl美颜功能,Android 关于美颜/滤镜 利用PBO从OpenGL录制视频
  18. CMOS模拟集成电路设计学习笔记
  19. tp6 使用workerman
  20. Helio for mac(音乐创作工具)

热门文章

  1. 文巾解题 620. 有趣的电影
  2. tableau实战系列(四十七)-Tableau快速生成可视化视图
  3. 从无到有算法养成篇:一文读懂有关Tree的前世今生
  4. 用Tableau画幂函数柱状图
  5. TensorFlow实现人脸检测和人脸识别
  6. Python实现有道翻译
  7. 山东财经大学python试卷_山东财经大学微观经济学试卷1及答案
  8. CSDN-markdown编辑器使用指南
  9. MySQL慢查询日志总结
  10. solr/lucence和关系数据库的混合使用