顺序

程序

进程

线程  线程栈

程序运行时数据存储的内存区域

栈   内存数组 

      某些类型变量的值  程序当前的执行环境 传递给方法的参数

      数据项压入栈顶 数据只能从栈的顶部插入和删除  入栈 出栈

     值类型

      预定义类型  非数值类型 bool char    数值类型             整数类型     浮点类型

      用户定义类型 struck enum

     

堆  heap 内存区域

       以任意顺序存入和移除,

      对于引用类型的任何对象,它所有的数据成员(数据成员,函数成员)都存放在堆里,无论它们是值类型还是引用类型。

      引用类型存储的实际数据位于堆中

               预定义类型 object ,string ,dynamic              用户定义类型   class,interface,delegate,arrary

栈帧 stack frame调用方法的时候,从栈的顶部开始分配,保存和方法关联的一些数据项,这块内存叫方法的栈帧

       返回地址    值参数 或参数数组    各种和方法调用相关的其他管理数据项

       方法调用时,整个栈帧都会压入栈

       方法退出时,整个栈帧从栈上弹出 栈展开

 

 

变量 

本地变量 栈或者栈和堆  不能自动初始化  值类型栈 引用类型 堆

类字段     堆                 自动初始化

结构字段    栈或堆          自动初始化

参数         栈                 不能自动初始化   方法调用前 实参变量在栈中 

                                                              值参数      实参必须被赋值或是表达式     调用时 为形参在栈中分配空间    复制实参给形参,方法结束后,形参

                                                                             弹出,引用类型实参的值被方法内部行为改变 。

                                                              ref引用参数    实参必须是变量被赋值  方法声明和调用都用ref    调用时  形参名设置为实参的别名 指向相同内

                                                                                  存位置 , 方法结束后,形参名称失效,  实参的值全部被方法内部行为改变。                                                         

                                                               out输出参数  实参必须是变量  方法声明和调用都用out  调用时  形参名设置为实参的别名 但实参不在方法

                                                                                 的作用域内,不能访问实参。  方法内部对形参赋值,方法结束后,形参名称失效,实参的值全

                                                                                    部被方法内部行为改变。

                                                              params参数数组      方法声明params。 

                                                                                  延伸式分离的参 编译器接受实参列表在堆中创建并初始化一个数组, 把数组的引用保存到栈

                                                                                 中的形参里,如果在对应的形参数组的位置没有实参,编译器会创建一个有零个元素的数组来

                                                                                 使用  。当数组在堆中创建时,实参的值被复制到数组中,如果数组参数是值类型,那么值被

                                                                                 复制,实参不受方法内部的影响,如果参数是引用类型,那么引用被复制,实参的引用的对象

                                                                                  可以受到方法内部的影响。

                                                                                  数组做实参  编译器使用数组而不是重新创建一个。                                        

参数数组  堆                   自动初始化

类的实例 类类型的变量  引用在栈    new运算符为实际数据分配内存

每个实例都拥有自己的各个类成员的复制,改变一个实例字段的值不会影响其他实例中成员的值。

静态字段被类的所有实例共享 访问同一内存地址,改变对所有实例成员都可见。

数组是引用类型,但数组元素可以是值类型,应用类型,分为值类型数组,引用类型数组。数组声明维度固定,实例化长度确定,在foreach循环中,迭代变量是个数组元素的只读别名,不可改变其值。但引用类型数组元素,迭代变量存储的是数组元素的引用,通过改变数组元素的引用来改变引用数组。 

clone方法浅复制 值类型数组产生两个独立的数组  引用类型产生指向相同对象的两个数组 

namespace ConsoleApplication1
{
    class Program//
    {
       // int i = 0;//字段  类成员默认private   i = 3;错误    1    非静态的字段、方法或属性“ConsoleApplication1.Program.i”要求对象引用    I:\endsubmit\ConsoleApplication1\Program.cs    17    29    main方法
        static int i = 0;//静态字段加载在堆上分配内存,在任何地方对它进行赋值,改变可见。
        // void print()
    static void print()//方法声明      在main()中调用加static
             {
                 //  i = 3;//访问字段赋值  非静态的字段方法属性需要。。对象的引用
         //  Program . i = 3;//完全限定名称,方法中局部变量和全局变量同名时   ?   
                            i = 3;
            Console.WriteLine(i);
        }
    static int  sum(int a,int b)//值参数
    {
        int initial = 0;//本地变量
        for (int i = a; i <= b; i++)
        {
            initial += i;//方法内部赋值
        }
        return initial;//返回赋值后变量
    
    }

        static void Main(string[] args)//静态方法调用静态方法
        {
            int result = sum(1, 29);
            Console.WriteLine("{0}",result ); //18中方法重载 object value   
            Console.WriteLine( result);//18中方法重载 int value   
               print();//方法调用 
               Console.WriteLine(i);
            Console.ReadKey();
            //类中函数成员访问 数据成员
        }
    }
}

 

 

转载于:https://www.cnblogs.com/ggg34674/archive/2012/06/29/2569604.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值