1、常用数据类型
| **常用数据类型** | **Java** | **C#** | **举例** |
| ---------------- | -------- | ------ | ---------------- |
| **整型** | int | int | **年龄** |
| **浮点型** | float | float | **成绩** |
| **双精度型** | double | double | **圆周率** |
| **布尔型** | boolean | bool | **是否少数民族** |
| **枚举类型** | enum | enum | **颜色** |
| **字符串** | String | string | **家庭住址** |
数据类型按存储方式可分为两类:`值类型`和`引用类型 `
2、分析值类型和引用类型
值类型:
- 不同的变量会分配不同的存储空间
- 存储空间中存储的是该变量的值
- 改变一个变量值不会影响另一个变量值
引用类型
- 赋值是把原对象的引用传递给另一个引用
- 两个引用指向同一块内存空间
复制数组:
- 循环遍历 将值进行复制
- Clone(); -->将数组进行复制
3、结构
1、什么是结构
一个值类型的类,所创建出的对象是值类型的
结构的特点:
值类型
具有较快数据提取速度
字段不能直接赋初值
可以有成员方法
2、创建结构
结构中有字段,也可以有方法
~~~C#
[修饰符] struct [结构名]{
//字段
//成员方法
}
~~~
3、创建结构对象
1、不需要new
~~~C#
Student stu; //创建学生结构
stu.id = 1001; //给学号赋值
stu.age = 20; //给年龄赋值
经验:
当对象需要用较少的字段来表示时,可以选用结构
结构是值类型,数据提取速度快
但是频繁的赋值操作会占用较大空间, 在开发中多数情况下都定义为类!!!
4、装箱和拆箱
值类型和引用类型之间的转换
~~~C#
static void Main(string[] args)
{
int i = 123;
object o = i; // 装箱
int j = (int)o; //拆箱
}
~~~
5、值传递和引用传递
5.1、值传递
使用 ref 方式传递,可以将对参数值的更改保留
5.2、引用传递