Object类
- 理解: 在JAVA中有一个非常特殊的类叫做Object类 JAVA里面所有的类都继承自Object类 我们自身编写的类 都会间接或者隐式的继承自Object类
- Object类常用的方法
Object类 一共有13中方法 我们常用的方法有
2.1 toString()方法:这个方法是我们经常会用来进行打印对象的方法我们知道我们经常会通过System.out.println(对象)来打印对象的逻辑地址 但是我们有些时候需要打印对象里面存储的变量的值 这个时候我们就需要重写toString方法 为什么需要重写toString呢 前面我说过所有类都 会继承Object方法 System.out.print()这个方法默认会去调用类的toString()方法返回String字符串然后打印 所以如果我们不重写toString方法那么它会默认调用Object的toString()方打印逻辑地址所以我们重写toStirng()方法返回我们 拼接好的变量值这样就可以打印对象里面的变量值了
2.2 equals(Object)方法:这个方法时Object里面用来比较对象的一个方法 这个方法默认比较的是Object的内存逻辑地址 来判断是否是同一个对象 那么有些时候我们只需比较对象里面变量的值是否相等所以在需要比较值相等的时候我们需要重写equals方法来进行比较
2.3 finalize():这个方法是用来回收内存对象的 Java中会提供GC机制来实现回收对象 所以当java回收对象的时候会调用此方法来进行回收
2.4 hashcode():这个方法是吧对象逻辑地址转化成十进制的哈希值这个常用于hashmap的使用
2.5 wait():这个方法用于线程 的等待
2.6 notify():恢复 一个正在等待的线程
2.7 notifyAll():恢复所有在等待的线程
String类
- String是Java中常用的字符串存储类 我们经常使用该对象对字符串进行存储在JAVA中 只要是用 " "双引号括起来的 字符JVM会默认 解析该字符串成一个String对象 所以我们不需要通过new的方式去创建一个String字符串对象
这里可以看到 我只需在双引号 写入Hello World字符串 赋值给一个String变量的引用 这样就创建成功了一个String字符串的对象 那么JVM提供了一种优化模式 当 多次 使用同一个字符串时 JVM并不会多次创建 String对象 它会把内存中存在相同的String字符串对象直接赋给该变量 我通过定义两个相同的字符串然后通过内存比较来判断是否相等
我们可以看见最后输出的值为true证明他们是同一个对象
再来看一下下面这种方式是否ture
为什么这种方式为false 因为我们创建了两个对象 这个时候我们通过new关键字创建了两个不同的String对象所以这个时候输出的值为false 并不是为true.