值类型和引用类型
来源:互联网 发布:淘宝有趣搜索血滴子 编辑:程序博客网 时间:2024/06/03 11:18
学到值类型和引用类型的时候有点小小的惊讶,因为没有想到会涉及到栈和堆的内容,这时候真的感触很深——知识之间都是联系的温故而知新。
先来了解一下栈和堆(百度百科):
一、堆栈空间分配区别:
1)栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于 数据结构中的栈;
2)堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒 是类似于链表。
二、堆栈缓存方式区别:
1)栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放;
2)堆是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回 收)。所以调用这些对象的速度要相对来得低一些。
三、堆栈数据结构区别:
1)堆(数据结构):堆可以被看成是一棵树,如:堆排序;
2)栈(数据结构):一种先进后出的数据结构。
值类型和引用类型的区别:
值类型和引用类型运行小例子:
1、值类型是先把p1的值赋给p2,然后再对p2进行赋值最后,这个过程p1的值不改变,只有p2的值改变。
2、引用类型是把p1的地址赋给p2,然后对p2指向的地址的内容进行修改,p1和p2指向的是同一地址所以p1对 应地址的内容与p2一致。
定义struct结构(值类型):
运行结果如下
定义class类(引用类型)
运行结果如下
1 0
- 值类型和引用类型
- 值类型和引用类型
- 值类型和引用类型
- 值类型和引用类型
- 引用类型和值类型
- 值类型和引用类型
- 值类型和引用类型
- 值类型和引用类型
- 值类型和引用类型
- 值类型和引用类型
- 值类型和引用类型
- 引用类型和值类型
- 值类型和引用类型
- 值类型和引用类型
- 值类型和引用类型
- 引用类型和值类型
- 值类型和引用类型
- 值类型和引用类型
- C/C++——从ctime使用到随便测一样冒泡排序和堆排序的效率
- 键盘购买指南
- 汇编笔记4
- 《C和指针》——带副作用的宏参数
- 2017 Google hosts 持续更新
- 值类型和引用类型
- C++——二进制输出一个数以及输出double型位数过多情况
- 常用R语言包介绍
- C/C++——一个因为unsigned引发的大问题
- 模板实现双向链表
- python正则表达式系列(2)——re模块常用函数
- Spring 三级父子容器
- css
- P3376 【模板】网络最大流