突然想写博客了,因为学的东西比较杂,而且忘性又是一流的好,笔记也是乱糟糟的,所以总是学了忘,用到了又总是掘地三尺找不到 写博客至少工整一点,为以后查找方便,如果能够对别人有点小帮助,那就更好了,不过本人也只有小学学历,我写的只能耐着性子看了,如果有错误和不好的地方,希望能够指正
本文及之后的内容 主要是总结一下本人所学过编程语言的基础部分
编程语言有强类型与弱类型之分:主要区别在变量类型检查的严格程度
强类型语言中变量是不允许改变类型的,但是弱类型语言中变量的类型却可以随具体情况而定,许多脚本语言是弱类型
ps:刚百度下还有个无类型 搜了一下 没找到结果
另ps:强类型语言有强制转换,转换的是变量的值的类型,而不是变量的类型
1 java
1.1 基本类型
java的数据类型在强语言中是蛮标准的,分别是:
byte:
[-128, 127] 是最小的整数类型。主要用于节省内存空间关键。主要用作 网络、文件或者其他IO的数据流
short [- 2^15, 2^15 - 1] 不太常用
int [- 2^31, 2^31 - 1]
long [- 2^63, 2^63 - 1] 默认为0L 如果long放不下的整数用BigInteger
char [0, 2^16 -1] 无符号,默认值为'\u0000',char类型可以参与整数运算
float 32位的单精度浮点数
double 64位将浮点子面子赋给某个变量时,如果不显示在字面值后面加f或者F,则默认为double类型 如果double放不下的浮点数用BigDecimal
boolean 只有true false 没有其他可能
1.2 字面量
1.2.1 整形字面量
二进制:加前缀0B 0B11转为十进制为3 1.7之后版本才有
八进制:加前缀0 011转为十进制为9
十六进制:加前缀0X
float:加后缀F
double:后缀D
long:后缀L
1.2.2 字符字面量
转义字符用 \ 表示,可以使用八进制\ddd或十六\xxxx进制表示字符,如'a'的十进制为97,转为八进制为141 十六进制为61 则'\141','\u0061'都为'a' 还有\r \t等等
1.3 类型转换
基本类型的顺序为:byte
<(short=char)< int < long < float < double
1.3.1
自动类型转换
1.3.2 强制类型转换
如果将大的数据转为小的 则需用强制转换,需要注意的是如果强制转换超出存储范围,得到的将是错误的数据,浮点数强转会丢失精度
1.4 常量
在java中定义常量用final关键字,不过一般为调用方便,会加个static
ps:final修饰的基本类型的值不可变,修饰的引用类型变量的引用不可变,但是引用变量的内部的值是可以变得
1.5 自动装箱、拆箱
将基本类型与封装类型自动转换,如
Integer i=5; int j=i;
最后附上java类型的图
2 c
2.1.基本类型
c语言也是强类型语言
也是char、byte、short、int、long、float、double
但是c中有有符号类型singed和无符号类型unsinged之分,而且基本类型的长度是根据系统而定的,他们之间的大小规则为长整形至少和整形一样长,整形至少和短整形一样长 <c和指针>中有说各类型的最大最小值在limits.h中有定义
sizeof也可以查看
另外,c语言中的bool为非0即真
枚举类型
enum a{CUP,PINT=10,HALF}; 枚举中的值表示符号常量
指针类型 如int *a;
2.2
typedef #define
typedef关键字可以重新定义一个方便使用的别名,类似#define,但是他是由编译器解释
#define没有类型检查
只是做替换工作
一般推荐使用typedef创建新的类型名
2.3 const
c中定义常量
编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有存储与读内存的操作
3 c++
3.1 基本类型与c类似
3.2 引用
引用是变量的别名,对引用的操作与对变量直接操作完全一样 形如int a=123; int &b=a; 改变b的值,a也会改变
4 php
4.1 数据类型
php是弱类型语言 有八种类型
boolean 只有true和false
string 字符串类型 字符串用单引号和双引号是有区别的
integer 整形
float (也称作double) 浮点型
array 数组
object 对象
resource 资源类型
null 空值
php定义变量一个万能的$就可以
php如果需要转换类型 可以用强制转换 如:$a=123//整形 $b=(string)$a;//此时 $b就是字符串类型,还可以用settype函数
如果需要确定变量的类型 可以使用 is_xxx 进行检测,如is_int($a);
4.2 常量
常量有define和const,他们的区别还是蛮大的,具体的百度一下吧
此外 php还预定义了一些常用的常量 如__FILE__,__LINE__
4.3 引用
类似c++中的引用 但是一般使用频繁或者大的对象的时候用
4.4 全等
比较数据类型相等且值相等 如"5"==5 //true "5"===5 //false 许多弱类型语言都有这个
5 python
python的语法算是比较特殊的了 变量直接赋值就可以 而且函数的大括号被缩进替代
5.1 数据类型
整形有int,long,float,complex
布尔类型只有true和false
字符串类型 有单引号 双引号 三引号(类似php的<<<) python中字符串可以通过下标获得
列表 类似数组 list=['1','2','3']
元组 类似列表 但是元组的值是不能改变的
list=('1','2','3')
字典 键值对 dict= {'name': 'john','code':6734}
日期
5.2 类型转换
有专门的函数调用 如:float(x) 将x转为float类型
6 js
js定义变量用一个通用的var 如 var a=123;
js提供了typeof检测变量的类型 instaceof确定一个对象是类的实例、类的子类,还是实现了某个特定接口
undefined var声明的变量未初始化是 变量的值即undefined 主要用于判断
null 空对象指针
boolean js中Boolean的值根据具体请而定,
number 数字类型 包括整形 浮点型
string 字符串
array 数组
object 对象类型
7 object-c
7.1 基本数据类型
oc是c的扩展 所以有一些数据类型与c一样 int、short、long、float、double、long double、char
oc特有的类型
id 类似c的void *
BOOL
SEL 选择器类型
Class 类类型
nil Nil 空对象
8 swift 一种强类型静态语言
声明变量用var 常量 let
8.1
swift的基本类型有Int Int8 Int16Int32Int64和UIntxx 浮点型有Float和Double 布尔型Bool 字符串String 字符型Character
可选类型用var a?等同var a:Optional<type> 一种安全机制 如果必选 则var a!
元组 let a=(1,2,3); 可以带键
8.2 别名
typealias short=Int8; 类似c的type
8.3 强制类型转换
用类型的构造 如Int(12.3)
8.4 断言
assert
总结:
好多人说编程语言一通百通,虽然不全对 但是还是很有道理的 最起码有很多相通的地方,基本类型都差不多,只不过语言对基本类型的精度不同,通过对比,或许更能了解各种语言的差别
第一次写 有点混乱 而且很多都是边找书边写的
应该漏了不少东西 基础果然忘了好多 初学还是不要看了 免得误导
本文详细介绍了多种编程语言(包括Java、C、C++、PHP、Python、JS、Objective-C和Swift)的基本数据类型、类型转换、常量和引用等概念,并对比了强类型与弱类型语言的特点。
111

被折叠的 条评论
为什么被折叠?



