Object:
所有类的父类,那么Object的方法是其他所有类都具有的。
hashCode(): 把对象通过某种算法变成一个数字, 每个对象的hashcode值不一样, hashCode值就是对象的内存地址值
toString(): 我们在直接打印对象的时候,默认调用的就是toString()方法。 全限定名 + @ + 内存地址值(16进制)
equals(): 底层源代码就是==, 只能比较引用数据类型。
比较基本数据类型,比的是值
比较引用数据类型,比的是地址值
finalize() JVM 垃圾回收有关系
面试题:
1.equals和==有什么区别:
如果比较的是基本数据类型变量,比较两个变量的值是否相等。(不一定数据类型相同)
如果比较的是引用数据类型变量,比较两个对象的地址值是否相同,即两个引用是否指向同一个地址值
2.final、finally、finalize的区别
final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。
3.String、StringBuffer、StringBuilder的区别
StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安 当对字符串进行修改的时候,特别是字符串对象经常改变的情况下,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
String
是一个用final修饰过
常量池: 存在于元空间(方法区),提高效率。
引用数据类型存在堆里面
Date:
构造方法 无参/毫秒值
getTime()获取时间戳
setTime()赋值
System.currentTimeMillis();
SimpleDateFormat: yyyy MM dd HH mm ss//时间表达式
parse(字符串)
format(日期类型)