byte数组穿换成pcm格式_接口 ,冒泡排序数组,数组拷贝,和常用类的总结

什么是接口

接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。

从接口的实现者角度看,接口定义了可以向外部提供的服务。

从接口的调用者角度看,接口定义了实现者能提供那些服务。

接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你是好人,则必须能干掉坏人;如果你是坏人,则必须欺负好人。

接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。

面向对象的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如C++、Java、C#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。

接口和抽象类的区别

1. 普通类:具体实现

2. 抽象类:具体实现,规范(抽象方法)

3. 接口:规范!

如何使用接口呢

1 接口的申明格式

[访问修饰符] interface 接口名 [extends 父接口1,父接口2…] {

常量定义;

方法定义;

}

要点

1. 子类通过implements来实现接口中的规范。

2. 接口不能创建实例,但是可用于声明引用变量类型。

3. 一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。

4. JDK1.7之前,接口中只能包含静态常量、抽象方法,不能有普通属性、构造方法、普通方法。

5. JDK1.8后,接口中包含普通的静态方法。

数组的冒泡排序

其中冒泡排序是最为经典的排序

实现冒泡排序理论如下

1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3. 针对所有的元素重复以上的步骤,除了最后一个。

4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

大家可以用如上思想,将下面的人按照身高从低到高重新排列:

2741dbaead7fb6d291d61d6ae773627e.png

其公式如下

b4ce047b1f51fc2c2c2f48ba7ccbaa07.png

数组的拷贝内存分析图

94d77330a8770230ba68c8c79de1a072.png

数组的拷贝用的是Stsyem类下的Arrayscopy的方法来拷贝的

公式方法是Stsyemm.Arrayscopy(源数组,从下标多少开始,目标数组,从下标什么地方开始接收,拷贝的长度源代码.length )

常用类的总结

String类常用方法

  1. l charAt 返回指定索引处的 char 值。
  2. l concat 将指定字符串连接到此字符串的结尾。
  3. l length() 返回此字符串的长度。
  4. l toString()返回此对象本身(它已经是一个字符串!)。
  5. l valueOf() 返回 char 参数的字符串表示形式。

Arrays类中的常用方法

1. binarySearch 使用二分搜索法来搜索指定的 byte 型数组,以获得指定的值。

2. copyOf复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。

3. equals 如果两个指定的 boolean 型数组彼此相等,则返回 true。

4. fill 将指定的 int 值分配给指定 int 型数组的每个元素。

5. hashCode基于指定数组的内容返回哈希码

6. sort 对指定 long 型数组的指定范围按数字升序进行排序。

7. toString 返回指定数组内容的字符串表示形式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值