ASP.NET第五天加强课程

第五天

面向对象

想要使用类的时候,要通过实例化对象,才能使用类;

继承 实现多态多态 使程序的可扩展性更强

实现多态的手段:

Virtual 虚方法  abstract 抽象方法  接口 

 

字符串的 不可变性每次修稿字符串时都是单独的字符串副本(拷贝);原来值不变;

当程序终有多个相同的字符串常量时这时这些字符串都是指向内存中的同一个字符串这个特性就是字符串池;

之所以字符串池不会早成程序的混乱,是因为字符串具有不可变性;

 

String.length 指的是字符串中字符的个数不是字节数

判断字符串是否为null或空字符串;  无论字符串为null还是空字符串 返回值都是true;

 

都是表示空字符串:

 

String s3=null  表示没有指向内存,

 

判断是否为空:

 

要用这个判断

 

由于

 

比较字符串是否相同:

 

不区分大小写

其实与用==进行比较是相同的;

Indexof  在字符串中查找对应的字符串第一次出现的索引位置;  如果没有则返回-1;

这里的10代表索引的开始位置

Lastindexof 查找字符串中最后一次出现的位置;

Substring ()截取字符串 可以添加开始位置和结束位置;

Split 分割字符串:  可以死根据字符串分割;

 

可以有多个分割符:

 

Join 方法  与上面连着

 

拼接字符串

 

 

Replace 替换

 

读取文件

 

 

 

提取文件名:

 

 

找工资

 

 

 

 

 

在进行大量字符串拼接的时候, string的问题:

1.内存浪费,产生大量的垃圾内存;

2.由于string的不可改变性,每次拼接都会创建一个姓的string的对象,每次创建新对象的时候本身也是比较耗时耗资源的所以造成了使用string凭借字符串性能极其低下;

 

解决办法就是使用stringBuilder  只是在拼接字符串的时候用除非是大量拼接字符串的时候使用stringBuilder, 其他情况都是使用string ,因为各种方法要求的参数都是string类型并且string类型具有一些特性不可改变性,  字符串池;

最后通过stringBuilder拼接的字符串一般都会

 

栈中的变量如果只想的是同一块堆内存,则认为是同一对象;

Equals 验证两个对象是否是同一个对象

 

通过==判断的时候,结果却是返回相同由于string类型重写了从object类中继承下来的equals方法,怎么重写的?

只要两个字符串中的字符完全相同,那么就会认为两者一样:  返回true;

 

由于equals方法子类可以重写所以通过equals方法判断是否是同一个对象已经不准确了所以判断两个对象是否是同一个对象用object. referenceEquals();

1.不可变性 ;

2.留用性;(*)拘留

3.字符串池(常量);

原文地址:https://www.cnblogs.com/mafacai/p/2810515.html