精华内容
下载资源
问答
  • 强类型和弱类型的语言有什么区别

    万次阅读 多人点赞 2019-09-11 17:20:50
    强类型语言  强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。  java、.NET、C++等都是... 与其相对应的是弱类型语言:数据类型...

    强类型语言

      强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。

      java、.NET、C++等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

    例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。

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

      强类型和弱类型的语言有什么区别

      弱类型语言

      弱类型语言也称为弱类型定义语言。与强类型定义相反。像vb,php等就属于弱类型语言·

      一种类型可以被忽略的语言,与强类型定义相反。VBScript是弱类型定义的。在VBScript中,可以将字符串‘12’和整数3进行连接得到字符串‘123’,然后可以把它看成整数123,而不需要显示转换。

      但其实它们的类型没有改变,VB只是在判断出一个表达式含有不同类型的变量之后,自动在这些变量前加了一个clong()或(int)()这样的转换函数而已。能做到这一点其实是归功于VB的编译器的智能化而已,这并非是VB语言本身的长处或短处。

      强类型语言和弱类型语言的区别

      编译型和解释型

      我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(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

      看到了吗?区分大小写,需要实现申明类型外,一个重要的区别是,弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型

      而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也有一定的默认转换,当绝没有弱类型那么随便

      ps:弱类型代码简单,但因为变量没有确定的类型,所以容易出错!强类型代码复杂(比如:转换日期显示格式 (convert.toDateTIme(“2007-1-1 08:08:08”)).ToString(“yyyy-MM-dd”),呵呵你可以看到这种写法相当麻烦),但因为有严格定义所以不容易出错

    展开全文
  • 弱类型:容忍隐式类型转换。比如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

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

    千次阅读 2017-02-25 15:01:20
    强类型语言与弱类型语言强类型语言强类型语言的变量的类型一旦确定,如果不经过显示类型转换,就不会变成其他数据类型,即完全不允类型许隐式转换的语言。比如Java、Python就是强类型语言。弱类型语言弱类型语言是...

    强类型语言与弱类型语言

    强类型语言

    强类型语言的变量的类型一旦确定,如果不经过显示类型转换,就不会变成其他数据类型,即完全不允类型许隐式转换的语言。比如Java、Python就是强类型语言。

    弱类型语言

    弱类型语言是容忍类型隐式转换的语言,即在满足一定条件时可以进行类型隐式转换。比如C、C++就是弱类型语言。

    无类型语言

    完全允许类型进行隐式转换的语言,即任何情况下都可进行隐式转换的语言。比如汇编语言。

    各类型语言的优缺点

    1.强类型语言由于类型之间不可隐式转换而更加可靠。同时,强类型语言要求完全显示转换,开发效率低。
    2.弱类型语言的开发效率相比强类型语言高一些,但可靠性弱一些,容易出错。

    展开全文
  • 【JavaScript】——强类型和弱类型

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


    强弱类型的判别

     按照计算机语言的类型系统的设计方式,可以分为强类型和弱类型两种。

    二者之间的区别,就在于计算时是否可以不同类型之间对使用者透明地隐式转换。

    What

    弱类型

    从使用者的角度来看,如果一个语言可以隐式转换它的所有类型,那么它的变量、表达式等在参与运算时,即使类型不正确,也能通过隐式转换来得到正确地类型,这对使用者而言,就好像所有类型都能进行所有运算一样,所以这样的语言被称作弱类型。

    强类型

    与此相对,强类型语言的类型之间不一定有隐式转换。强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。

    java、.NET、C++等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

    例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。

     

     

    转换

    弱类型转换

     一般规律是,约束越强越不容易出错,但编写程序时也越麻烦。在JavaScript中,因为约束比较弱,所以容易出现这种错误:最简单的例子:
     var a =200;

     var b ="1";

     var c= a + b;

       你可能期望c是201,但实际上它是"2001",这个错误在强类型语言中决不会出现。然而正是因为JavaScript没有这些约束,所以可以很方便地拼接数字和字符串类型。

     

    在循环语句中(if,while)中,一个Object对象可以隐式的转换从BOOLEAN值。
    var obj = {name:'jack'}
    if(obj){
        //do more
    }

     

    强类型转换

    强类型如c,在c中的算术转换中对于所有比int小的类型,包括char, signed char, unsigned char, short, unsigned short,首先会提升为int类型。
     在进行运算时,以表达式中最长类型为主,将其他类型位据均转换成该类型

    强类型如c,在c中的算术转换中对于所有比int小的类型,包括char, signed char, unsigned char, short, unsigned short,首先会提升为int类型。
     在进行运算时,以表达式中最长类型为主,将其他类型位据均转换成该类型,如:
    (1)若运算数中有double型或float型,则其他类型数据均转换成double类型进行运算。
    (2)若运算数中最长的类型为long型.则其他类型数均转换成long型数。
    (3)若运算数中最长类型为int型,则char型也转换成int型进行运算。算术转换是在运算过程中自动完成的。

     

    优缺点

    弱类型

    优点

    a、js减少网络传输

    在js出现之前,传统的数据提交和验证工作均是由客户端浏览器通过网络传输到服务器上进行,如果数据量很大,这对于网络和服务器的资源来说实在是一种无形浪费,但使用js就可以在客户端就行数据验证。

    b、js方便操纵html对象。

    js可以方便的操纵html页面中的对象,用户可以使用js来控制页面中各个元素的外观、状态、甚至运行方式。

    c、js支持分布式运算。

    js可以使多种任务仅在客户端就可以完成,而不需要网络和服务器的参与,从而支持分布式的运算和处理。

     

     

    缺点

    a、各个浏览器对js的支持程度不同

    b、web安全对js一些功能有限制,例如读写、保存数据等

     

     

     

     

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

    万次阅读 多人点赞 2014-11-03 16:30:01
    编译型解释型 我们先看看编译型,其实它汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(Compile),而负责编译的程序...
  • 强类型弱类型

    2017-05-31 13:41:43
    强类型——- 是自定义类所具有的优势。它使得对象处理的数据更容易被理解,而不需要与ADO.NETXML编程模型打交道。这在大型系统里是很有用的,特别是当设计者定义了由自定义类所组成的数据访问层,并把设计向组织...
  • NoSql的四种数据类型和各自的优缺点

    千次阅读 2018-09-19 21:24:10
    基本上只关注过key-value,其他的看过,没过脑子,所以今天特意找到四种不同的数据类型优缺点和使用场景。 -----------------------------------废话不多说,来吧---------------------------------...
  • 强类型语言 强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就死该数据类型。 强类型语言包括:Java、.net、Python、C++等语言。其中Python是动态语言,是强类型定义语言,是类型...
  • 强类型语言是直接操纵内存,容易出内存越界泄漏的问题。在类型的转换方面是很多约束,甚至强制转换也要很谨慎,一不小心就出大问题。 优点:弱类型使用简单,更灵活多变。 缺点:因为包含类型信息,所以在代码的...
  • 强类型指的是不会发生隐式类型转换(PHPJavascript就是弱类型语言) 2)为什么要用Python? 胶水语言,轮子多,应用广泛(优点) 语言灵活,生产力高(优点) 性能问题、代码维护问...
  • 4强类型定义语言和弱类型定义语言  在软考期间,学习了程序语言的翻译方式有多种:解释、编译。那到底什么是解释编译呢。另外编程语言除了编译型解释型,还有静态语言、动态语言、强类型语言、弱类型语言。...
  • 1,动态语言的最大特点就是duck type,他的灵活性可以完全无视什么多态接口,不用被类型束缚。但是这就导致了你的大部分错误都要再运行时才能发现 2, ...弱类型,IDE基本无法辨别赋值类型的错
  • 强类型优缺点 优点强类型的Hub可以避免魔法函数名,相比弱类型更容易维护发现问题,直接上代码 缺点特么的得多些好几行代码 代码 接口定义 /// <summary> /// 服务端接口 /// </summary> ...
  • 译型解释型。  我们先看看编译型,其实它汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(Compile),而负责编译的程序...
  • 注意这里样本的权值最终训练的分类器组对应的权值α是不同的,样本的权重只在训练过程中用到,而α在训练过程测试过程都有用到。 现在假设分类器是带一个节点的简单决策树,该决策树会选择2个属性(假设...
  • 常见分类算法优缺点

    千次阅读 2018-10-21 21:36:54
    本文主要回顾下几个常用算法的适应场景及其优缺点! 机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    1、发布一个下载地址 2、用户进行软件下载并使用 回归测试: 回归测试可以发生在任何一个阶段 分为完全回归选择回归 回归范围 回归分类 特点 优点 缺点 适用范围 完全回归 完全重复法 每次回归测试都要执行全部...
  • [前端面试]2020 前端面试 | 第一波面试题总结

    千次阅读 多人点赞 2020-02-13 14:31:55
    数组排序 第一种方法利用sort方法 第二种利用冒泡排序 说一说JavaScript 是什么语言 JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。 它的解释器被称为JavaScript引擎,...
  • 参考文章:行式存储和列式存储优缺点和paruqet文件结构 一、列式存储和行式存储的比较 列式存储和行式存储是针对数据在存储介质中的排序形式而言的,假设存在一张table,那么: 行式存储:依次连续存储第1、2、3...
  • 软件测试面试题汇总

    万次阅读 多人点赞 2018-09-27 12:31:09
    28、软件配置管理工作开展的情况认识? ................................................................................................. 9 29、你觉得软件测试通过的标准应该是什么样的? ................
  • 朴素贝叶斯NB(分类)(生成) 优点 稳定的分类效率 ...对小规模数据表现很好,能处理多分类任务,...缺点 需要计算先验概率 分类决策存在错误率 对输入数据的表达形式很敏感 (不能学习...
  • 机器学习各类算法的优缺点

    千次阅读 2018-07-30 22:06:19
    1.逻辑回归 二项logistic回归模型是一种分类...1. 计算代价不高,易于理解实现; 2. 适用于需要得到有分类概率额场景; 3.对小数据噪声的鲁棒性好,不会收轻微的多重共线性的影响 缺点: 1. 容易欠拟合,分...
  • 机器学习常用算法的优缺点总结

    千次阅读 2018-12-22 20:30:35
    决策树 一、 决策树优点 1、决策树易于理解解释,可以...二、决策树缺点 1、对缺失数据处理比较困难。 2、容易出现过拟合问题。 3、忽略数据集中属性的相互关联。 4、ID3算法计算信息增益时结果偏向数值...
  • javascript优缺点

    千次阅读 2017-06-27 11:12:08
    1.什么是JavaScript JavaScript是一种基于对象(Object)事件驱动(Event Driven)并具有相对...它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。 2.JavaS
  • 常见数据结构优缺点

    千次阅读 2018-12-02 22:23:53
    通用数据结构: 1.数组 分类: 无序数组,有序数组 ...一般针对数据量较小且数据可预知的情况,创建时指定大小,不利于扩展;在内存中预留一块连续的区域,内存空置率高利用率较...只能存储一种类型的数据 2.链...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,167
精华内容 6,866
关键字:

强类型和弱类型的优缺点