zoukankan      html  css  js  c++  java
  • 必须知道的.net——学习笔记1

    1、对象的生成(出生)

        Person aperson=new Person("小张",25)

       构造过程:分配存储空间—初始化附加成员—调用构造函数

    2.对象的旅程(在一定的约定与规则下,通过方法进行彼此的交互操作从而达到改变本身状态的目的)

      对象类型:值类型(线程的堆栈)和引用类型(托管堆)。装箱:值类型—引用类型 拆箱:引用类型—值类型

      对象属性:字段、属性。方法操作这些

      对象的交互方式:设计模式

      对象的生存环境:CLR

    3.继承(目的:提高软件复用)

      public:开放性最大,都可以访问

      protected:纵向关心约定,其对象有访问父类的权限(父类和子类)

      internal:同一程序集

      protected internal:同一程序集,父类和子类

      private:开放性最小,仅限于包含类型

    4.多态(接口和抽象类)

    (1)接口(以人的不同身份的不同职责为例子)

           interface IPerson

                {

                      string Name{get;set;}

                      int Age{get;set;}

                      void DoWork();

                 }

            class PersonAtHome:IPerson {//dosomething }

            class PersonAtSchool:IPerson { }

            class PersonOnBus:IPerson { }

            实例:

            IPerson aPerson =new PersonAtHome();  aPerson.DoWork();

            IPerson bPerson =new PersonOnBus();  aPerson.DoWork();

    (2)抽象类

    5.消亡(由GC控制)

    6.内存分配

       CLR管理内存区域

    •  线程的堆栈(分配值类型实例):操作系统管理(不受GC),当值类型所在方法结束时,存储单元自动释放,执行效率高,存储有限。
    •  GC堆(引用类型):分配小对象 ,垃圾回收器会对GC堆进行压缩
    • LOH堆(引用类型):分配大对象,不压缩

       引用类型的实例分配在托管堆上,托管堆根据存储信息的不同划分为多个区域,其中GC堆和加载堆最重要。

    引用类型创建、内存分配和初始化过程

             

              

  • 相关阅读:
    JVM 综述
    看 Netty 在 Dubbo 中如何应用
    Netty 心跳服务之 IdleStateHandler 源码分析
    Netty 高性能之道
    Netty 解码器抽象父类 ByteToMessageDecoder 源码解析
    Netty 源码剖析之 unSafe.write 方法
    Netty 出站缓冲区 ChannelOutboundBuffer 源码解析(isWritable 属性的重要性)
    Netty 源码剖析之 unSafe.read 方法
    Netty 内存回收之 noCleaner 策略
    Netty 源码阅读的思考------耗时业务到底该如何处理
  • 原文地址:https://www.cnblogs.com/luyujie/p/3149654.html
Copyright © 2011-2022 走看看