到现在学习Java已经快一个月了,从最开始的盲目自信到现在明确认识到自己的不足、了解Java的强大,整个人都变得成熟许多。授课老师非常认真负责,那感觉就像是打破脑袋也要把知识传授给我们,同学之间相处融洽,学习氛围超级棒!
在一阶段的课程中,我们学习了很多知识点,包括Java基本语法、面向对象、继承、多态等。以下是我整理出的自认为比较难理解的知识点:“==”和equals 。
“==”:该操作符生成的是一个boolean结果,它计算的是操作数的值之间的关系。
在Java中有八种基本数据类型,整型数据:byte、short、int、long;浮点型:float、double;字符型:char;布尔型:boolean。对于这八种基本数据类型的变量,变量直接存储的是“值”。因此,在使用关系操作符“ == ”来进行比较时,比较的就是“值”本身。
在Java中,引用类型的变量存储的并不是“值”本身,而是与其关联的对象在内存中的地址。因此,对于关系操作符“==”:若操作数的类型是基本数据类型,则该关系操作符判断的是左右两边操作数的值是否相等;若操作数的类型是引用数据类型,则该关系操作符判断的是左右两边操作数的内存地址是否相同。也就是说,若此时返回true,则该操作符作用的一定是同一个对象。
equals :是Object 的实例方法,比较两个对象的content是否相同。
equals的初衷是判断两个对象的content是否相同;在Object类中,equals方法是用来比较两个对象的引用是否相等,即是否指向同一个对象。使用equals方法,内部实现分为三个步骤:首先比较引用是否相同(是否为同一对象);然后判断类型是否一致(是否为同一类型);最后比较内容是否一致。Java中所有内置的类的equals方法的实现步骤均是如此,特别是诸如 Integer、Double 等包装器类。
对象内容的比较是设计equals()的真正目的,equals 重写原则包括对称性、自反性、类推性、一致性等。
在千锋学习Java的每一天我都过的很充实,尤其是知识都装在自己脑子里的时候特别的满足。五个月的课程说短不短,说长不长,但我相信这会是我们走上程序员之路的好开端,打好基础,有一个好起点,未来我们才能走得更远、更高。
领取专属 10元无门槛券
私享最新 技术干货