动态性是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的作用:–不是程序本身,可以对程序作出解释.(这一点,跟注释没什么区别)–可以被其他程序(比如:编译器等)读取.(注解信息处 ...
最新文章
- “记录”是给世界做积极贡献的一种方式
- WebView http图片加载失败
- 【Boost】boost库中timer定时器
- 软件设计的第一性原理:结构化抽象
- 玩转oracle 11g(38):rman备份-全库恢复
- activity 变成后台进程后被杀死_Android 后台运行白名单,优雅实现保活
- 概率论和数理统计 - 01
- sae php 当前路径,SAE上使用自定义环境运行异步任务
- 【封装那些事】 泄露的封装
- C#(WPF)为Grid添加实线边框。
- 李彦宏被泼水,是“多数人的暴力”还是“群众的宣泄”
- 2 网段 Vlan+NAT 配置
- javascript 数组操作函数
- java list stream 去除 null_Stream流的这些操作,你得知道,对你工作有很大帮助
- 215. 数组中的第K个最大元素
- 2、ARM嵌入式系统:LED初始化
- android opengl美颜功能,Android 关于美颜/滤镜 利用PBO从OpenGL录制视频
- CMOS模拟集成电路设计学习笔记
- tp6 使用workerman
- Helio for mac(音乐创作工具)