动态性是Java的特性吗_Java的动态特性有哪些?
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的动态特性有哪些?相关推荐
- java继承的性质_java 继承的特性
java的三大特性之一-----继承 继承的特性: 1.提高了代码的复用性----代码的简洁 2.让类与类之间产生了关系.有了这个关系,才有了多态的特性. 注意:千万不要为了获取其他类的功能,简化代码 ...
- 【Groovy】Groovy 动态语言特性 ( Groovy 语言与 Java 语言执行效率对比 | 以动态特性编译的 Groovy 类 | 以静态特性编译的 Groovy 类 )
文章目录 一.以动态特性编译的 Groovy 类 二.Groovy 语言与 Java 语言执行效率对比 三.以静态特性编译的 Groovy 类 一.以动态特性编译的 Groovy 类 Groovy 类 ...
- MOSFET开通特性(2)——动态特性
2.MOSFET的动态特性 2.1驱动电路 驱动电路的暂态模型 Rg上的电压波形: 栅极的输入特性为容性,开通时充电,关断时放电:Rg起到限流和控制开关速度的作用. 2.2栅极的充电曲线及开通关断过程 ...
- java字符串去重复_Java 8新特性:字符串去重
本文首发与InfoQ. 8月19日,Oracle发布了JDK 8u20,JDK 8u20包含很多新特性,比如Java编译器更新.支持在运行时通过API来修改MinHeapFreeRatio和MaxHe ...
- java动物类问题_java实现动物特性的面向对象的描述(三个阶段)
动物特性描述 狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的.狗通常的时候和人打招呼会通过"摇摇尾巴",在被抚摸感到舒服的时候,会"旺旺叫",而在受 ...
- java强制转换概念_Java的“泛型”特性,你以为自己会了?(万字长文)
使用Java的小伙伴,对于Java的一些高级特性一定再熟悉不过了,例如集合.反射.泛型.注解等等,这些可以说我们在平时开发中是经常使用到的,尤其是集合,基本是只要写代码没有用不到的,今天我们先来谈谈泛 ...
- java 流常用接口_java 8新特性5--使用集合流式API
PS:向公众号发送关键字可以搜索文章哦! 使用集合的流式API 直接上代码了,常用api都有了,要点都在注释中 苹果类: packagejava8.stream;/***@authorqiang.xi ...
- java 可控异常_java异常处理,重新认识java异常,java7异常处理的新特性!
原标题:java异常处理,重新认识java异常,java7异常处理的新特性! 在程序中,错误可能产生于程序员没有预料的各种情况,或者是超出了程序员可控范围的环境因素,如用户的坏数据.试图打开一个根本不 ...
- java注解详解_Java注解详解
Annotation是从JDK5.0开始引入的新技术. Annotation的作用:–不是程序本身,可以对程序作出解释.(这一点,跟注释没什么区别)–可以被其他程序(比如:编译器等)读取.(注解信息处 ...
最新文章
- R语言format函数保留几位小数实战
- linux下find命令用法
- 结合Jexus + Kestrel 部署 asp.net core 生产环境
- linux java ocr_Linux环境如何支持使用tess4j进行ORC
- 性能之巅:Linux网络性能分析工具-netstat,ifconfig,nicstat,traceroute,tcpdump
- SharePoint2013安装组件时AppFabric时出现1603错误,解决方法:
- 基础编程题之最大连续bit数(位运算)
- leetcode - 638. 大礼包
- 诗与远方-:无题(六十九)
- C# DataGridView 动态添加列和调整列顺序
- python函数参数类型及其顺序
- STM32硬件复位时间
- 自然语言5——初学者书籍
- java 高级调试_多种高级debug方法,帮你更快定位问题
- 多线程访问导致崩溃一例
- DNS之BIND使用小结(Forward转发)
- matlab怎么实现行随机网络,matlab生成随机行走网格 模拟材料生长 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
- AllenNLP—笔记—json
- bootstrap4学习路线
- 威尔逊定理证明——杨子曰数学
热门文章
- python 笔记:函数
- Tableau实战系列构建基本视图以浏览数据
- Flink从入门到精通100篇(二十一)-Flink 状态(State)管理在推荐场景中的应用
- commons-lang常用工具类StringEscapeUtils使用--转
- 编程语言拟人化:Java、C++、Python、Ruby、PHP、C#、JS!--隆重推荐转
- LESSON 10.410.510.6 贝叶斯优化的基本流程BayesOpt vs HyperOpt vs Optuna batch基于BayesOpt实现高斯过程gp优化
- 【行业报告】基于社交图谱关系的反欺诈产品应用——青云
- “现金贷”产品的获客之道,这一篇就够了!
- 三天竟然爆发两起大漏洞事件!我们来教你如何跳过以太坊的坑
- 区块链研习 | 区块链里所说的“智能合约”是什么? 本文作者:敖萌	编辑:温晓桦	2017-10-11 20:31 导语:谈到区块链,必然离不开“智能合约”这个词。我们在本系列的第一篇文章中提到“智能