`
lizhuang
  • 浏览: 904087 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

动态语言和静态语言的比较

阅读更多

静态语言和动态语言各有利弊。静态语言即使不通过执行也可以检查出类型是否匹配。在一定程度上,程序的一些逻辑错误可以被自动检测出来。

但是,逐个来定义版式和变量的类型又会使程序变得冗长,只有包含继承关系的类才具有多态性。相对于动态语言来说,静态语言就显得限制过多、灵活性差。

动态语言则正好相反,程序中没有错误只有执行才知道。从可靠性来说也许会让你觉得不安。程序中没有类型定义,这样程序会变得很简洁,但别人看起来或许会有些难懂。

但是,只要方法名一样,这些对象都可以以相同的方式去处理。也就是说不需要深层次探索类也可以开发程序,这样生产效率就会大大提高。

继承的含义

两种含义

类有哪些方法—规格继承(implements)

类有哪些数据结构和哪些算法—实现继承(extends)

为了解决多重继承的问题,人们允许了规格的多重继承,而不允许实现多重继承。Java推荐的解决共享问题的方案是,在单一继承的前提下,使用组合模式(Composite)来调用别的类实现的共同功能。

本来只是为了跨越继承层次来共享代码,现在却需要另外生成一个独立对象,而且每次方法调用都要委派给那个对象,这实在是不合理,而且执行效率也不高。

克服动态类型的缺点
动态类型的缺点主要有三个,即在执行时才能发现错误,读程序时可用到的线索少,以及运行速度慢。

首先,执行时才能发现错误这个可以用单元测试解决。如果能严格实行完备的单元测试的话,即使没有编译时的错误检查,程序的可靠性也不会降低。
其次,线索少可以用文档来解决。
最后,运行速度这点,对于普通程序,随着计算机性能提高,程序的灵活性和生产力更为重要,但对于大型程序来说,还是机器码最快,所以在操作系统仍然使用机器码。在性能要求比较严苛的,仍然使用静态语言。


分享到:
评论

相关推荐

    汉英语言对比之静态与动态.pdf

    汉英语言对比之静态与动态.pdf

    PHP动态语言静态化示例

    此资源最好搭配讲解,地址http://blog.csdn.net/m_nanle_xiaobudiu/article/details/79267703

    WPF 多国语言实现与动态切换当前语言

    以上就是WPF应用中实现多国语言支持和动态切换的基本步骤。通过这种方法,开发者可以轻松地为全球用户提供本地化的用户体验,同时保持代码的整洁和可维护性。在实际项目中,可能还需要考虑资源文件的编译和打包,...

    动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍

    总结来说,动态语言和静态语言主要区别在于类型检查的时间点,而强类型和弱类型关注的是类型转换的规则。动态类型语言与静态类型语言各有优劣,动态语言更灵活,适合快速迭代的开发;静态类型语言则提供了更好的编译...

    动态页面生成静态页面实例

    动态页面如`.aspx`文件(如`index.aspx`和`a.aspx`),通常基于服务器端的编程语言(如ASP.NET)运行,每次请求时都会根据用户输入和数据库交互生成内容。而静态页面如`.html`文件(如`index.html`),是预先生成的...

    wpf多语言切换,动态和静态切换

    wpf多语言切换,动态和静态切换

    动态生成静态HTML

    C#作为一款强大的.NET平台编程语言,提供了丰富的库和框架来实现这一功能。以下是对这个主题的详细解释: 1. **动态与静态页面的区别** - 动态页面:基于服务器端脚本(如ASP.NET、PHP等),根据用户请求实时生成...

    Java动态绑定和静态绑定.doc

    在Java编程语言中,动态绑定和静态绑定是两个重要的概念,它们涉及到方法调用和多态性。了解这两个概念对于深入理解面向对象编程至关重要。本文将详细探讨它们的区别,并通过实例来阐述它们的工作原理。 首先,让...

    动态网页 和静态网页

    动态网页与静态网页是网页开发中的两种主要类型,它们各自具有独特的特性和应用场景。 静态网页主要是由HTML、CSS和JavaScript等基本Web技术构建的。这些网页在服务器端被完全生成,然后以固定的内容发送到用户的...

    静态网页和动态网页的区别.txt

    静态网页和动态网页的区别 动态网页和静态网页的区别,首先要分别了解两个概念,就是什么是静态网页,什么是动态网页,并且学会区分哪些是静态哪些是动态。 静态网页: (1)静态网页不能简单地理解成静止不动的...

    librdkafka 动态库 静态库

    动态库和静态库是两种不同的库文件形式,动态库在运行时被加载到内存中,而静态库在编译时直接链接到目标代码中。 描述进一步说明这些库是由VS2015(Visual Studio 2015)编译的,并且是v1.6.1版本。这意味着库文件...

    静态、动态链接库的创建和调用

    这种方式的优点在于可以按需加载DLL,对于启动性能要求较高的应用来说更为合适,也便于程序在多语言环境下的动态模块加载,但缺点是调用方式相对繁琐,编程者需要手动管理DLL的加载和卸载过程。 根据不同的应用场景...

    Kotlin语言写的静态库和动态库.zip

    Kotlin语言写的静态库和动态库.zip

    Android动态系统语言切换

    在Android系统中,用户通常可以在设备的设置菜单中选择或更改系统语言,但这是一种静态的切换方式。然而,开发者有时需要在应用程序运行时动态地改变系统语言,以便为用户提供更个性化的体验。本文将深入探讨如何...

    c++ 语言 实现静态链表

    c++ 语言实现的静态链表数据结构,visualc++ 2008编译通过。

    动态汉语和静态英语.doc

    例如,英语写作时应注重句子结构的清晰,逻辑关系的显性表达,以及适当运用静态语言的特征,如非谓语动词和动词的名词化。同时,汉语的动态性和意合性则要求我们在翻译或写作时,注意保持句子的连贯性和情感的生动性...

    C# 动态模板生成静态页

    在.NET开发领域,C#是一种广泛使用的编程语言,尤其在构建动态网站时。"C# 动态模板生成静态页"的主题涉及到将原本基于服务器端的动态内容转换为客户端可以直接访问的静态HTML页面,这有助于提高网站性能,减轻...

Global site tag (gtag.js) - Google Analytics