Object
1 是所有Java类的根父类
2 如果未显式的指明其父类,则默认父类为java.lang.Object
3 Object中的方法具有通用性
属性:无
方法:equals,toString,getClass,hashCode,clone,finalize,wait,notify,nitifyall
4 Object只声明了一个空参的构造器
==和equals()的区别
==运算符:基本数据类型比较值,引用数据类型比较地址
equals()方法的使用:
1 是个方法,而非运算符
2 只能适用于引用数据类型
3 Object类中定义的equals和==作用是享用的,比较两个对象的地址
4 String,Date,File包装类都重写了Object类中的equals方法,重写后,比较的不是地址,而是值
通常情况下,我们需要对equals进行重写
1 比较地址
2 判断空指针
3 判断字节码文件getClass
4 比较具体的值
equals 原则:
1 对称性
2 自反性
3 传递性
4 一致性
5 和null相比永远false,不同类型永远false
包装类(Wrapper)的使用
针对八种基本数据类型定义的引用类型-包装类
基本数据类型首字母大写,除了Integer和Character
整形的包装类的父类是Number
基本数据类型转化为包装类
通过构造方法转化,必须要是正确的类型才能转化
Boolean不区分大小写,只要不是true的都是false
基本数据类型默认值和包装类默认值不同,包装类默认为null
将包装类转化为基本数据类型通过xxxvalue()。
包装类不可作用于加减乘除
java 5.0加入了自动装箱与拆箱
字符串,基本数据类型,包装类之间常用转化方法
* 将基本数据类型和包装类转化为字符串
* 1 通过连接运算
* 2 通过String的valueof()方法
* 将String类型转化为包装类
*1 通过包装类的parsexxx(String s)方法
Integer内部有一个静态数组,涵盖了从-128到127之间的Integer,如果是这个范围内的数,就从中间取。意味着如果创建的Integer是-128-127之间,那么它们是同一个对象,如果是范围之外的,则会是新建的对象。