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. R语言format函数保留几位小数实战
  2. linux下find命令用法
  3. 结合Jexus + Kestrel 部署 asp.net core 生产环境
  4. linux java ocr_Linux环境如何支持使用tess4j进行ORC
  5. 性能之巅:Linux网络性能分析工具-netstat,ifconfig,nicstat,traceroute,tcpdump
  6. SharePoint2013安装组件时AppFabric时出现1603错误,解决方法:
  7. 基础编程题之最大连续bit数(位运算)
  8. leetcode - 638. 大礼包
  9. 诗与远方-:无题(六十九)
  10. C# DataGridView 动态添加列和调整列顺序
  11. python函数参数类型及其顺序
  12. STM32硬件复位时间
  13. 自然语言5——初学者书籍
  14. java 高级调试_多种高级debug方法,帮你更快定位问题
  15. 多线程访问导致崩溃一例
  16. DNS之BIND使用小结(Forward转发)
  17. matlab怎么实现行随机网络,matlab生成随机行走网格 模拟材料生长 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  18. AllenNLP—笔记—json
  19. bootstrap4学习路线
  20. 威尔逊定理证明——杨子曰数学

热门文章

  1. python 笔记:函数
  2. Tableau实战系列构建基本视图以浏览数据
  3. Flink从入门到精通100篇(二十一)-Flink 状态(State)管理在推荐场景中的应用
  4. commons-lang常用工具类StringEscapeUtils使用--转
  5. 编程语言拟人化:Java、C++、Python、Ruby、PHP、C#、JS!--隆重推荐转
  6. LESSON 10.410.510.6 贝叶斯优化的基本流程BayesOpt vs HyperOpt vs Optuna batch基于BayesOpt实现高斯过程gp优化
  7. 【行业报告】基于社交图谱关系的反欺诈产品应用——青云
  8. “现金贷”产品的获客之道,这一篇就够了!
  9. 三天竟然爆发两起大漏洞事件!我们来教你如何跳过以太坊的坑
  10. 区块链研习 | 区块链里所说的“智能合约”是什么? 本文作者:敖萌 编辑:温晓桦 2017-10-11 20:31 导语:谈到区块链,必然离不开“智能合约”这个词。我们在本系列的第一篇文章中提到“智能