JAVASE中API(Application Programming Interface)

it2024-06-30  40

Object类和String类

概念:所有可以点(.)出来的都是API,一切可以调用的。

Object

这个类是所有对象的父类,又叫超类,所有都继承于他。位置在java.lang包下,不需要我们导包,程序默认导包。 1.1Object类只有一个构造方法并且是无参构造,它有11个方法。 Object() //无参构造

3.Object里面重要的方法:

1.返回值为boolean并且需要传入Object类型参数的equals方法 equals(Object object) 2.返回值为int 类型的hashCode hashCode() 3.返回值为String类型的toString方法 toString()

总结equals 方法是用于两个对象之间的比较,他们默认比较的是地址值,当我们要比较两个对象的属性时,需要对object里面的equals方法重写 (1)Object 的equals源码如下:

public boolean equals(Object obj) { return (this == obj); }

源码看出return两个对象==比较的值 (2)hashCode 是返回值该对象的哈希码值 如下:

System.out.println(s.hashCode());// 返回s这个对象的哈希码值

(3)toString 是返回值该对象的地址值(字符串表示),如果我们只需要查看对象地址值时,用对象去输出,如果想看对象的属性我们需要重写这个方法 源码如下:

public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }

源码看出是地址值的计算,如果我们重写了方法体返回的是属性拼接成的一个字符串。 注意:== 和equals 的区别? == 在基本类型里面比较的是值是否相等,equals是在引用里面比较的是两个对象的地址值是否相等。

String—字符串

1.String在java语言里面被定义为final修饰的不可变的类,这样做的目的:高效,安全。 特点: 1.1 如果是第一次使用字符串,java会在字符串常量池创建一个对象。1.2 再次使用相同的内容时,会直接访问常量池中存在的对象。

2。String在底层的实现是一个char数组如下:

String s = new String(c);//堆中分配新的内存 String string = “abc”;//直接创建程序效率会高 char[] c = {'a','b','c'};

JDK1.8来看String,他的源码里面有几个重要的方法: 第一:多构造方法 以String为参数的构造方法 以char为参数的构造方法 以StringBuffer为参数的构造方法 以StringBuilder为参数的构造方法 第二:equals 方法它是比较两个字符串是否相等,返回结果为boolean。 源码解析: 在源码里面String类型重写了Object的equals方法,equals方法需要传递一个object类型的参数值,在比较之前先通过instanceOf判断是否为String类型,如果是返回true 之后就进入循环开始对比两个字符串的字符,当所有字符相等时返回true。还有一个和equals比较类似的方法equalslgnoreCase它是忽略字符串大小写后进行字符串对比。 第三:compareTo方法是比较两个字符串,返回结果为int,在源码里compareTo会循环对比两个字符串,如果任意一个不等 会返回char1 - char2 比如两个字符串分别存储1和2,返回-1,如果是1和1返回0 如果是2和1返回1.还有一个和compareTo方法类似的方法compareTolgonreCase,这个方法也是忽略字符串大小写后比较两个字符串。 equals 和 compareTo的区别? 1.equals返回的是布尔,compareTo返回是int 2.两个都是用于比较两个字符串,一个返回true 一个返回0都表示两个字符串相同。

String的其它重要方法 indexOf() 查询字符串首次出现的下标 lastindexOf() 查询字符串最后出现的下标 contains() 查询字符串里是否包含另一个字符串 toLowerCase() 把字符串全部转换成小写 toUpperCase() 把字符串全部转换成大写 length() 查询字符串的长度 trim() 去掉字符串的首位空格 replace() 替换字符串的某些字符 split() 切割字符串返回字符串数组 join() 把字符串数组转为字符串 charAt() 返回指定下标的char 值 endsWith() 是否已指定后缀结束

最新回复(0)