JAVA基础(30)---API之Object

版权声明:如需转载请标明出处 https://blog.csdn.net/yj201711/article/details/83817612

API

Java语言中,已经提供了大量的类库供程序开发者使用,这些类库是Java语言提供的、已经写好的、用来实现常见的和通用的功能的类的集合,我们称之为“应用程序接口(API-Application Program Interface)”

这些API根据实现的功能不同,划分为不同的集合,每个集合组成以个包,称为类库。

在我们下载和安装的JDK中,已经包含了这些基础的API类库。在编程时,如果要实现一些特定的功能,最好的办法是首先找一找JDK中有没有提供相应的API类。如果有,首先使用类库中的这些API类。只有JDK没有提供我们需要的API类时,才需要我们自己来编写类。因此,了解JDK所提供的API类可以帮助开发者节省大量的编程时间,而且能够使编写的程序更简单更实用。

从某些方面来说,对JDK所提供的API了解的程度,决定了开发者编程的能力。

面向对象的和核心思想:“找合适的对象,做适合的事情”。JavaSE中已经描述了很多常用的类,可以使用这些类常见对象。这些常用的类一般位于  java.lang  包下,不需要导包。

在不同场合,这个编程接口的含义不同:

                                   1、java  api是指标准类库提供的函数

                                   2、android 开发的api是指android  sdk函数库

                                   3、网站api一般是指一个网站提供的接口,比如登陆验证、信息查询、通知、支付等

                                   4、windows  api是指windows操作系统提供的api

Object类

Object类是所有类的基类(父类/超类),因此任何类的对象都可以使用Object中提供的方法。也可以根据需要重写其中的方法。Object的构造是无参构造。

扫描二维码关注公众号,回复: 4023494 查看本文章

常用方法:

1、equals()方法

原型是:public boolean equals(Object obj)

这个方法用于比较两个对象是否相等,默认相当于  “ == ” 的功能。对于值类型,比较他们的值是否相等;对于引用类型,比较他们的内存地址是否相等;我们也可以在自定义中重写equals方法来比较两个对象是否相等。

                                          public boolean equals(Object obj) {
                                                         return (this == obj);//this代表当前调用此方法对象
                                           }

2、hashCode()方法

方法原型:public int hashCode();

作用:返回该对象的哈希码值,这个默认值是由对象的内存地址计算出来的,每次运行程序返回结果可能不一样。

提供此方法是为了提高哈希表的性能,一般是重写 equals 方法的同时重写 hashCode方法,让“相同”的对象返回相同的 hash 码,让不相同的对象尽量返回不相同的哈希码,这样有利于提高哈希表性能。

3、toString()方法

方法原型:public String toString();

作用:返回该对象的字符串表示。自定义类可重写此方法以方便利用toString()直接输出对象的一些信息。查看JDK源码,发现toString()默认返回的是:

                                                 public String toString(){

                                                              return getClass.getName() + "@" + Interger.toHexString(hashCode());

                                                  }

就是:“类名 + @ + hashCode值的十六进制形式”。

当用System.out.println(对象)输出对象时,显示的就是toString()返回的值、String类已经重写了toString()方法,所以直接输出看到的是字符串。

4、finalize()

Java允许在类中定义一个名为finalize()的方法。它的工作原理是:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。

关于垃圾回收,有三点需要记住:

  • 对象的 finalize 方法不一定会被调用,即使是进程退出前。
  • 发生 GC 时一个对象的内存是否释放取决于是否存在该对象的引用,如果该对象包含对象成员,那对象成员也遵循本条。
  • 对象里包含的对象成员按声明顺序进行释放。

注意:在实际开发中,不要去重写finalize()方法;也不要主动的去使用System.gc();

public class ObejctDemo{
		public static void  main(String[] args){
			
			Student stu1 = new Student();
			Student stu2 = new Student();
			System.out.println(stu1 == stu2);
			System.out.println(stu1.equals( stu2));
			String str1 = "abc";
			String str2 = "abc";
			System.out.println(str1 == str2);
			System.out.println(str1.equals( str2));
			System.out.println("---------------------------");
			System.out.println(str1.hashCode());
			System.out.println(str2.hashCode());
			System.out.println("---------------------------");
			Integer a = 12;//int a = 12
			Object obj = a.toString() + 1;
			System.out.println(obj);
			//stu1 = null;
			System.out.println("---------------------------");
			System.gc();//就是人为的调用垃圾回收器
		
		}
}
class Student{
	
	protected void finalize()  throws Throwable{
		System.out.println("被回收了....");
	
	}
}

猜你喜欢

转载自blog.csdn.net/yj201711/article/details/83817612