zoukankan      html  css  js  c++  java
  • 笔记01

    1:== 和  equals比较

    对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。

    对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。

    对于 string 类型,== 比较字符串的值。
    ==操作比较的是两个变量的值是否相等。
    equals()方法比较的是两个对象的内容是否一致.属性什么的

    ==也就是比较引用类型是否是对同一个对象的引用。

    2:

    String.Empty、string=”” 和null的区别

    String.Empty是string类的一个静态常量;

    String.Empty和string=””区别不大,因为String.Empty的内部实现是:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static readonly string Empty;
    //这就是String.Empty 那是只读的String类的成员,也是string的变量的默认值是什么呢?
     
    //String的构造函数
    static String(){
        Empty = "";//Empty就是他""
        WhitespaceChars = new char[] {
            ' '' ''v''f'' '' ''x0085''x00a0'' '' '' '' '' '' '' '' ',
            ' '' '' '' ''''u2028''u2029'' '''
         };
     
    }

      

     再看一段代码:

    1
    2
    3
    4
    5
    6
    7
    8
    string s1 = "";
    string s2 = string.Empty;
    if (s1 == s2)<br>{
        Console.WriteLine("一模一样!");
    }   
    // 结果都是True
    Console.WriteLine("".Equals(string.Empty));
    Console.WriteLine(object.ReferenceEquals(string.Empty, ""));

    既然String.Empty和string=””一样,同样需要占用内存空间,为什么推荐优先使用String.Empty ?

    string.Empty只是让代码好读,防止代码产生歧义,比如说:

    string s = "";  string s = " ";   这个不细心看,很难看出是空字符串还是空格字符。

    如果判断一个字符串是否是空串,使用

    if(s==String.Empty)和if(s==””)的效率是一样的,但是最高效的写法是if(s.Length==0)

    string.IsNullOrEmpty的内部实现方式:

    public static bool IsNullOrEmpty(string value)<br>{<br>    if (value != null)
        {
            return (value.Length == 0);
        }
        return true;
    }
  • 相关阅读:
    PerfDog WEB端使用手册
    PerfDog4.0探索,支持用户自建web云
    无AI不测试:人工智能时代背景下,如何发展与应用自动化测试?
    性能测试实践 | PerfDog助力微信小游戏/小程序性能调优
    mysql面向过程学习
    阿里云操作记录
    socket网络编程
    学习慕课广告系统
    xinhuadouxxx总结
    maven+springboot+mybatis快速搭建简单使用
  • 原文地址:https://www.cnblogs.com/newcoder/p/4789073.html
Copyright © 2011-2022 走看看