4 JAVA_API -- 1 Object

1 API

API(Appplication Programming Interface)应用编程接口,是提供个开发人员的查询手册,里面记录的是类的说明,这些类将底层的代码进行了封装,在Java语言中一切可以调用的东西都是API.

2 JKD 包结构

为了便于使用和维护,JDK按照功能将类进行了划分归类。常用的包如下所示:

功能
java.lang提供利用 Java 编程语言进行程序设计的基础类,该类不用导入就可以直接使用
java.util包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)
java.io通过数据流、序列化和文件系统提供系统输入和输出
java.net提供用于网络应用程序的类
java.awt包含用于创建用户界面和绘制图形图像的所有类
java.text提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。
java.sql提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。

3 Object

Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。

3.1 常用的方法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pL7qPtVI-1600735901902)(/img/bVbO62m)]

//指示其他某个对象是否与此对象“相等”。
boolean equals(Object obj)
//当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
protected void finalize()
// 返回该对象的哈希码值。 
int hashCode()
//返回该对象的字符串表示。
String toString()
 
3.1.1 equals(Object obj)
package com.mtingcat.javabasis.api;
/**
 * 测试equals
 * @author MTing
 *
 */
public class objectEquals {
	public static void main(String[] args) {
		/**
		 * 对于基本类型来说‘==’比较的是属性的值
		 */
		int a = 100;
		int b = 200;
		int f = 100;
		char c = 'a';
		char d = 'b';
		char e = 'a';
		System.out.println(a==b);//false
		System.out.println(a==f);//true
		System.out.println(c==d);//false
		System.out.println(c==e);//true
		
		/**
		 * 对于引用类型来说,比较的是对象的地址
		 */
		Animals cat = new Animals();
		Animals dog = new Animals();
		Animals Tom = dog;
		
		System.out.println(cat.equals(dog));  //false
		System.out.println(cat==dog);  //false
		System.out.println(Tom.equals(dog));  //true
		
		
	}

}
class Animals{}

3.1.2 toString()

① Object类中的toString()方法默认返回表示该对象的字符串
② 字符串的形式:类名+@散列码(十六进制的整数)
③ 散列码是根据地址值经过算法计算得到的一个整数
④ 这个字符串在实际开发中没有什么意义,在子类中重写该方法使其具有特殊意义
⑤ 重写规则:通常此方法将对象的属性值作为字符串返回
⑥ 任何引用类型和字符串连接的结果都是字符串而java运行时实际操作是调用其toString()方法,将返回的字符串与字符串连接的

package com.mtingcat.javabasis.api;

public class objectTostring {
	public static void main(String[] args) {
		Animals1 Cat = new Animals1("Tom",2,"boy","MTing");
		System.out.println(Cat);//不重写toString()就是使用的Object提供的默认方式只能打印对象在内存的地址
	}
	

}
class Animals1{
	//定义类的属性
	String name;
	int age;
	String sex;
	String owner;
	public Animals1(){}
	public Animals1(String name, int age, String sex, String owner) {
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.owner = owner;
	}

	@Override
	public String toString() {
		return "Animals [name=" + name + ", age=" + age + ", sex=" + sex + ", owner=" + owner + "]";
	}
	
	
}
3.1.3 hashCode()

返回对象的哈希码(一串32位的二进制数据),要注意的是当equals()方法为true时哈希码值必须一致,但是哈希码值一致不一定使得equals()方法返回true。

package com.mtingcat.javabasis.api;

public class objectHashCode {
	public static void main(String[] args) {
		//比较基本类型的时候判断的是值
		int a = 'a';
		int b = 'a';
		System.out.println(a);//97
		System.out.println(a==b);//true
		
		//比较对象的时候比较的是对象的地址值
		Integer c = 100;
		Integer d = 2000;
		Integer f = c;
		
		System.out.println(c==d);//false
		System.out.println(c==f);//true
		
		//equals()用来比较对象的地址值
		System.out.println(c.equals(f));//true
		
		//测试hashCode()哈希值
		System.out.println(c.hashCode());//100
		System.out.println(d.hashCode());//2000
		System.out.println(f.hashCode());//100
		
	}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值