弱类型和强类型的简单理解

弱类型和强类型的简单理解

强类型、弱类型是指类型检查的严格程度的。无论哪种语言,对于变量而言,都存在“类型”和“值”两个概念。对于强类型语言,要求所有的变量必须先定义(定义时必须声明数据类型)后使用,并且指定类型的变量只能接受类型与之匹配的值。

如Java的变量定义和使用语句为:

int a = 10;
System.out.println(a);

这意味着每个变量和每个表达式都有一个在编译时就确定的类型,类型限制了变量能赋的值,限制了表达式能产生的值同时也限制了在这些值上可以进行的操作。强类型语言要求编译时进行更为严格的语法检查,减少了编程错误的发生。

弱类型的变量类型则是无需声明的,由解释器解释。

总结:

  • 强类型的变量类型是一经声明不能改变的,在编译时就进行检查,如Java
  • 弱类型变量是根据使用的情况随时改变的,由解释器解释,如JavaScript

原文地址:https://www.cnblogs.com/HwyStudy/p/9695265.html

时间: 2024-10-03 20:32:46

弱类型和强类型的简单理解的相关文章

弱类型、强类型、动态类型、静态类型语言的区别是什么?

作者:amalgamation链接:https://www.zhihu.com/question/19918532/answer/21647195来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1. 先定义一些基础概念 Program Errors trapped errors.导致程序终止执行,如除0,Java中数组越界访问 untrapped errors. 出错后继续执行,但可能出现任意行为.如C里的缓冲区溢出.Jump到错误地址 Forbidden Beh

弱类型、强类型、动态类型、静态类型

装载: https://www.zhihu.com/question/19918532 弱类型: > "1"+2 '12' 强类型: >>> "1"+2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects

简单理解弱类型、动态类型、解释型语言

弱类型和强类型 简单的说,二者的区别就是是否偏向于容忍隐式类型转换. $str = 'abc'; //str是一个字符串 $str = 1; //这时候又变成整形 if($str){}; //这时候又是一个布尔型 所以php是弱类型语言,变量类型会自动转换. 动态类型和静态类型 简单的说,二者的区别就是声明变量的时候是否需要指定变量类型. php是动态类型语言,声明变量时无需指定类型. 注意: 一个语言是不是强类型语言和是不是动态类型语言没有必然联系. 动态语言和静态语言 简单的说,二者的区别就

关于强类型-弱类型

强类型:为所有变量指定数据类型称为“强类型”. 强/弱类型是指类型检查的严格程度的. 语言有无类型,弱类型和强类型三种. 1.无类型的不检查,甚至不区分指令和数据. 2.弱类型的检查很弱,仅能严格的区分指令和数据. 3.强类型的则严格的在编译期进行检查. 强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作. 复制去Google翻译翻译结果

[转]c# 泛类型(泛型) 以及强类型与弱类型的 理解及优化

[泛型的概念](1)没有泛型的时候,所有的对象都是以object为基础,如果要使用时必须进行强制类型转换,如果对于值类型,则会导致不断拆箱装箱的过程,对系统消耗很大.(2)使用泛型时不需要通过object类进行装箱拆箱,使用的时候都会是确定的类型.(3)泛型的概念一开始是由集合引入,因为集合中的类型都是基于object类.可以在集合中使用泛型类.(4)泛型不仅仅用于集合,还可以用于委托.接口和方法.泛型的优点:高性能ArrayList list1 = new ArrayList();list1.

什么是编程语言的强类型,弱类型

给你来个例子把 弱类型语言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 看到了吗?区分大小写,需要实现申明类型外,一个重要的区别是,弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型 而强类型则没这样的规定,不同类型间

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

收集了一些关于编程语言分类的文章: 一. 作者:rainoftime链接:https://www.zhihu.com/question/19918532/answer/21647195来源:知乎 类型系统的一些概念,众说纷纭,使用上也比较乱.有些东西,甚至不好严格定义.以下算学术界的一种相对"严格"的说法. 1. 先定义一些基础概念 Program Errors trapped errors.导致程序终止执行,如除0,Java中数组越界访问 untrapped errors. 出错后继

动态语言 静态语言 强类型语言 弱类型语言

一 .静态语言的优势到底在哪? 引用 是像Java或者C#这样强类型的准静态语言在实现复杂的业务逻辑.开发大型商业系统.以及那些生命周期很长的应用中也有着非常强的优势 这是一个存在于大家心里常识了.我承认我自己在潜意识里面也觉得静态强类型语言适合开发复杂,大型系统.而弱类型脚本语言不适合开发太复杂,太大型的项目.但是在参与这个讨论过程中,我突然开始置疑这个观点,事实究竟是不是这样的呢? 先定义一下标准: 静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须

静态语言与动态语言,强类型语言与弱类型语言

Dynamic Programming Language (动态语言或动态编程语言) Dynamically Typed Language (动态类型语言) Statically Typed Language (静态类型语言) 动态语言,准确地说,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如众所周知的ECMAScript(JavaScript)便是一个动态语言.除此之外如Ruby.Python等也都属于动态语言,而C.C++等语言则不属于动态语言