当前位置: 首页 > news >正文

综合门户类网站有哪些毕业设计做课程网站好

综合门户类网站有哪些,毕业设计做课程网站好,陈木胜老婆吴君如,数字营销专业学什么课程文章目录 知识回顾一、栈#xff08;Stack#xff09;和堆#xff08;Heap#xff09;1、什么是栈和堆2、为什么要分栈和堆3、栈和堆的区别栈堆 4、总结 二、值类型和引用类型1、那么值类型和引用类型到底有什么区别呢#xff1f;值类型引用类型 2、总结 三、特殊的引用类… 文章目录 知识回顾一、栈Stack和堆Heap1、什么是栈和堆2、为什么要分栈和堆3、栈和堆的区别栈堆 4、总结 二、值类型和引用类型1、那么值类型和引用类型到底有什么区别呢值类型引用类型 2、总结 三、特殊的引用类型string1、为什么说string是特殊的引用类型2、理解字符串string引用类型3、如何证明呢使用 GetHashCode 方法通过断点调试直接查看变量指针内存地址 4、总结 专栏推荐完结 知识回顾 C# 中的变量类型可以分为 值类型 和 引用类型 两大类。 值类型 变量类型描述范围byte无符号8位整数0 到 255sbyte有符号8位整数-128 到 127short有符号16位整数-32,768 到 32,767ushort无符号16位整数0 到 65,535int有符号32位整数-2,147,483,648 到 2,147,483,647uint无符号32位整数0 到 4,294,967,295long有符号64位整数-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807ulong无符号64位整数0 到 18,446,744,073,709,551,615float32 位单精度浮点数±1.5 × 10^−45 到 ±3.4 × 10^38精度约7位有效数字double64 位双精度浮点数±5.0 × 10^−324 到 ±1.7 × 10^308精度约15–16位有效数字decimal128 位高精度小数±1.0 × 10^−28 到 ±7.9 × 10^28精度约28–29位有效数字bool8 位布尔型true 或 falsechar16 位单一字符型Unicode字符0 到 65,535 引用类型 变量类型描述范围string字符串任意长度的字符序列理论上最多可达到 2GB 一、栈Stack和堆Heap 要了解值类型和引用类型的区别我们得先得栈和堆的概率有个了解。 1、什么是栈和堆 简单理解就是程序运行时它的数据必须存储在内存中。栈和堆就是计算机内存中的两种不同的存储区域。 2、为什么要分栈和堆 通过分栈和堆程序可以在性能和内存管理上做出平衡从而让程序既高效又灵活。 3、栈和堆的区别 栈 栈空间比较小但是读取速度快。栈存储的是一些简单的数据栈遵循先进后出原则栈就像一个堆叠的盘子。你每次放入一个新盘子数据都会把它放在最上面。拿东西的时候也都是从最上面拿所以非常快速。栈里的数据只在当前函数或方法运行时有效一旦方法执行完毕这些数据就会自动被销毁。 堆 堆空间比较大但是读取速度慢。堆存储的是一些较大的数据。堆就像一个大大的垃圾堆可以随意放东西。它不按照顺序来存放数据而是根据需要分配空间可以存储更复杂的对象堆中的数据不会像栈那样自动清理。但在 C# 中垃圾回收会自动清理不再使用的对象 4、总结 实际上我们写程序并不需要关心内存是如何使用的C#已经帮我们做好了。这里只是简单介绍这个概念有些知识看不懂也没关系比如垃圾回收后面肯定还会详细介绍。现在有个印象就行。 二、值类型和引用类型 在 C# 中数据类型分为两大类值类型Value Types和 引用类型Reference Types。 我们目前学了值类型和引用类型只有变量但是其实不止 值类型其实还有结构体Struct、枚举Enum引用类型还有类Class、 数组Array、委托Delegate。 这些我们后面会一一介绍现在了解一下就行。 1、那么值类型和引用类型到底有什么区别呢 因为只学了变量这里就用变量举例。 值类型 直接存储数据值类型的变量直接保存它们的数据。值类型直接存储在栈上。值类型赋值时会复制值本身。 比如 int a, b; a 100; b a; Console.WriteLine(a的值: a); Console.WriteLine(b的值: b);a 20; // 重新给a赋值b的值不会改变 Console.WriteLine(a的值: a); Console.WriteLine(b的值: b);打印结果正如前面所说重新给a赋值b的值不会改变 画图说明 解释 声明变量 int a, b; 当你声明两个整数变量 a 和 b 时编译器会在栈上为它们各自分配32位的存储空间。此时这两个存储空间是空的没有初始化任何值。 赋值 a 100; 当你给变量 a 赋值为 20 时栈上的存储空间 a 会被写入值 20。这个操作不会重新分配内存而是直接在已经分配的内存位置写入新的值。 赋值 b a; 当你执行 b a; 时栈上的存储空间 b 会被写入 a 的当前值。此时a 和 b 都存储了值 20但它们是独立的存储空间。 重新赋值 a 20; 当你再次给 a 赋值为 20 时栈上的存储空间 a 会被更新为新的值 20。这不会重新分配内存而是直接在已经分配的内存位置写入新的值。 引用类型 间接存储数据引用类型的变量保存的是对实际数据所在位置的引用或地址也叫指针而不是数据本身。引用类型存储在栈上的引用或指针和堆上的实际数据。引用类型赋值时会复制引用但实际的数据不会复制。 画图说明假设a b c都是引用类型 解释 声明引用类型 a 和 b; 这时 a 和 b 都是空引用它们在栈上分配了空间但它们指向的堆内存地址尚未确定二者目前都没有引用任何实际的对象。 给 a 赋值 此时a 作为栈上的一个引用变量指向堆上的值。b 仍然是空引用。 b a; b 也指向 a 的堆值 此时a 和 b 都存储相同的堆内存地址指向相同的堆对象。 a 修改为新值 这时候a b的值就都变成了新值 重新定义 c并给 c 赋值 此时c 是一个新的引用类型变量它在栈上存储了指向堆上c值的地址且与 a 和 b 的值互不影响。 ps:有些小伙伴可能会说了前面不是说了string不就是引用类型吗为什么不用string举例呢这样不是更加直观其实是因为string是特殊的引用类型这个问题我接下来会说。 2、总结 特性值类型 (Value Type)引用类型 (Reference Type)存储方式存储数据的值本身存储数据的引用内存地址赋值行为赋值时会复制数据原始值和复制值互不影响赋值时会复制引用两个变量指向同一个对象存储位置通常存储在栈上 (stack)但结构体和其他类型可能存储在堆上存储在堆上 (heap)引用存储在栈上初始化默认值为零或空值如 0、false、null默认值为 null内存管理系统负责管理内存栈上分配的内存自动释放由垃圾回收器 (GC) 管理内存常见类型基本数据类型如 int、float 等、结构体、枚举类、数组、委托、字符串等 三、特殊的引用类型string 1、为什么说string是特殊的引用类型 学了前面引用类型的知识我们可以拿string测试一下试试。 string str1, str2; str1 名; str2 str1; Console.WriteLine(str1的值: str1); Console.WriteLine(str2的值: str2);str1 字;//重新赋值str1 Console.WriteLine(str1的值: str1); Console.WriteLine(str2的值: str2);按前面引用类型的概念可能你想说第二次打印的结果应该是字 字。 实际上真是这样吗我先来看看执行结果 有人会说如果是值类型,结果倒还说的过去.但是不是说string是引用类型么如果是引用类型的话。输出的结果难道不应该是: 名名字 字么 2、理解字符串string引用类型 理解字符串string在C#中的行为确实可能有些困惑因为它们在某种程度上表现出值类型和引用类型的特性。让我们来详细解释一下。 字符串是不可变的 字符串在C#中是不可变的这意味着一旦你创建了一个字符串对象就不能修改它的内容。当你尝试修改一个字符串时实际上是创建了一个新的字符串对象。 字符串为什么是引用类型 因为它们在堆上分配内存并且在栈上存储对堆上对象的引用。因此多个变量可以引用同一个字符串对象。 3、如何证明呢 使用 GetHashCode 方法 虽然这并不返回内存地址但 GetHashCode 方法会返回一个与字符串内容相关的哈希值。这个值可以作为字符串的“标识符”有时候在调试中它能帮助你判断是否为同一个字符串实例。 string str1 xxxx; string str2 str1; Console.WriteLine(str1.GetHashCode()); Console.WriteLine(str2.GetHashCode());str1 yyyy; Console.WriteLine(str1.GetHashCode()); Console.WriteLine(str2.GetHashCode());结果 通过断点调试直接查看变量指针内存地址 值类型一开始内存地址就不一样 string引用类型开始地址一样重新赋值后地址不一样了 4、总结 字符串不叫值类型因为它们确实具有引用类型的基本特性在堆上分配内存并且在栈上存储引用。尽管字符串的不可变性使得它们在某些方面表现得像值类型但从技术上讲它们仍然是引用类型。 由于字符串的不可变性即使它们是引用类型修改一个字符串变量不会影响其他引用相同字符串的变量。这是因为当你修改字符串时实际上是创建了一个新的字符串对象并将变量的引用指向了这个新对象。 string虽然方便但是有一个小缺点就是频繁的改变string重新赋值会产生内存垃圾优化替代方案我们会在后面进行讲解 专栏推荐 地址【从零开始入门unity游戏开发之——C#篇】【从零开始入门unity游戏开发之——unity篇】【制作100个Unity游戏】【推荐100个unity插件】【实现100个unity特效】【unity框架开发】 完结 赠人玫瑰手有余香如果文章内容对你有所帮助请不要吝啬你的点赞评论和关注你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法也欢迎评论私信告诉我哦 好了我是向宇https://xiangyu.blog.csdn.net 一位在小公司默默奋斗的开发者闲暇之余边学习边记录分享站在巨人的肩膀上通过学习前辈们的经验总是会给我很多帮助和启发如果你遇到任何问题也欢迎你评论私信或者加群找我 虽然有些问题我也不一定会但是我会查阅各方资料争取给出最好的建议希望可以帮助更多想学编程的人共勉~
http://www.hkea.cn/news/14569007/

相关文章:

  • 一起做业英语网站seo技术教程在线咨询
  • 贵州省住房与城乡建设厅门户网站免费cms建站
  • 广州建设网站首页环球影城消费一天
  • 河南建站网站电商界面设计图
  • 营销推广型网站公司酒泉网站建设服务
  • 无锡网站关键词优化软件咨询自己做的软件怎么发布
  • 惠州网站建设多少钱php网站环境配置
  • c 网站开发 视频教程欧米茄表官网
  • 网站建设论坛报告宣传软文是什么
  • 数据开发网站模板深圳seo优化推广公司
  • 十个app制作网站如何免费建立一个自己的网站
  • 广州站是哪个站网站搭建工作怎么样
  • 做网站推广见客户的话术特色软件app推荐
  • 手机网站和app的区别服务器关闭 网站被k
  • 标题正文型网站中国平安金融科技有限公司
  • 济南市建设信用网站西安网站建设是什么
  • 学校网站的建立网站建设脑图
  • 网站所有分类中 点击箭头不出现下拉菜单增加wordpress阅读量
  • 塑胶网站建设提供网站建设价格
  • 东莞 网站建设 保健品广州微网站开发
  • 中小型网站建设价位电销怎么找电话资源
  • 济南做网站的高端品牌北京如何优化搜索引擎
  • 建设专业网站怎样收费做钓鱼网站违法
  • 网站怎么做关键词排名wordpress 标签小工具栏
  • 山西太原建设厅官方网站文化网站模版
  • 沈阳做网站建设怎么做网站视频
  • 网站规划与建设是什么样的html代码大全在线版
  • 深圳网站建设_请到中投网络!广东官网网站建设平台
  • 网站友链查询源码在建设部网站
  • 好的html5网站大连谷歌seo