数据类型
1.1数据类型作用
规范了对于不同的数据所采用的的存储方式,存储空间等信息不同,计算机存储不同数据其读取速度也有区别
1.2数据类型分类
1.2.1值类型
-
什么是值类型:在计算机内存中声明一个值类型变量,则直接在其变量名所指向的位置内存栈空间中存储其值
-
在调用时,直接通过变量名找到内存栈的位置即可获取到存储的数据结果
-
值类型直接存储其值,可以直接改变其值
-
调用速度快,但是存储空间小
-
内存栈:先进后出
-
15种数据类型除过string和object全部都是值类型、结构、枚举...
1.2.2引用类型
-
什么是引用类型:在计算机内存中声明一个引用类型变量,则在内存堆中开辟一个空间存储其数据,同时在内存栈中开辟一个空间存储堆数据空间位置的坐标指针
-
在调用时,直接通过变量名先找到内存栈中的数据,这个数据是一个内存堆的位置指针数据,然后计算机再根据这个指针数据在内存堆中获取存储的数据结果
-
引用类型栈中存储其地址,堆中存储其数据,所以引用类型声明之后则值无法改变,改变方式是重新在堆中开辟一个新的内存空间存储值,然后栈中的存储新的空间地址
-
调用速度慢,但是存储空间大
-
string、object、类、接口...
数据类型转换
2.1数据类型转换的必要性
-
在不同的场合下需要使用同一种数据的不同类型
-
属性赋值的必要
-
两个数据之间要进行一定的处理,此时务必保证两个数据类型一致
2.2警告
报错是指,程序在未执行之前,通过IDE初步编译发现其语法有明显的错误,这时会对代码使用红色波浪线做出错误提示
警告是指,程序在未执行之前的初步编译过程中并未发现语法有明显错误,只是预测这个代码在执行过程中有可能会出错,提出的一个绿色波浪线警告标志
目前的警告是告诉我们比较运算符"=="左右两边的数据类型应该要保持一致才能更好的比较
2.3数据类型转换方式
隐式转换
计算机自己能够根据目前情况下所需的数据类型将数据直接转成目标类
object o = "asd";
显示转换(强制转换)
计算机自己无法完成将数据转成目标类型,需要使用一些强制手段处理数据转成目标类型