一个面试的时候经常会遇到的java基础题目,equals()方法和“==”的区别。想顺着这个题目好好的捋一捋其中的关系。结论是如果”==”比较的是对象的地址,只要是new出来两个对象,比较两个对象的引用,肯定永远都不一样 。只要画一画其内存分析,肯定是指向不同的地址。
再去重新理解static的时候我想从最简单的开始,修饰类的属性。
目录
(1) java基类Object类
在类中,static修饰的成员变量称为静态成员变量,它为该类的公有变量,只有在第一次使用时被初始化,对于该类所有对象来说,static成员变量只有一份。
(2) hashCode()方法
试着站在java虚拟机的角度来看内存中的布局。一个程序运行时可能会有很多很多个对象在堆内存中分配,对于java虚拟机来说需要找到这些对象,会用一张表记录着每一个对象在什么位置上,而这张表一般是又哈希编码来记录,每个对象都有自己独一无二的hash编码, 根据这个编码就能找到相关的对象。
equals()方法、hashCode()方法以及HashMap之间联系密不可分的。