zoukankan      html  css  js  c++  java
  • 如鹏网.Net高级技术4.String特点及常用方法

    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

  • 相关阅读:
    将博客搬至CSDN
    Linux-进程管理&网络管理
    MySQL架构备份之双机热备
    Linux目录结构&文件管理
    markdown文件即 .md 的基本常用编写语法
    Nginx
    Java 面试题(收集整理...ing)
    CentOS7 VS CentOS8
    Linux 学习
    vi/vim 命令整理
  • 原文地址:https://www.cnblogs.com/wjs5943283/p/5242839.html
Copyright © 2011-2022 走看看