为什么可以说Java语言是准动态语言?

什么是动态语言?
  动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如JavaScript便是一个典型的动态语言。

除此之外如Ruby、Python、OC等也都属于动态语言,而C、C++、Java等语言则不属于动态语言。

动态类型语言,就是类型的检查是在运行时做的,是不是合法的要到运行时才判断,例如JavaScript就没有编译错误,只要运行错误。

JavaScript改变结构小例子:

aAll[0].οnclick=function(){
                //通过重新赋类名,达到显示隐藏菜单的效果
                if(oArt.className=='no_circle'){
                    oArt.className='yes_circle'
                }else{
                    oArt.className='no_circle'
                }
            }
}

静态语言

  而静态类型语言的类型判断是在运行前判断(如编译阶段),比如java就是静态类型语言,静态类型语言为了达到动态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要,
静态类型语言的主要优点:
      在于其结构非常规范,便于调试,方便类型安全;
缺点:
        是为此需要写更多的类型相关代码,导致不便于阅读、不清晰明了。动态类型语言的优点在于方便阅读,不需要写非常多的类型相关的代码;缺点自然就是不方便调试,命名不规范时会造成读不懂,不利于理解等。
 
为什么Java可以称之为"准动态语言"?
体现在以下几个方面:

  1.反射机制

  2.动态编译

  3.动态执行javascript代码

  4.动态字节码操作

  5.动态转换类型

Java的反射机制被视为Java为准动态语言的主要的一个关键性质,这个机制允许程序在运行时透过反射取得任何一个已知名称的class的内部信息,包括:
正在运行中的类的属性信息, 正在运行中的类的方法信息, 正在运行中的类的构造信息, 正在运行中的类的访问修饰符,注解等等。
 
动态语言无时不刻在体现动态性,而静态语言也在通过其他方法来趋近于去弥补静态语言的缺陷。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值