zoukankan      html  css  js  c++  java
  • ASP.NET动态网站制作(19)-- C#(2)

    前言:C#的第二次课,依旧讲解C#的基础知识。

    内容

      1.GC:垃圾回收机制,可以回收托管模块中的垃圾。

      2.值类型和引用类型:

        (1)值类型:所有的数值类型都是值类型,如int,byte,short,long,char,bool,float,double,枚举。计算机最小的信息单位是byte(字节),一个字节是8位(bit),一个字母是一个字节。

        (2)引用类型:对象,string,object,数组。C#有两个内置的引用类型:object类型和string类型。object是所有类型的父类,可以将任何类型的值赋值给object类型的变量;string类型是字符串类型,该对象一旦创建,内容就不可以更改,它是不可变的。

       引用类型的实例化使用关键字new。

        (3)值类型是值的拷贝,引用类型是地址的引用。

        (4)变量都是存放在内存中的,内存中包含堆和栈。所有的值类型是存储在栈里的,值类型的赋值就是值的拷贝;引用类型的值是存储在堆里的,栈里面存放的是它的引用地址,引用类型的赋值,实际上就是地址的拷贝。

        (5)要去调用一个类里面的非静态成员(字段、方法),需要通过一个类的对象去调用:Person p1 = new Person(); p1.age=20;;若要去调用一个类里面的静态成员,只需要通过类去调用就行:Person.age = 20;。静态变量存储在静态区。

        (6)当实例化一个类的对象的时候,堆会将类里面所有的非静态成员(字段、方法)生成。如果出现“未将对象引用到对象的实例”异常,就是没有将对象实例化或者对象为空,其在堆里没有内容。

        (7)当去实例化一个类的对象时,首先会在堆里面检索该类的对象是否存在。,如果存在就会拷贝一份。

        (8)当一个类是静态类的时候,类里面所有的成员都是静态的。

      3.装箱、 拆箱:

        (1)装箱:把值类型转换成引用类型。

    1 int i = 10;
    2 string s = i.ToString();

        (2)拆箱:把引用类型转换成值类型。

    1 string s = "10";
    2 int i = Convert.ToInt32(s);

        (3)程序中应该尽可能地避免装箱和拆箱,因为这两个过程中可能会造成一些效率的损耗。

      4.常量、变量:变量包含静态变量、成员变量--全局变量、局部变量。

      5.数据类型转换:

        (1)隐式转换:低精度类型转为高精度类型,直接转。

    1 int i = 9;
    2 double d = i;

        (2)显式转换:高精度类型转换为低精度类型,必须指明要转换的目标类型,由于数据的差异,可能丢失部分数据。

    1 double d = 12.34;
    2 int i;
    3 i = (int)d;

      6.运算符:

        (1)算术运算符:+,-,*,/,%,++,--。

        (2)赋值运算符:=,+=,-=,*=,/=,%=,??。

    a=b??c;    // b 为 null 则 a=c,不为 null 则 a=b

        (3)关系运算符:==,!=,<,<=,>,>=。

        (4)逻辑运算符:!,&,|,^,&&,||。

        (5)优先级:一元运算符<二元运算符<关系运算符<逻辑运算符<赋值运算符。

      7.string类:

        (1)string可以看成是一个字符数组。

    1 string s = "hello";
    2 char[] c = s.ToCharArray();

        (2)str.Lenght表示字符串里面字符的个数。

        (3)字符串对象一旦被创建,这个对象就不能被修改。

        (4)在创建一个字符串对象的时候,会先去字符串数据池(在堆中)寻找是否有相同的字符串内容对象,如果有,就直接让变量指向这个对象,如果没有,就创建新的对象。

        (5)字符串常用的方法:

        Compare():比较两个字符串的大小。

    Console.WriteLine(String.Compare("aa","bb"));

        返回值是-1。字符串比较的是ASCII码值的大小。

        Equals():判断两个字符串是否相同,若相同则返回true,否则返回false。

        StartsWith()/EndsWith():判断一个字符串是否以一个字符串开头或结尾,返回值是true或false。

        IndexOf()/LastIndexOf():某个指定的字符或者字符串第一次或者最后一次出现的位置。

        Substring():截取字符串。

        Insert():插入在指定位置的字符串。

        PadLeft()/PadRight():左侧或者右侧填充特定字符来达到指定的长度。

        Remove():删除制定长度的字符串。

        Trim()(移除所有前导空白和尾部空白)、TrimStart()(移除所有前导匹配项)、TrimEnd()(移除所有尾部匹配项)。

        copyTo():将指定数目的字符复制到字符数组指定位置去。

        Replace():替换方法。

    后记:预习、复习,课外学习。

  • 相关阅读:
    性能问题分析-OOM内存溢出
    JVM介绍及参数配置
    性能问题分析-CPU偏高
    性能测试常见术语浅析
    性能测试中TPS上不去的几种原因浅析
    MyBatis拦截器:给参数对象属性赋值
    springboot读取配置文件的顺序
    ElasticSearch中文分词
    springboot和ELK搭建配置详情
    java命令行介绍
  • 原文地址:https://www.cnblogs.com/zoe-yan/p/4903726.html
Copyright © 2011-2022 走看看