API_常用类
API应用程序编程接口
API文档
是对Java预定定义的类或接口功能和方法功能的说明文档,目的是提供给开发人员进行使用帮助说明
默认继承Object,
Java中所有类没有显示的继承类,默认继承Object,因为要实现多态(Object类型,可以表示任何类型)
public class ObjectDemo extends Object{
public static void main(String[] args) {
ObjectDemo obj = new ObjectDemo();
int[] a = new int[5];//数组也是继承了Object
a.hashCode();
}
toString();
输出对象时:会自动调用对象中的toString();如果对象中没有,则会调用Object类中的toString(),对象中的hashCode值转为16进制
return getClass().getName() + "@" + Integer.toHexString(hashCode());
我们为了显示更简单 ,可以在子类中重写toString(),从而调用子类中的.
public class Person extends Object{
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Person p = new Person("jim",18);
System.out.println(p);
System.out.println("info==="+p);
输出
Person{name='jim', age=18}
info===Person{name='jim', age=18}
==与equals()
- java基本类型
- 比较包装类型
- 比较String类型
- 比较对象
Java基本类型
- byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。
比较包装类型
- ==基本类型比较的就是具体的值.
- ==再对引用类型进行比较的时,比较的时引用的对象地址是否相同
- equals()一般类重写Object类中equals(),他们有自己的方式,比较的时对象中包含的类容(仅限类容)是否相同
= new String("abc");
String s2 = new String("abc");
// == 基本类型比较的就是具体的值
// == 再对引用类型进行比较时,比较的是引用的对象地址是否相同
System.out.println(s1==s2);
//一般类都重写Object类中equals(), 他们有自己的实现方式,比较的是对象中包含的内容(具体值)是否相等
System.out.println(s1.equals(s2));
输出
false
true
附件:equals源码
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
比较String类型
==比较的是内存地址,equal比较的是值
= new String("abc");
String s4 = new String("abc");
System.out.println(s3==s4);//false
System.out.println(s3.equals(s4));//true
String s1 = "abc";
String s2 = "abc";
System.out.println(s1==s2);//true
System.out.println(s1.equals(s2));//true
String类
Java中所有字符串,都是String类的对象,值一旦给给定就不能改变,一旦修改描绘重新创建一个新的对象
两种创建方法:
- String s = “abc”;
第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在**字符串常量池中,**如果没有则在堆中创建一个String对象object,
第二次创建时,常量池已经存在,直接让引用变量指向已有的字符串对象
- 特点
jvm会自动根据栈中数据的实际情况来决定是否有必要创建新对象
- String s = new String(“abc”)
一概在队中创建新对象,而不管其字符串值是否相等,是否有必要创建新对象。