zoukankan      html  css  js  c++  java
  • 为什么可以说Java语言是准动态语言?

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

    2017年02月24日 19:36:58 Young丶 阅读数:1122

     版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/agonie201218/article/details/56851844

    什么是动态语言?
      动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如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的内部信息,包括:

    正在运行中的类的属性信息,正在运行中的类的方法信息,正在运行中的类的构造信息,正在运行中的类的访问修饰符,注解等等。

    动态语言无时不刻在体现动态性,而静态语言也在通过其他方法来趋近于去弥补静态语言的缺陷。

  • 相关阅读:
    人在年轻的时候,最需要的能力--吃药的能力
    查分单词-Python
    关于NLP算法工程师的几点思考
    找出只出现一次的数字-Python
    最长连续序列
    二叉树中的最大路径和-Python
    windows:查找端口所对应的进程
    vue项目路由模式为history时打包后部署在nginx 配置访问
    用navicat连接数据库报错:1130-host ... is not allowed to connect to this MySql server如何处理
    mysql误删root用户
  • 原文地址:https://www.cnblogs.com/grj001/p/12225258.html
Copyright © 2011-2022 走看看