Object类 内部类 数组

本文详细介绍了Java中的Object类,包括toString()、equals()和finalize()方法,以及clone()的使用。接着讲解了内部类的分类和特点,如静态内部类、动态内部类和局部内部类。此外,还探讨了数组的特性,如数组的初始化、检索效率、扩容方法以及二维数组的声明。最后,讨论了常用的排序算法(冒泡排序和选择排序)以及二分法查找的应用。
摘要由CSDN通过智能技术生成

Object类 老祖宗类

  1. toString方法
    源代码:
		public String toString() {
   
				return this.getClass().getName() + "@" + Integer.toHexString(hashCode());
			}

原有方法不够用 只能输出对象内存地址
2. equals方法
源代码:

public boolean equals(Object obj) {
   
				return (this == obj);
			}
  • 在Object类中的equals方法当中,默认采用的是 “== ” 判断两个java对象是否相等。而 “ == ” 判断的是两个java对象的内存地址,我们应该判断两个java对象的内容是否相等。
public boolean equals(Object obj){
   
		return obj == this;
}//不够用需重写

public boolean equals(Object obj){
   //重写方法要求修饰符、名称、返回值类型、形式参数列表一致
	if(obj == null||!(obj instanceof Student)) return false;
	if(obj == this) return ture;
	
	Student s = (Student) obj;//向下转型 判断具体内容一致不一致
	return name == s.name &&  school.equals(s.student);
		

}
  • 判断基本数据类型是否相等使用 “== ”就行,引用数据类型必须使用equals方法(需要重写)
  1. finalize 方法 (已过时)
    该方法 由 protected修饰 该方法没有方法体
protected void finalize() throws Throwable { }

JVM垃圾回收器调用
finalize()方法实际上为程序员准备了一个时机,垃圾销毁时机,如果想在这个时机执行一些代码,可以写进finalize() 方法体中。

  1. clone()
    深克隆和浅克隆

内部类

  1. 在类的内部又定义了一个新的类,被称为内部类。
    内部类包括:
  • 静态内部类
  • 动态内部类
  • 局部内部类 包括匿名内部类(通过接口直接new个对象 只能调用一次)

数组

  • 是一种引用数据类型

  • 数组可以储存基本数据类型和引用数据类型
    其中引用数据类型是吧内存地址储存在数组当中

  • 一旦创建完成,数组的长度不可以变

  • 数组中元素类型统一,苹果类型数组只能装苹果
    在这里插入图片描述

  • 数组中元素在数组中储存的内存地址是连续的(这是数组储存元素的一个特点 (优势)),因此整个数组的内存地址以第一个元素的内存地址作为地址是讲得通的。

  • 优点:数组元素检索效率高 原因如下:

    1. 每一个元素的内存地址在空间存储上是连续的。
    2. 每一个元素类型相同,所以占用空间大小一样。
    3. 知道第一个元素内存地址,知道每一个元素占用空间的大小,又知道下标,所以
      通过一个数学表达式就可以计算出某个下标上元素的内存地址。直接通过内存地址定位元素,所以数组的检索效率是最高的。
  • 缺点:不能储存大量数据,内存中很难找到一块大的连续的内存空间。

  1. 初始化的方式:

    • 静态初始化:int[] array = {1,2,3,4,5};
    • 动态初始化:int[] array = new int[5];
      五个元素的默认值为0;若为引用数据类型则元素默认值为null。<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值