javaSE一些实习问题
2021/4/14 22:29:18
本文主要是介绍javaSE一些实习问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
javaSE一些实习问题
为什么实现equals的同时要实现hashcode()?
hashCode()
在散列表中才有用,在其它情况下没用。在散列表中 hashCode() 的作用是获取对象的散列码,进而确定该对象在散列表中的位置。hashCode() 的默认行为是对堆上的对象产生独特值。如果没有重写 hashCode(),则该 class 的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)
因为如果只想实现了equals方法,在某种情况下达不到预期,比如说再hashmap中,我们使用一个没有覆盖hashcode的对象作为key,那么我们准备两个对象,他们euqals的结果为true,用一个对象存值比如说map.put(key1,value),那么使用另一个对象去取值map.get(key2)取出来的值就会使null,因为hashmap中的key是通过hashcode获取hash值的,获取的hash值和value存的地址相关联的,这就达不到预期的效果,所以才规定实现equals的同时要实现hashcode并且equals相等hashcode也一定要相等。
为什么java中只有值传递?
首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语。按值调用(call by value)表示方法接收的是调用者提供的值,而按引用调用(call by reference)表示方法接收的是调用者提供的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。 它用来描述各种程序设计语言(不只是 Java)中方法参数传递方式。
Java 程序设计语言总是采用按值调用。也就是说,方法得到的是所有参数值的一个拷贝,也就是说,方法不能修改传递给它的任何参数变量的内容。
这篇关于javaSE一些实习问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23线下车企门店如何实现线上线下融合?
- 2024-12-23鸿蒙Next ArkTS编程规范总结
- 2024-12-23物流团队冬至高效运转,哪款办公软件可助力风险评估?
- 2024-12-23优化库存,提升效率:医药企业如何借助看板软件实现仓库智能化
- 2024-12-23项目管理零负担!轻量化看板工具如何助力团队协作
- 2024-12-23电商活动复盘,为何是团队成长的核心环节?
- 2024-12-23鸿蒙Next ArkTS高性能编程实战
- 2024-12-23数据驱动:电商复盘从基础到进阶!
- 2024-12-23从数据到客户:跨境电商如何通过销售跟踪工具提升营销精准度?
- 2024-12-23汽车4S店运营效率提升的核心工具