0.1计算机表示为什么会出现0.1000000001?
计算机内部使用二进制,0.1转化成二进制为0.0 0011无限循环的小数。
==和equals的区别:
==:对于基本类型,比较的是值是否相等;对于引用类型,比较的是地址是否相等。
equals:比较的是对象是否相等,不能比较基本类型。
==比较内存地址,equals比较内存地址的值。
为什么要同时重写hashcode和equals,hashcode有什么作用?
重写equals方法和hashcode方法的目的就是为了实现一些合乎情理,切实际,在现实生活中经常出现的一些情景,针对这些情景来提出一些需求,为了满足这个需求从而采取的措施。如果不重写的话,在他的源码中比较的是俩个对象的地址值。
hashcode代表对象的地址说的是对象在hash表中的位置,物理地址说的对象存放在内存中的地址
不同环境下hashcode的算法可能不同,导致hashcode值相等,俩对象不相等,此时需要equals进行判断。单用equals效率太低。
hashcode用于效率的查找,用位置%长度得到hashcode,确定位置。
ArrayList和LinkedList的区别:
ArrayList基于动态数组实现,访问速度快,LinkedList基于链表,内存大,批量增删效果好
在查看增加情况下,ArrayList和LinkedList哪个好?
arraylist的a