zoukankan      html  css  js  c++  java
  • 不常见程序写法和容易误解的概念


    一,不常见写法:
            1, if(...){}
                    else switch(...){}   --觉得还比较简洁

    二,误解的概念
            1, SomeType a = new SomeType();
                    if(SomeType==nulll){}  这句话永远是对的
            2, SomeType a = new SomeType();
                    SomeType b;
                    b=a;
                    a=null;
                    b=???   b是什么呢?估计很多人以为是Null吧? 都是引用,会改变原来的值
                                其实,b还是存在的,因为a只不过断了地址!

                   有人比喻,传值和传址就好比邮递员送信,一个是送到手中,一个是收到领取的包裹单。
                    所以,上面的例子就好比,有两个包裹单同时送给了a和b,a把包裹单掉了,这明显是
                    不影响b的
            3,  String a="XXXX";
                 a.Replace("XXXX","");
                  Print(a);   // 哦?a还是老样子!String对象是不可变的,一旦创建就不会发生更改。String上看
                 似更改的操作,其实是返回一个新的String对象。
     
                 当然,你可能会反驳我
                  a=a.Replace("XXXX","");
                  Print(a);  // 终于更改了吧!嘿嘿,上面的不可改变理论破灭了!
                                 是吗?
                  注意:String是引用类型,这样是改变了引用,原来的a已经在等待垃圾回收了!
                  小心:值类型也生了这样的脾气,比如:DataTime.Now.AddMonth(1) -->不改变 
           4, 注意引用

    Class SomeClass1
    {
        pubic 
    int I;
    }


    SomeClass1 class1
    =new SomeClass1();
    SomeClass1[] classArr1
    =new SomeClass1[10];
    for(int i=0;i<10;i++)
    {
         classArr1[i]
    =class1;
         class1.I
    =i;
    }
      
    // 结果SomeClass1的集合里面I全部为10
    // 原因是都是引用了class1,只修改了一份

    // 正确的是
    for(int i=0;i<10;i++)
    {
         SomeClass1 class1
    =new SomeClass1();
         classArr1[i]
    =class1;
         class1.I
    =i;
    }
      







                                                 ===== 以后慢慢加 =====

  • 相关阅读:
    【转】【WCF】WCF中客户端生成代理的两种方式
    【WPF】鼠标拖拽功能DragOver和Drop
    【转】【Android】Android不同版本下Notification创建方法
    【C#】获取电脑DPI
    【转】7Z命令行解压缩
    【转】【C#】ZIP、RAR 压缩与解压缩
    【MySQL】字符串截取之substring_index
    【转】【Java/Android】Intent的简介以及属性的详解
    友盟分享和cocos2dx符合重复duplicate symbol 解决方案
    slimphp中间件调用流程的理解
  • 原文地址:https://www.cnblogs.com/xianyun/p/437673.html
Copyright © 2011-2022 走看看