一、值类型与引用类型
1、值类型:
存放地方:存放在内存的栈中
包括:简单类型(int 、double、float等)
结构类型(Struct types)
枚举类型(Enmu types)
2、引用类型:
存放地方:存放在内存堆中
包含:类,接口,数组,字符串
3、值类型与引用类型
特点 |
值类型 |
引用类型 |
存储位置 |
栈 |
堆 |
默认值 |
0 |
null |
传递给方法的参数 |
复制值 |
引用 |
变量储存的 |
实际值 |
引用地址 |
4、装箱和拆箱
装箱:值类型自动转化为引用类型
示例:int num=200;
Object obj=num;
拆箱:引用类型转化为值类型
示例:Object obj=200;
Int num=(int)obj;
装箱的弊端:消耗的时间比拆箱多
注:在程序中不要随意做装箱和拆箱操作
二、枚举:属于值类型,用于定义一组常数
1、定义限制:不能定义自己的方法,不能实现接口,不能定义属性或索引
2、声明:
声明语法:
访问修饰符 enum 名称
{
枚举成员
}
注:成员之间用“ , ”分隔
示例:public enum Sex
{
Boy,
Girl
}
3、使用:
使用场景:
a) 定义静态常量,值按顺序排列
b) 成员可穷举
三、结构(值类型)
1、概念:是程序员自定义的、类似于类、实现方法与类不同的数据类型
2、与类比较
类 |
结构 |
引用类型 |
值类型 |
可赋初始值 |
声明字段不可赋初始值 |
可声明无参构造函数 |
不能声明无参构造函数 |
必须进行实例化 |
可以不用new进行实例化 |
能被继承除了sealed类 |
不能被继承 |
3、声明语法:
struct 名称
{
成员
}
注:成员为:字段、属性、方法、以及有参构造