String特点及常用方法

字符串的特性:不可变性和"暂存池"(常量池)的特性

通过案例了解字符串中的方法.

如何比较两个对象是不是同一个对象的最准确的方法ReferenceEquals

-------------------------------------------------

不可变性:str 被赋值后 内存地址是不一样的。

只是字符串的值是常量值时,就指向暂存池中的对象。

string s1="1",s2="2",s3="3";

string str="123";//指向暂存池中的对象。

stirng s=s1+s2+s3; //不是指向暂存池中的对象。

此时 str!=s;

字符串:变量名指向 暂存池中的对象。

------------------------------------------------

 比较两个对象是否为同一个对象:地址是否相同

课件中讲解Equals和"=="两种方式比较两个对象是不是同一个对象已经不准确了,因为都可以被重写.

只有通过object的ReferenceEquals方法才更加的准确

因为Equals可以被重写,所以比较不准确。

比较两个对象是否为同一个对象,什么是同一个对象?(地址)

如何判断str1与str2是否为同一个对象?

Equals和== Equals已经不可靠了。"=="也不靠谱了。

String类的==运算符,内部调用的也是Equals("=="运算符重载后也是调用的 EqualsHelper()来判断的,与Equals(string)方法一样。只是比较值是否相等)

为什么字符串的Equals和别的不一样?

string的Equals方法判断的是字符串的内容是否相同(重写了Object中的Equals方法。)

查看判断两个对象是否相同要用:object.ReferenceEquals();

即时窗口中:*p1  获得地址

同一个对象判断使用:object.ReferenceEquals(s1,s2);最准确判断同一个对象。

如鹏网:http://www.rupeng.com

转载于:https://www.cnblogs.com/wjs5943283/p/5242839.html

如鹏网.Net高级技术4.String特点及常用方法相关推荐

  1. 如鹏网 net高级技术 第二章 委托和事件(复习)

    委托 委托是一种数据类型,可以声明委托类型变量. 委托是一种可以指向方法的数据类型. 声明委托的方式:delegate返回值类型 委托类型名(参数)   比如 delegate void MyDel( ...

  2. .Net高级技术笔记

    .Net高级技术 数组/多维数组/交叉数组 装箱&拆箱 字段私有,属性赋值(私有匿名后备字段) 引用/"指针" 数组/多维数组/交叉数组 namespace Console ...

  3. 如鹏网.Net基础2 专题课:ASCII码和拆数

    第 1 节 ASCII介绍和char转换为int 美国标准信息交换码 计算机中存储的都是二进制数据. 什么是ASCII码? char和int的转换: char的大写小转换: '1'转换为1:和1转换为 ...

  4. spring(7)spring mvc 的高级技术

    [0]README 1)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  "spring(7)spring mvc 的高级技术 ...

  5. GridView 高级技术

    GridView 高级技术 汇总脚注 GridView 的主要目标是显示一组记录,但是你还可以加入一些有趣的信息,如汇总数据.需要如下的操作: 设置 GridView.ShowFooter 为 tru ...

  6. 第一篇 .NET高级技术之索引器

    第一篇 .NET高级技术之索引器 基础知识补充 索引 器 没有名字 ,索引器的内部本质 (ILSpy的IL模式下看)类型 this[参数]{get;set;} 可以是只读或者只写(在get或者set前 ...

  7. .net高级技术(class0515)

    本次课程中讲的有的东西都是根据初学者的认知规律进行了调整,并不是严谨的,比如很多地方在多AppDomain条件下很多说法就不对了,但是说严谨了大家就晕了,因此继续不严谨的讲吧. 很多面试题都在这阶段的 ...

  8. 怎样在计算机上进行高级搜索,怎么用中国知网的高级检索才能准确找到自己想要的文献?...

    原标题:怎么用中国知网的高级检索才能准确找到自己想要的文献? 知网的检索方式很多,一框式检索是小伙伴们常用的方式.但需要匹配多个检索词时,小伙伴肯定会用到CNKI高级检索啦.高级检索可以帮助小伙伴们匹 ...

  9. 【第36题】JAVA高级技术-对象克隆5(几种深克隆效率比较)

    回城传送–><JAVA筑基100例> 文章目录 零.前言 一.题目描述 二.解题思路-序列化克隆 三.代码详解 原生序列化和Kryo序列化性能比较 结论 四.推荐专栏 五.示例源码下 ...

  10. 如鹏网.Net三层架构第一章三层基础

    三层架构: 1.通常意义上的三层架构就是将整个业务应用划分为:表现层.业务逻辑层.数据访问层.区分层次的目的即为了"高内聚低耦合"的思想. 2.该课程中通过讲解餐饮管理系统来让大家 ...

最新文章

  1. Linux系统快速安装JDK
  2. 解决firefox ubuntu无法打开页面的问题
  3. 4 流程控制》4.5 比较for循环和while循环
  4. CSS:响应式下的折叠菜单(条纹式)
  5. SmartNIC/DPU — Overview
  6. 设计模式系列--Strategy
  7. 体验VS2017的Live Unit Testing
  8. java 连接池连接mysql数据库需要哪些jar包_DBCP-基于Java8导入DBCP连接池所需JAR包并编写DBCPUtils工具类...
  9. 1.1.0-简介-P3-CAP 分布式 高可用
  10. Python MySQL(MySQLdb)
  11. 小成开发日记----python爬虫利用selenium实现无限刷不背单词app的酷币
  12. python暑假培训班
  13. 巨潮资讯网-多层次资本市场信息披露平台
  14. 计算机测电阻伏安特性实验报告,《电学元件伏安特性的测量》实验报告附页
  15. Android逆向之CA证书提取
  16. Android自定义九宫格密码解锁
  17. Django----做一个简单网页的教程(适合初学者)
  18. 如何用纯 CSS 实现酷炫的霓虹灯效果?
  19. 什么是线下门店陈列洞察?百度AI人工智能
  20. 信息系统项目管理重点:电子政务

热门文章

  1. SSM员工工资管理系统(Java毕设项目)
  2. 常见的DoS攻击防御方式
  3. 软件设计师真题知识点
  4. 74LS138译码器真值表以及快速计算方法
  5. C语言实现平衡二叉树
  6. oracle12C以上版本创建pdb数据库实例实践
  7. SQL学习-数据库基础知识(1)
  8. sony z及泛泰a870 安装optware记录
  9. 不能创建对象qmdispatch_win7系统打开某些软件提示“Activex部件不能创建对象”的解决方法...
  10. 【树莓派】设置树莓派开机自动运行python脚本