精华内容
下载资源
问答
  • python 学习中关于动态类型静态类型强类型弱类型的问题
  • 首先强弱是相对的。 强类型: ...通俗地说,弱类型偏向于容忍隐式转换,把不同类型的变量放在一起运算。 静态类型: 编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误。...

    首先强弱是相对的。

    强类型:

    每个变量和对象都必须声明类型,在编译时确定好类型了,执行时不能更改。偏向于不容忍隐式类型转换。譬如说haskell的int就不能变成double。

    弱类型:

    编译时不确定类型,执行时根据语义确定是哪种类型。通俗地说,弱类型偏向于容忍隐式转换,把不同类型的变量放在一起运算。

    静态类型:

    编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误。

    动态类型:

    编译的时候不知道每一个变量的类型,因为类型错误而不能做的事情是运行时错误。譬如说你不能对一个数字a写a[10]当数组用。

    各种语言强弱和静动态关系:

    展开全文
  • 编程语言一般分为动态类型、静态类型和强类型、弱类型,例如Java是静态、强类型编程语言,而JavaScript是动态、弱类型编程语言。 一、动态类型与静态类型 动态类型语言是运行期间才做数据类型检查的语言,...

    编程语言一般分为动态类型、静态类型和强类型、弱类型,例如Java是静态、强类型编程语言,而JavaScript是动态、弱类型编程语言。

    一、动态类型与静态类型

    动态类型语言

    运行期间才做数据类型检查的语言,即动态类型语言编程时,永远不用给任何变量指定数据类型。该语言会在第一次赋值给变量时,在内部将数据类型记录下来。例如:JavaScript、Python、PHP。

    优点:方便阅读,不需要写非常多的类型相关的代码;

    缺点:不方便调试,命名不规范时会造成读不懂,不利于理解等。

    静态类型语言

    编译期间做检查数据类型的语言,即写程序时要声明所有变量的数据类型,是固定的。使用数据之前,必须先声明数据类型(int ,float,double等)。相当于使用之前,首先要为它们分配好内存空间。

    例如:C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

    优点:结构非常规范,便于调试,方便类型安全

    缺点:为此需要写更多类型相关代码,较复杂。

    二、强类型与弱类型

    强类型

    指的是程序中表达的任何对象所从属的类型都必须能在编译时刻确定。强类型是针对类型检查的严格程度而言的,它指任何变量在使用的时候必须要指定这个变量的类型,而且在程序的运行过程中这个变量只能存储这个类型的数据。因此,对于强类型语言,一个变量不经过强制转换,它永远是这个数据类型,不允许隐式的类型转换。例如:假设定义了一个double类型变量a,不经过强制类型转换那么程序int b = a是无法通过编译。常用的强类型语言有Java、C# 、Apex和Python等。

    强类型的优点:
    1、编译时刻能检查出错误的类型匹配,以提高程序的安全性;
    2、可以根据对象类型优化相应运算,以提高目标代码的质量;
    3、减少运行时刻的开销。

    弱类型

    正好与强类型相反,编译时的检查很弱,它仅能区分指令和数据,弱类型语言允许变量类型的隐式转换,允许强制类型转换等,如字符串和数值可以自动转化。

    二者区别:

    1、不管是强类型还是弱类型,变量都有两个属性:类型和值;即弱类型的变量同样有类型。不管是哪一种编程语言,其中使用的变量,都既有类型,又有值。强类型的变量类型,必须在源代码中明确定义,称之为“变量声明”,弱类型的变量类型则是无需声明的,由解释器解释。但是,这并不意味着,弱类型的变量就没有类型这一概念了。

    2、强类型的变量类型是不能改变的,弱类型变量是随需改变的,这是强弱的真正含义。 强类型的变量一经声明,就只能存储这种类型的值,其他的值则必须通过转换之后才能赋给该变量,有编译器自动理解的转换,也有由程序员明确指定的强制转换。但是,弱类型的变量类型则是随着需要不断转换。

    3、强制转换并没有改变变量类型。强类型语言有个“强制转换”,这改变的是变量的值的类型,以便进行赋值,而没有改变变量的类型。变量的类型是不允许改变的。

    展开全文
  • 强类型语言与弱类型语言

    千次阅读 2018-02-01 22:57:19
    弱类型语言允许将一块内存看做多种类型。比如直接将整型变量与字符变量相加。C and C++ 是静态语言,也是弱类型语言;Perl and PHP 是动态语言,但也是弱类型语言。 强类型语言在没有强制类型转化前,不允许两种...
    

    弱类型语言允许将一块内存看做多种类型。比如直接将整型变量与字符变量相加。C and C++ 是静态语言,也是弱类型语言;Perl and PHP 是动态语言,但也是弱类型语言。

    强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作。Java、C# 和 Python 等都是强类型语言。

    使用哪种语言还是要按需而定。编写简单小应用,使用弱类型语言可节省很多代码量,有更高的开发效率。而对于构建大型项目,使用强类型语言可能会比使用弱类型更加规范可靠。

    -------------------------------------------------------------------------------------------------------------

    强/弱类型是指类型检查的严格程度的。语言有无类型,弱类型和强类型三种。无类型的不检查,甚至不区分指令和数据。弱类型的检查很弱,仅能严格的区分指令和数据。强类型的则严格的在编译期进行检查。

    C# 是强类型语言;因此每个变量和对象都必须具有声明类型。
    javascript是弱类型语言;因此它可以不先定义类理和对象、或用var定义所有变量


    编译型和解释型


    我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器(Compiler)。如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了。但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织。这时编译各个文件时就会生成目标文件(Object file)而不是前面说的可执行文件。一般一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上已经是可执行代码了,但由于只是整个项目的一部分,所以我们还不能直接运行。待所有的源文件的编译都大功告成,我们就可以最后把这些半成品的目标文件“打包”成一个可执行文件了,这个工作由另一个程序负责完成,由于此过程好像是把包含可执行代码的目标文件连接装配起来,所以又称为链接(Link),而负责链接的程序就叫……就叫链接程序(Linker)。链接程序除了链接目标文件外,可能还有各种资源,像图标文件啊、声音文件啊什么的,还要负责去除目标文件之间的冗余重复代码,等等,所以……也是挺累的。链接完成之后,一般就可以得到我们想要的可执行文件了。 

    上面我们大概地介绍了编译型语言的特点,现在再看看解释型。噢,从字面上看,“编译”和“解释”的确都有“翻译”的意思,它们的区别则在于翻译的时机安排不大一样。打个比方:假如你打算阅读一本外文书,而你不知道这门外语,那么你可以找一名翻译,给他足够的时间让他从头到尾把整本书翻译好,然后把书的母语版交给你阅读;或者,你也立刻让这名翻译辅助你阅读,让他一句一句给你翻译,如果你想往回看某个章节,他也得重新给你翻译。 

    两种方式,前者就相当于我们刚才所说的编译型:一次把所有的代码转换成机器语言,然后写成可执行文件;而后者就相当于我们要说的解释型:在程序运行的前一刻,还只有源程序而没有可执行程序;而程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转换成二进制代码以供执行,总言之,就是不断地解释、执行、解释、执行……所以,解释型程序是离不开解释程序的。像早期的BASIC就是一门经典的解释型语言,要执行BASIC程序,就得进入BASIC环境,然后才能加载程序源文件、运行。解释型程序中,由于程序总是以源代码的形式出现,因此只要有相应的解释器,移植几乎不成问题。编译型程序虽然源代码也可以移植,但前提是必须针对不同的系统分别进行编译,对于复杂的工程来说,的确是一件不小的时间消耗,况且很可能一些细节的地方还是要修改源代码。而且,解释型程序省却了编译的步骤,修改调试也非常方便,编辑完毕之后即可立即运行,不必像编译型程序一样每次进行小小改动都要耐心等待漫长的Compiling…Linking…这样的编译链接过程。不过凡事有利有弊,由于解释型程序是将编译的过程放到执行过程中,这就决定了解释型程序注定要比编译型慢上一大截,像几百倍的速度差距也是不足为奇的。 

    编译型与解释型,两者各有利弊。前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)、VB等基本都可视为编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python等等。 

    但既然编译型与解释型各有优缺点又相互对立,所以一批新兴的语言都有把两者折衷起来的趋势,例如Java语言虽然比较接近解释型语言的特征,但在执行之前已经预先进行一次预编译,生成的代码是介于机器码和Java源代码之间的中介代码,运行的时候则由JVM(Java的虚拟机平台,可视为解释器)解释执行。它既保留了源代码的高抽象、可移植的特点,又已经完成了对源代码的大部分预编译工作,所以执行起来比“纯解释型”程序要快许多。而像VB6(或者以前版本)、C#这样的语言,虽然表面上看生成的是.exe可执行程序文件,但VB6编译之后实际生成的也是一种中介码,只不过编译器在前面安插了一段自动调用某个外部解释器的代码(该解释程序独立于用户编写的程序,存放于系统的某个DLL文件中,所有以VB6编译生成的可执行程序都要用到它),以解释执行实际的程序体。C#(以及其它.net的语言编译器)则是生成.net目标代码,实际执行时则由.net解释系统(就像JVM一样,也是一个虚拟机平台)进行执行。当然.net目标代码已经相当“低级”,比较接近机器语言了,所以仍将其视为编译语言,而且其可移植程度也没有Java号称的这么强大,Java号称是“一次编译,到处执行”,而.net则是“一次编码,到处编译”。呵呵,当然这些都是题外话了。总之,随着设计技术与硬件的不断发展,编译型与解释型两种方式的界限正在不断变得模糊。

    动态语言和静态语言
      通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

    (1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

    (2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

    对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamictyping when needed。

    强类型定义语言和弱类型定义语言

    (1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

    (2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

    强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
    例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言);JAVA是静态语言,是强类型定义语言(类型安全的语言)。

     

    静态类型定义语言

    一种在编译时,数据类型是固定的语言。大多数静态类型定义语言强制这一点,它要求你在使用所有变量之前要声明它们的数据类型。Java和C是静态类型定义语言。

    动态类型定义语言

    一种在执行期间才去发现数据类型的语言,与静态类型定义相反。VBScript和Python是动态类型定义的,因为它们是在第一次给一个变量赋值的时候找出它的类型的。

    强类型定义语言

    一种总是强制类型定义的语言。Java和Python是强制类型定义的。如果你有一个整数,如果不显示地进行转换,你不能将其视为一个字符串。

    弱类型定义语言

    一种类型可以被忽略的语言,与强类型定义相反。VBScript是弱类型定义的。在VBScript中,可以将字符串'12'和整数3进行连接得到字符串'123',然后可以把它看成整数123,而不需要显示转换。但其实它们的类型没有改变,VB只是在判断出一个表达式含有不同类型的变量之后,自动在这些变量前加了一个clong()或(int)()这样的转换函数而已.能做到这一点其实是归功于VB的编译器的智能化而已,这并非是VB语言本身的长处或短处.

    结论:

    静态是类型编译时判断;动态是类型运行时判断;强类型是类型独立,不轻易转化;弱类型是类型不严格区分,一般是只要大小放得下,就可以转化。这种是汇编级的观点。面向对象的观点并非这样的,对象并不是大小差不多就是类型兼容,而是关键的接口要相同才叫类型兼容。

    动态语言并非是弱类型,这是不等价的。恰好的,一般动态语言都是强类型语言,因为都是遵照面向对象的观点来设计对象的。

    动态语言的劣势很明显,就是缺少开发环境,运行效率差,当然语言设计上也不完美(静态语言何止千万,但c++也就一个)。

    优势也很明显,就是编写容易,层次高,接近自然语义。动态类型语言效率低下的原因,不在于变量的类型是动态的,而在于对象的方法是动态联编的,在这一点上动态类型语言和Java没什么不同。

    静态类型语言的优势究竟是什么?

    观点一:静态类型语言因为类型强制声明,所以IDE可以做到很好的代码感知能力,因为有IDE的撑腰,所以开发大型系统,复杂系统比较有保障。

    对于像Java来说,IDEA/Eclipse确实在代码感知能力上面已经非常强了,这无疑能够增加对大型系统复杂系统的掌控能力。但是除了Java拥有这么强的IDE武器之外,似乎其他语言从来没有这么强的IDE。C#的VisualStudio在GUI开发方面和Wizard方面很强,但是代码感知能力上和Eclipse差的不是一点半点。至于VisualC++根本就是一个编译器而已,羞于提及Visual这个字眼。更不要说那么多C/C++开发人员都是操起vi吭哧吭哧写了几十万行代码呢。特别是像LinuxKernel这种几百万行代码,也就是用vi写出来的阿,够复杂,够大型,够长生命周期的吧。

    观点二:静态语言相对比较封闭的特点,使得第三方开发包对代码的侵害性可以降到很低。动态语言在这点上表现的就比较差,我想大家都有过从网上下载某个JS包,然后放到项目代码里发生冲突的经历

    也就是说静态类型语言可以保障package的命名空间分割,从而避免命名冲突,代码的良好隔离性。但是这个观点也缺乏说服力。

    静态类型语言中C,VB都缺乏良好的命名空间分割,容易产生冲突,但是并没有影响他们做出来的系统就不够大,不够复杂。

    而Visual C++开发的DLL版本冲突也是臭名昭著的,似乎C++的命名空间没有给它带来很大的帮助。

    而动态类型语言中Ruby/Python/Perl都有比较好的命名空间,特别是Python和Perl,例如CPAN上面的第三方库成吨成吨的,也从来没有听说什么冲突的问题。

    诚然像PHP,JavaScript这样缺乏命名空间的动态语言很容易出现问题,但是这似乎是因为他们缺乏OO机制导致的,而不是因为他们动态类型导致的吧?

    说到大型系统,复杂业务逻辑系统,Google公司很多东西都是用python开发的,这也证明了动态类型语言并非不能做大型的复杂的系统。其实我个人认为:

    动态类型语言,特别是高级动态类型语言,反而能够让人们不需要分心去考虑程序编程问题,而集中精力思考业务逻辑实现,即思考过程即实现过程,用DSL描述问题的过程就是编程的过程,这方面像UnixShell,ruby,SQL,甚至PHP都是相应领域当之无愧的DSL语言。而显然静态类型语言基本都不满足这个要求。

    那静态类型语言的优势究竟是什么呢?我认为就是执行效率非常高。所以但凡需要关注执行性能的地方就得用静态类型语言。其他方面似乎没有什么特别的优势。

     

    给你来个例子把
    
    弱类型语言vbs:
     a=1
     b=a+"1"+"a" //结果是11a,这里 a 成了字符串
     c=a+1 //结果是2 ,这里a则是数字型
    
    强类型语言:c#
    int a=2
    string b=a.ToString()+"1"+"a"
    int c=a+1
    
    看到了吗?区分大小写,需要实现申明类型外,一个重要的区别是,弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型
    而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也有一定的默认转换,当绝没有弱类型那么随便
    
    展开全文
  • 主要介绍了动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍,需要的朋友可以参考下
  • 弱类型:容忍隐式类型转换。比如js中: 1+'a' > '1a' 以及c中double可以隐式转换为int 强类型:不容忍隐式类型转换。比如python中: >>> "1"+2 Traceback (most recent call last): File "<...

    弱类型:容忍隐式类型转换。比如js中:

    1+'a'
    > '1a'

    以及c中double可以隐式转换为int

    强类型:不容忍隐式类型转换。比如python中:

    >>> "1"+2
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: cannot concatenate 'str' and 'int' objects

    静态类型:编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误(能做到运行前错误检查,故语言本身就能提供类型报错、代码提示、自动补全等功能,IDE也能提供各类服务,比如智能的rename、快捷进入相应类内部阅读代码等)。

    动态类型:编译的时候不知道每一个变量的类型,运行时进行类型检查和绑定,因为类型错误而不能做的事情是运行时错误。

    var a = 1;
    typeof a;
    > "number"
    a = 'aa'
    typeof a;
    > "string"

    各种类型语言列举:

    弱类型、静态类型 : C/C++
    弱类型、动态类型: JS/VB/Perl/PHP
    强类型、静态类型 :Java/C#
    强类型、动态类型 :Python, Scheme
    静态显式类型 :Java/C
    静态隐式类型 :Ocaml, Haskell

    展开全文
  • C语言中强类型&弱类型

    千次阅读 2017-10-22 14:10:53
    强类型:以初始化的全局数据...弱类型:未初始化的全局数据; main.c #include short x = 10; short y = 10; void func(); int main() { fun(); printf("x=%d\n,y=%d\n"); return 0; }test.c int x ; void func
  • 弱类型语言也称为弱类型定义语言。与强类型定义相反。像vb,php等就属于弱类型语言,这篇文章给大家详细介绍关于PHP弱类型的安全问题,有需要的可以参考借鉴,下面来一起看看吧。
  • PHP弱类型安全

    千次阅读 2019-03-24 10:47:18
    变量是弱类型,比较时会自动转换 PHP 内置函数对于传入参数的松散处理 比较时的自动转换 PHP 中在使用 == 比较不同类型变量时会存在变量转换。如: $a = null, $b = false; # true $a = '', $b = null; # true # ...
  • 强类型和弱类型简介

    千次阅读 2018-03-04 21:23:54
    弱类型在执行的时候才会确定类型, 强类型安全,而且效率高。弱类型相比而言不安全 如:强类型 的DataSet 提高运行效率。 可以设定DataSet 的初始值 每个变量和对象都必须具有声明类型。...
  • 弱类型语言和强类型语言

    万次阅读 多人点赞 2018-03-06 22:05:27
    一、强类型语言 强类型语言是一种强制类型定义的语言,一旦某一个变量被定义类型,如果不经过强制转换,则它永远就是...二、弱类型语言 弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据...
  • 弱类型是什么意思,本文可以给您一点概念!
  • 弱类型语言与强类型语言

    千次阅读 2016-07-22 17:24:35
    弱类型语言与强类型语言 弱类型语言允许将一块内存看做多种类型。比如直接将整型变量与字符变量相加。C and C++ 是静态语言,也是弱类型语言;Perl and PHP 是动态语言,但也是弱类型语言。例:在vbscript中,可以将...
  • 主要介绍了编程语言里的静态、动态、强类型、弱类型等概念介绍,需要的朋友可以参考下
  • php的弱类型比较

    千次阅读 2019-03-01 21:41:15
    1、==和=== ==为弱相等,也就是说12=="12" --> true,而且12=="12cdf" -->...而且bool类型的true和任意字符串的弱类型相等 ===为完全相等,数据类型和值都相等时返回true。 这里是php手册上全面的说明:h...
  • 什么是强类型?什么是弱类型

    千次阅读 2019-06-28 16:53:17
    强/弱类型是指类型检查的严格程度。语言有无类型、弱类型、强类型3中。  无类型的不检查,甚至不区分指令和数据。  弱类型的检查很弱,仅能严格地区分指令和数据。  强类型则严格在编译期进行检查。  弱类型...
  • JavaScript 弱类型浅谈

    千次阅读 2018-05-28 19:47:05
     按照计算机语言的类型系统的设计方式,可以分为强类型和弱类型两种。二者之间的区别,就在于计算时是否可以不同类型之间对使用者透明地隐式转换。从使用者的角度来看,如果一个语言可以隐式转换它的所有类型,那么...
  • php 弱类型比较

    千次阅读 2019-01-26 11:04:00
    ⚪ “0e&amp;quot;开头跟数字的字符串(例如&amp;...⚪ 布尔值true和任意字符串都相等。 false==&amp;quot;&amp;quot;==0==NULL //true &amp;quot;admin&amp;quot;=
  • 弱类型和强类型的简单理解

    千次阅读 2015-09-12 20:04:22
    弱类型和强类型的简单理解强/弱类型是指类型检查的严格程度的。无论哪种类型的语言,对于变量而言,都存在“类型”和“值”两个概念。对于强类型语言,要求所有的变量必须先定义后使用,并且指定类型的变量只能接受...
  • 浅谈PHP弱类型安全

    万次阅读 2015-01-14 11:54:07
    0x00 弱类型初探 没有人质疑php的简单强大,它提供了很多特性供开发者使用,其中一个就是弱类型机制。 在弱类型机制下 你能够执行这样的操作 1 2 3 4 5 $var = 1; $var = array(); $var = "string"; ?...
  • 【JavaScript】——强类型和弱类型

    千次阅读 2018-07-03 10:43:52
    强弱类型的判别 按照计算机语言的类型系统的设计方式,可以分为强类型和弱类型两种。二者之间的区别,就在于计算时是否可以不同类型之间对使用者透明地隐式转换。What弱类型从使用者的角度来看,如果一个语言可以...
  • c# 中的泛型以及强类型与弱类型

    千次阅读 2015-05-04 15:40:17
    (1)没有泛型的时候,所有的对象都是以object为基础(object是所有对象的基类),如果要使用时必须进行强制类型转换。对于值类型的转换,则会导致不断拆箱、装箱的过程,会造成系统不停地分配内存、垃圾回收、资源...
  • 弱类型:偏向于容忍隐式类型转换。譬如说C语言的int可以变成double 静态类型:编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误。 动态类型:编译的时候不知道每一个变量的类型,因为类型...
  • 什么是弱类型的语言,什么是强类型的语言。 弱类型语言允许将一块内存看做多种类型。 如: C语言定义变量,int+变量名,实则前面的int就似给变量内存划分了等级,int定义整形所以空间里只能存放整形,这就是强类型...
  • 将知识点分门别类可以更好的记忆,编程语言也是,同类型的语言之间也可以相互印证,更全面的理解。 下面转自知乎。 基础概念 Program Errorstrapped errors。解释器或编译器不能处理的错误。导致程序终止执行,如除...
  • 强类型和弱类型的区别---非正确版

    千次阅读 2016-10-07 19:32:35
    强/弱类型是指类型检查的严格程度的。语言有无类型,弱类型和强类型三种。无类型的不检查,甚至不区分指令和数据。弱类型的检查很弱,仅能严格的区分指令和数据。强类型的则严格的在编译期进行检查。 强类型语言在...
  • 强类型和弱类型的语言有什么区别

    万次阅读 多人点赞 2019-09-11 17:20:50
    强类型语言  强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。  java、.NET、C++等都是... 与其相对应的是弱类型语言:数据类型...
  • 今天小熙突然想到一个问题,那就是Java到底是动态语言还是静态语言,是强类型还是弱类型呢?虽然知道但是还是不够深入,接下来就一起探讨下吧。 二. 图释 小熙碰巧看到一张,完美的区分了以上的问题 如图所示,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 252,111
精华内容 100,844
关键字:

弱类型的意思