Object
Object
在JAVA中所有的类都是Object的直接子类或间接子类
一切皆为对象: Object
所有类的对象都可以声明成Object引用
Object obj = new Student();Object obj = new Person();
1. equals方法的作用
== 和 equals的区别
在 Object类中equals() 默认的实现 this == obj
== 用于判断对象在内存中的位置
但是在String类,包装类中,equals方法已经被重写了,改变了原有的实现方式。变成了比较内容了
如果自定义的类想要把equals方法实现为比较内容需要重写
public class Computer {
private String name;
private String address;
@Override
public boolean equals(Object obj) {
if(this == obj)
return true;
if(obj instanceof Computer){
Computer c = (Computer)obj; //向下转型
//有可能报控制正异常
if(c.name.equals(this.name) && c.address.equals(this.address))
return true;
return false;
}
return false;
}}
2. getClass方法的作用
可以获取当前对象所在类的所有信息, 一般在框架的反射部分会使用的
Computer computer1 = null;
computer1 =new Computer("联想");
System.out.println( computer1.getClass());
class com.xja.demo.Computer
获取当前对象的类型
3. hashCode方法的作用
Java中的hashCode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值。
哈希码本身来说就是一种为了提高查找效率的一种算法,例如:HashSet、HashMa以及HashTable
同一个对象的hashcode一定相同,不同的对象可能会生成相同的hashcode值。
不能根据hashcode值判断对象是否相等,但可以两个对象不等,如果两个对象的hashcode值不等,则必定是两个不同的对象。
4. toString() 返回当前对象的字符串形式
类型@hashCode
当输出单个对象的时候默认要调用toString()方法
Computer computer2 = null;
computer2 =new Computer("联想");
computer2.setAddress("河北张家口");
System.out.println("默认调用的是:"+computer2);
System.out.println("默认调用的是 :"+computer2.toString());
可以通过重写 toString方法,实现对象属性的打印
@Override
public String toString() {
return "Computer [name=" + name + ", address=" + address + "]";
}
Computer computer2 = null;
computer2 =new Computer("联想");
computer2.setAddress("河北张家口");
System.out.println("默认调用的是:"+computer2);
System.out.println("默认调用的是 :"+computer2.toString());
默认调用的是toString :Computer [name=联想, address=河北张家口]
默认调用的是 :Computer [name=联想, address=河北张家口]
5. Wait() 线程等待
6. notify() 唤醒指定的线程对象
7. finalize() 回收对象的方法
当一个对象不再被任何引用指向的时候,这个对象就是一个垃圾对象,该对象所占的空间就会被收回
Computer computer1 = null;
//创建了第一个对象
computer1 =new Computer("联想");
Computer computer2 = null;
//创建了第二个对象
computer2 =new Computer("华为");
//把第二个引用的值赋予第一个引用
computer1 = computer2;
//这时候连个引用都指向了第二个对象,第一个对象就是没有被引用的对象就会被收回
8. 包装类8个基本数据类型对应的类
在java中一切皆为对象, (8个基本数据类型就不是对象)
9. 包装类和字符串之间的相互转换
//把字符串装换成包装类 “abc”
String numstr="123";
Integer numObj = new Integer(numstr);
Integer numObj2 = Integer.getInteger(numstr);
Integer numObj3 = Integer.valueOf(numstr);
//把包装类转换成字符串
String numstr2 = numObj.toString();
10. 基本数据类型和字符串之间的相互转换
//把基本数据类型转换成字符串
int num = 123;
String numstr3 = num+"";
String numstr4 = String.valueOf(num);
//把字符串转换成基本数据类型
int num2 = Integer.parseInt(numstr3);
11. 基本数据类型和包装类之间的转换
装箱: 把基本数据类型的值直接赋予包装类的对象
Int num = 22;
Integer numobj = num; //装箱
拆箱:把包装类的对象直接赋值给基本数据类型的变量
Integer numobj = new Integer(45);
Int num = numobj; //拆箱
//基本数据类型和包装类之间的互相转换(装箱和拆箱)
int num3 = 20;
Integer numobj = num3; //装箱
int num4 = numobj; //拆箱
12. Object和 数据类型直接的转换
int num5 = 20;
Object a = num5; //装箱和向上转型两件事(Integer num = num5; Object a = num;)
int nums = (int)a;
上一篇: 计算机二级mysql考什么内容?
下一篇: mysql主键有什么用?
推荐阅读
-
TypeError: cannot use a string pattern on a bytes-like object
-
爬虫出现TypeError: cannot use a string pattern on a bytes-like object报错
-
JavaScript 复制对象【Object.assign方法无法实现深复制】
-
Object.assign解析
-
js obj合并 添加 移除 Object.assign $.extend splice
-
Error: Object # has no method ‘load’
-
PPT2010中通过Shockwave Flash Object对象插入flash动画
-
JavaScript 判断某个对象是Object还是一个Array
-
Domain Object贫血vs富血(DDD)和spring roo到ruby的扯淡
-
Domain Object贫血vs富血(DDD)和spring roo到ruby的扯淡