Java第十一课复习总结
作者:互联网
目录
toString()方法
关于Object类中的toString()方法源代码
public String toString() {
return this.getClass().getName() + "@" + Integer.toHexString(hashCode());
}默认实现是:类名@对象的内存地址转换为十六进制的形式
toString()方法的设计目的是:通过调用这个方法可以将一个“java对象”转换成“字符串表示形式”
建议所有的子类都去重写toString()方法
equals()方法
关于Object类中的equals方法源代码
public boolean equals(Object obj) {
return (this == obj);
}在Object类中的equals方法当中,默认采用的是“==”判断两个java对象是否相等,而“==”判断的是两个java对象的内存地址。所以需要子类重写equals
1、String类已经重写了equals方法,比较两个字符串不能使用==,必须使用equals
2、String类已经重写了toString方法
匿名内部类
内部类:在类的内部又定义了一个新的类,被称为内部类
内部类的分类:
静态内部类:类似于静态变量
实例内部类:类似于实例变量
局部内部类:类似于局部变量
数组(Array)
语法格式:
int[] array1;
double[] array2;
boolean[] array3;
String[] array4;
Object[] array5;静态初始化语法格式:int[] array = {100, 2100, 300, 55};
动态初始化语法格式:int[] array = new int[5];
1、Java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object
2、数组是一个数据的集合
3、数组当中可以存储“基本数据类型”的数据,也可以存储“引用数据类型”的数据
4、数组因为是引用数据类型,所以数组对象是存储在堆内存当中
5、数组当中如果存储的是“java对象”的话,实际上存储的是对象的“引用(内存地址)”
6、数组一旦创建,在java中规定,长度不可变
7、所有的数组对象都有length属性(java自带的),用来获取数组中元素的个数
8、java中的数组要求数组中元素的类型统一。比如int类型数组只能存储int类型
9、数组在内存方面存储的时候,数组中的元素内存地址是连续的。数组实际上是一种简单的数据结构
10、所有的数组都是拿“第一个索引的内存地址”作为整个数组对象的内存地址。
11、数组中每一个元素都是有下标的,下标从0开始,以1递增,以length - 1结束
数组这种数据结构的优点和缺点
优点:查询/查找/检索某个下标上的元素时效率极高
为什么检索效率高?
一:每一个元素的内存地址在空间存储上是连续的。
二:每一个元素类型相同,所以占用空间大小一样。
三:知道第一个元素内存地址,知道每一个元素占用空间的大小,又知道下标,所以通过一个数学表达式就可以计算出某个下标上元素的内存地址缺点:
第一:由于为了保证数组中每个元素的内存地址连续,所以在数组上随机删除或者增加元素的时候,效率较低,因为随机增删元素会涉及到后面元素统一向前或者向后位移的操作
第二:数组不能存储大数据量,因为很难在内存空间上找到一块特别大的连续的内存空间
注意:对于数组中最后一个元素的增删,是没有效率影响的
Java中对数组的扩容是:先新建一个大容量的数组,然后将小容量数组中的数据一个一个拷贝到大数组当中
数组扩容效率较低,所以尽可能少的进行数组的拷贝。
数组是怎么进行拷贝?
二维数组
二维数组是一个特殊的一维数组,特殊在这个一维数组当中的每一个元素都是一个一维数组
静态初始化:例如:int[][] arr = {{1,2,34},{54,4,34,3},{2,34,4,5}}; Object[][] arr = {{new Object(),new Object()},{new Object(),new Object()},{new Object(),new Object(),new Object()}};
动态初始化:int[][] arr = new int[3][4];
Object[][] arr = new Object[4][4];
Animal[][] arr = new Animal[3][4]
冒泡排序
拿着左边的数字和右边的数字比对,当左边 > 右边的时候,交换位置
每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边
选择排序
每一次从这堆“参与比较的数据当中”找出最小值,拿着这个最小值和“参与比较的这堆最前面的元素”交换位置
选择排序比冒泡排序好在:每一次的交换位置都是有意义的
二分法查找(折半查找)
二分法查找的终止条件:一直折半,直到中间的那个元素恰好是被查找的元素
二分法查找算法是基于排序的基础之上的
标签:元素,Java,复习,int,Object,第十一,数组,new,内存地址 来源: https://blog.csdn.net/m0_60480456/article/details/120990342